diff --git a/.github/workflows/prod-web-deploy.yml b/.github/workflows/prod-web-deploy.yml index ab53507..331e530 100644 --- a/.github/workflows/prod-web-deploy.yml +++ b/.github/workflows/prod-web-deploy.yml @@ -12,11 +12,11 @@ jobs: name: Build Docusaurus runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: 20 cache: yarn @@ -31,7 +31,7 @@ jobs: working-directory: website - name: Upload Build Artifact - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-pages-artifact@v5 with: path: website/build # Ensure the path is correctly set to the Docusaurus build output @@ -53,6 +53,6 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@v5 with: working-directory: website/build # Ensures the correct directory is used for deployment diff --git a/.github/workflows/star-check.yml b/.github/workflows/star-check.yml deleted file mode 100644 index 24d6c17..0000000 --- a/.github/workflows/star-check.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Check if PR author has starred required repositories -on: - pull_request: - types: [opened, synchronize, reopened] -jobs: - check-starred: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - name: Get PR author username and repo info - id: get-info - run: | - echo "username=${{ github.event.pull_request.user.login }}" >> $GITHUB_ENV - echo "current_repo=${{ github.event.repository.name }}" >> $GITHUB_ENV - echo "current_owner=${{ github.repository_owner }}" >> $GITHUB_ENV - - name: Pull github provider - uses: stackql/stackql-exec@v2.2.1 - with: - is_command: 'true' - query: "REGISTRY PULL github;" - - name: Run stackql query - id: check-star - uses: stackql/stackql-assert@v2.2.1 - with: - test_query: | - SELECT repo, count(*) as has_starred - FROM github.activity.repo_stargazers - WHERE owner = '${{ env.current_owner }}' and repo IN ('stackql','${{ env.current_repo }}') - AND login = '${{ env.username }}' - GROUP BY repo; - expected_results_str: '[{"has_starred":"1","repo":"stackql"},{"has_starred":"1","repo":"${{ env.current_repo }}"}]' - continue-on-error: true - - name: Check if starred - if: always() # Ensures this runs regardless of check-star outcome - run: | - if [ "${{ steps.check-star.outcome }}" = "success" ]; then - echo "::notice::Thanks for your support!" - else - echo "::error::It seems you haven't starred the required repositories. Please star the following repos before proceeding: https://github.com/${{ env.current_owner }}/${{ env.current_repo }} (this repo) and https://github.com/stackql/stackql (our core repo)" - exit 1 - fi \ No newline at end of file diff --git a/.github/workflows/test-web-deploy.yml b/.github/workflows/test-web-deploy.yml index 1e2ef91..fe88ba2 100644 --- a/.github/workflows/test-web-deploy.yml +++ b/.github/workflows/test-web-deploy.yml @@ -12,11 +12,11 @@ jobs: name: Test deployment runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: 20 cache: yarn diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..0f9d1ea --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,56 @@ +# CLAUDE.md + +Guidance for working in this repo. It generates the `linode` StackQL provider from the Linode OpenAPI spec and builds the provider docs microsite (Docusaurus, GitHub Pages at linode-provider.stackql.io). + +## Layout + +- `provider-dev/downloaded/` - raw + preprocessed OpenAPI spec (`make download`) +- `provider-dev/source/` - per-service split specs (`make split`, `make normalize`) +- `provider-dev/config/all_services.csv` - **master mapping document**: one row per operation mapping to StackQL resource/method/verb. Never regenerate from scratch; `make mappings` preserves existing rows and appends new operations +- `provider-dev/config/service-config.json` - pagination config injected as `x-stackQL-config` into every service +- `provider-dev/openapi/src/linode/v00.00.00000/` - the generated provider (the publishable artifact) +- `bin/` - pipeline wrappers, server scripts, `test-meta-routes.cjs`, `smoke-test.mjs` +- `website/` - Docusaurus 3.10 microsite; `website/docs/` is generated by `make docs`, do not hand-edit +- `examples/stackql-deploy/linode-demo/` - example stackql-deploy stack +- `Makefile` - the whole pipeline; `make help` lists targets, `make all` runs everything + +## Toolchain + +- Tooling: `@stackql/provider-utils` (CLI bins under `node_modules/@stackql/provider-utils/bin/`), invoked via npm scripts / make targets +- Make targets run under a POSIX shell. On this Windows machine, use WSL (`make`, `node`, `python3` and the Linux `stackql` binary are on the WSL PATH) +- `LINODE_TOKEN` lives in `.env` (gitignored); make targets source it for live work + +## Mapping conventions (all_services.csv) + +- `stackql_verb`: `select`/`insert`/`replace` (PUT)/`update` (PATCH)/`delete`, action-style POSTs (boot, clone, resize, ...) are `exec` +- `stackql_method_name` is user-facing API surface (EXEC statements, SHOW METHODS, docs) - **no HTTP plumbing or resource-name repetition**. Convention (matches the openai provider): selects are `get` (single) / `list` (collection, `list_by_` for variants), `create`, `update` (PUT), `patch`, `delete`, and exec methods are bare action verbs (`boot`, `shutdown`, `resize`, `reset_credentials`). Example: `EXEC linode.linode.instances.shutdown @linodeId = '123'` - never `post_shutdown_linode_instance` +- `stackql_object_key`: set `$.data` for select methods returning the standard Linode envelope `{data, page, pages, results}`; leave empty for single-object responses. **Without `$.data`, list queries return the envelope as one useless row** - this was the pre-2026 provider's behavior and was fixed in the August 2026 uplift +- The `path`/`verb` columns must match the current split specs; rows are matched by `filename` + `operationId` during generate, but stale paths cause "not found in manifest" errors - rebuild them from the source specs if the upstream API renames path params + +## Provider design decisions + +- **Pagination**: `page_number` algorithm (`requestToken: page` in query, `responseToken: $.page`, `responseTerminator: $.pages`) - uniform across all services via `--service-config` +- **Request bodies**: `--naive-req-body-translate` - INSERT/UPDATE columns are native API property names (no `data__` prefix). This is a breaking change vs the pre-2026 provider +- **Predicate pushdown**: deliberately not configured. Linode filters via the `X-Filter` HTTP header; any-sdk `queryParamPushdown` only emits query params (OData syntax for filters). `LIMIT`->`page_size` pushdown was also rejected because Linode errors on `page_size < 25` +- **Path params keep upstream camelCase** (`linodeId`, `regionId`) for continuity with the previous release - `--update-path-param-names` is not used +- The old python patch scripts (`update_linode_interfaces.py`, `update_managed_stats.py`) were deleted - provider-utils `normalize` flattens those unions now +- **`provider-dev/scripts/patch_provider_output.py` must run after generate** (the Makefile `provider` target does this). It works around two upstream any-sdk/stackql bugs that otherwise break EXEC lifecycle methods: (1) EXEC param validation accepts `string`/`int` schema types but not OpenAPI `integer`, so integer path params are retyped to string (same workaround the DigitalOcean provider ships); (2) the EXEC planner tabulates the response schema and resolves each supplied `@param` against it via FindByPath, where a miss returns a wrapped nil that panics the engine - Linode's opaque `type: string` action responses (wire body `{}`) are rewritten to objects carrying the operation's param names plus a `message` property (all always null). Both are worth upstream fixes in any-sdk + +## Gotchas + +- **Restart the local server after regenerating the provider** - it holds parsed docs in memory (stale docs silently serve old behavior). `make test` / `make smoke-test` handle this +- **Never `registry pull linode` when testing the local build** - even with a `file://` registry it can fall back to the public registry and shadow the local `v00.00.00000` with the published version (cached under `.stackql/src/linode/`). The local server serves straight from `localDocRoot` without a pull +- Single-row reads by path param (`WHERE volumeId = 123`) work via `stackql exec` but are unreliable through the pg wire server - poll via list queries in tests +- **EXEC params must be quoted strings**: `EXEC linode.linode.instances.shutdown @linodeId = '123'` - the unquoted integer form fails validation ("does NOT match SQL type 'IntVal'"), and through the pg wire server that failure can be silent +- An instance created without an image has no disks, cannot boot, and legitimately stays in `provisioning` status +- On Windows, always pass `encoding='utf-8'` when opening spec/provider files in python (emoji in descriptions break cp1252) + +## Testing + +- `make test` - meta routes (services/resources/methods/describe) against the local build; no creds needed +- `make smoke-test` - live API test (local provider); `make smoke-test-live` - same against the latest published provider. Creates and deletes a `g6-nanode-1` (no image) and a 10GB volume; costs under USD 0.05/run; cleanup is verified +- Meta-route baseline after the Aug 2026 update: 21 services, 142 resources, 449 methods, 217 selectable + +## Publishing + +Provider: copy `provider-dev/openapi/src/linode` into `providers/src` in a feature branch of `stackql/stackql-provider-registry` and follow the registry release flow. Website: push to `main` touching `website/**` triggers the GitHub Pages deploy workflow. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f804e94 --- /dev/null +++ b/Makefile @@ -0,0 +1,141 @@ +# Makefile for the linode StackQL provider. +# +# Run under a POSIX shell (WSL, Linux or macOS) with node >= 20, python3 and +# a `stackql` binary either in the repo root or on the PATH. +# `LINODE_TOKEN` is sourced from .env (see .env.example) for live targets. + +SHELL := /bin/bash + +PROVIDER_NAME := linode +SPEC_URL := https://github.com/linode/linode-api-docs/raw/refs/heads/development/openapi.json +DOWNLOAD_DIR := provider-dev/downloaded +SOURCE_DIR := provider-dev/source +CONFIG_DIR := provider-dev/config +OPENAPI_DIR := provider-dev/openapi +REGISTRY_ROOT := $(CURDIR)/$(OPENAPI_DIR) +SERVER_PORT := 5444 + +# stackql binary: repo root first, then PATH +STACKQL_BIN := $(shell [ -f ./stackql ] && echo ./stackql || command -v stackql) + +LOAD_ENV = if [ -f .env ]; then set -a; . ./.env; set +a; fi + +.DEFAULT_GOAL := help + +.PHONY: help deps download split normalize mappings provider test docs website \ + start-server stop-server server-status test-meta-routes \ + smoke-test smoke-test-live clean all + +help: + @echo "linode StackQL provider - make targets:" + @echo "" + @echo " make deps install node dependencies (repo + website)" + @echo " make download download and preprocess the Linode OpenAPI spec" + @echo " make split split the spec into service-level specs" + @echo " make normalize normalize the split specs (allOf flattening etc.)" + @echo " make mappings regenerate all_services.csv (preserves existing mappings)" + @echo " make provider generate the StackQL provider extension docs" + @echo " make test start server, test all meta routes, stop server" + @echo " make smoke-test live smoke test against the locally generated provider" + @echo " make smoke-test-live live smoke test against the latest published provider" + @echo " make docs generate the Docusaurus docs from the provider" + @echo " make website build the docs microsite" + @echo " make all everything: deps through website" + @echo "" + @echo " make start-server / stop-server / server-status" + +deps: + npm install + cd website && yarn install + +download: + rm -f $(DOWNLOAD_DIR)/* + curl -sL $(SPEC_URL) -o $(DOWNLOAD_DIR)/openapi.json + python3 provider-dev/scripts/remove_api_version.py + +split: + rm -rf $(SOURCE_DIR)/* + npm run split -- \ + --provider-name $(PROVIDER_NAME) \ + --api-doc $(DOWNLOAD_DIR)/openapi_api_version_removed.json \ + --svc-discriminator path \ + --output-dir $(SOURCE_DIR) \ + --overwrite \ + --svc-name-overrides '{"network_transfer": "networking"}' + +normalize: + npm run normalize -- --api-dir $(SOURCE_DIR) + +mappings: + npm run generate-mappings -- \ + --input-dir $(SOURCE_DIR) \ + --output-dir $(CONFIG_DIR) + @echo "" + @echo "Review $(CONFIG_DIR)/all_services.csv - any new (unmapped) operations need" + @echo "stackql_resource_name / stackql_method_name / stackql_verb assigned, and" + @echo "enveloped list responses need stackql_object_key set to \$$.data" + +provider: + rm -rf $(OPENAPI_DIR)/* + npm run generate-provider -- \ + --provider-name $(PROVIDER_NAME) \ + --input-dir $(SOURCE_DIR) \ + --output-dir $(OPENAPI_DIR)/src/$(PROVIDER_NAME) \ + --config-path $(CONFIG_DIR)/all_services.csv \ + --servers '[{"url": "https://api.linode.com/v4"}]' \ + --provider-config '{"auth": {"credentialsenvvar": "LINODE_TOKEN","type": "bearer"}}' \ + --service-config $(CONFIG_DIR)/service-config.json \ + --naive-req-body-translate \ + --overwrite + python3 provider-dev/scripts/patch_provider_output.py + +start-server: + @$(LOAD_ENV); ./bin/start-server.sh --provider $(PROVIDER_NAME) --registry "$(REGISTRY_ROOT)" --port $(SERVER_PORT) + +stop-server: + @./bin/stop-server.sh --port $(SERVER_PORT) || true + +server-status: + @./bin/server-status.sh + +test-meta-routes: + node ./bin/test-meta-routes.cjs $(PROVIDER_NAME) --port $(SERVER_PORT) + +# always restart the server around provider tests: a running server holds +# parsed provider docs in memory and will not see a regenerated provider +test: stop-server start-server + sleep 3 + node ./bin/test-meta-routes.cjs $(PROVIDER_NAME) --port $(SERVER_PORT) + $(MAKE) stop-server + +smoke-test: stop-server start-server + sleep 3 + node ./bin/smoke-test.mjs --port $(SERVER_PORT) || ($(MAKE) stop-server; exit 1) + $(MAKE) stop-server + +smoke-test-live: stop-server + @$(LOAD_ENV); \ + $(STACKQL_BIN) exec "registry pull $(PROVIDER_NAME)" && \ + nohup $(STACKQL_BIN) --pgsrv.port=$(SERVER_PORT) srv > stackql-server.log 2>&1 & \ + sleep 3 + node ./bin/smoke-test.mjs --live --port $(SERVER_PORT) || ($(MAKE) stop-server; exit 1) + $(MAKE) stop-server + +docs: + rm -rf website/docs/* + npm run generate-docs -- \ + --provider-name $(PROVIDER_NAME) \ + --provider-dir ./$(OPENAPI_DIR)/src/$(PROVIDER_NAME)/v00.00.00000 \ + --output-dir ./website \ + --provider-data-dir ./provider-dev/docgen/provider-data + +website: + cd website && yarn build + +clean: + rm -rf $(SOURCE_DIR)/* $(OPENAPI_DIR)/* website/build website/.docusaurus .stackql stackql-server.log + +all: deps download split normalize mappings provider test docs website + @echo "" + @echo "Provider and website generated and tested. Run 'make smoke-test' for the" + @echo "live API smoke test (creates and deletes a nanode and a 10GB volume)." diff --git a/README.md b/README.md index 5260ac0..21c7044 100644 --- a/README.md +++ b/README.md @@ -1,237 +1,182 @@ -# `linode` provider for [`stackql`](https://github.com/stackql/stackql) - -This repository is used to generate and document the `linode` provider for StackQL, allowing you to query and manipulate Linode resources using SQL-like syntax. The provider is built using the `@stackql/provider-utils` package, which provides tools for converting OpenAPI specifications into StackQL-compatible provider schemas. - -## Prerequisites - -To use the Linode provider with StackQL, you'll need: - -1. A Linode account with appropriate API credentials -2. A Linode API token with sufficient permissions for the resources you want to access -3. StackQL CLI installed on your system (see [StackQL](https://github.com/stackql/stackql)) - -## 1. Download the Open API Specification - -First, download the Linode API OpenAPI specification: - -```bash -rm provider-dev/downloaded/* -curl -L https://github.com/linode/linode-api-docs/raw/refs/heads/development/openapi.json \ - -o provider-dev/downloaded/openapi.json - -# pre process the spec to remove the apiVersion path param -python3 provider-dev/scripts/remove_api_version.py -``` - -## 2. Split into Service Specs - -Next, split the monolithic OpenAPI specification into service-specific files: - -```bash -rm -rf provider-dev/source/* -npm run split -- \ - --provider-name linode \ - --api-doc provider-dev/downloaded/openapi_api_version_removed.json \ - --svc-discriminator path \ - --output-dir provider-dev/source \ - --overwrite \ - --svc-name-overrides "$(cat <= 20 and `npm` (and `yarn` for the docs site) +- Python 3 (spec preprocessing) +- GNU make and a POSIX shell (WSL, Linux or macOS) +- A `stackql` binary in the repo root or on the `PATH` +- A Linode API token in `LINODE_TOKEN` (put it in `.env` - see below) for live tests + +Install dependencies: + +```bash +make deps +``` + +Create a `.env` file in the repo root for anything that talks to the live API: + +``` +LINODE_TOKEN=your-token-here +``` + +## Provider development pipeline + +`make all` runs the entire pipeline (deps, download, split, normalize, mappings, provider, meta-route tests, docs, website build). The individual steps are described below. + +### 1. Download the OpenAPI spec + +```bash +make download +``` + +Downloads the latest spec from the `development` branch of `linode/linode-api-docs` and preprocesses it (`provider-dev/scripts/remove_api_version.py` removes the `{apiVersion}` path parameter and strips CLI/OAuth boilerplate from descriptions), producing `provider-dev/downloaded/openapi_api_version_removed.json`. + +### 2. Split into service specs + +```bash +make split +``` + +Splits the monolithic spec into per-service specs in `provider-dev/source/`, discriminating on the first path segment (with `network_transfer` folded into `networking`). + +### 3. Normalize + +```bash +make normalize +``` + +Flattens `allOf` compositions, renames anonymous `oneOf`/`anyOf` variants, lifts path-level parameters and marks bare-array responses. This step supersedes the hand-written schema patch scripts (`update_linode_interfaces.py`, `update_managed_stats.py`) that earlier versions of this repo carried. + +### 4. Generate mappings + +```bash +make mappings +``` + +Regenerates `provider-dev/config/all_services.csv`, preserving all existing mappings and appending any new (unmapped) operations. For new rows, assign: + +- `stackql_resource_name` - the resource the operation belongs to +- `stackql_method_name` - unique method name within the resource +- `stackql_verb` - `select` | `insert` | `update` | `replace` | `delete` | `exec` +- `stackql_object_key` - set to `$.data` for `select` methods whose response is the standard Linode envelope (`{data, page, pages, results}`); leave empty for single-object responses + +Method names are user-facing (they surface in `EXEC` statements, `SHOW METHODS` and the docs), so they carry no HTTP plumbing and no resource-name repetition: selects are `get`/`list` (plus `list_by_` variants), mutations are `create`/`update`/`patch`/`delete`, and lifecycle operations are bare action verbs - `boot`, `shutdown`, `resize`, `reset_credentials`: + +```sql +EXEC linode.linode.instances.shutdown @linodeId = '12345678'; +``` + +> `EXEC` parameter values are always quoted strings, including numeric ids. + +This CSV is the master mapping document - the intent over time is to add new services/resources/ops and remove deprecated ones, never to regenerate it from scratch. + +### 5. Generate the provider + +```bash +make provider +``` + +Generates the StackQL provider extension docs into `provider-dev/openapi/src/linode/v00.00.00000/`, wiring in: + +- **Servers and auth** - `https://api.linode.com/v4`, bearer auth from `LINODE_TOKEN` +- **Pagination** (`provider-dev/config/service-config.json`, injected as `x-stackQL-config` in every service) - Linode's `page`/`pages` envelope drives the `page_number` pagination algorithm, so multi-page collections are traversed automatically +- **Naive request body translation** (`--naive-req-body-translate`) - `INSERT`/`UPDATE`/`REPLACE` columns are the native Linode API body property names (`label`, `region`, `type`, ...), not `data__`-prefixed + +The target then runs `provider-dev/scripts/patch_provider_output.py`, which patches the generated docs to make `EXEC` lifecycle methods work with current stackql/any-sdk: integer path params are retyped to strings (any-sdk's EXEC validation does not accept the `integer` schema type), and the opaque `type: string` responses on action operations are rewritten to minimal object schemas (the EXEC planner needs a tabulatable response and resolves every supplied parameter against it). See the script docstring for details. + +> **Predicate pushdown**: not wired in for this provider. Linode implements server-side filtering via the `X-Filter` HTTP request header, and any-sdk's `queryParamPushdown` can only emit query parameters (with OData filter syntax). `LIMIT` pushdown to `page_size` is also omitted because Linode rejects `page_size < 25`, which would break small `LIMIT` queries. Predicates are evaluated locally by StackQL, which is functionally equivalent. + +### 6. Test the provider + +```bash +make test +``` + +Starts a local StackQL server against the generated provider (`file://` registry over `provider-dev/openapi`), tests every meta route (services, resources, methods, describe), and stops the server. + +> The server holds parsed provider docs in memory - always restart it (which `make test` does) after regenerating the provider. + +For interactive exploration: + +```bash +make start-server +stackql shell # or connect any postgres client to localhost:5444 +make stop-server +``` + +### 7. Smoke test (live API) + +```bash +make smoke-test # locally generated provider +make smoke-test-live # latest published provider from the public registry +``` + +Runs `bin/smoke-test.mjs` against the live Linode API using `LINODE_TOKEN` from `.env`. It covers the critical read paths (account, regions, types, images, kernels - which also proves multi-page pagination - instances, volumes, object storage, firewalls) plus a full compute lifecycle - create a `g6-nanode-1` running Debian 12, wait for it to boot, `EXEC linode.linode.instances.shutdown`, wait for `offline`, `EXEC linode.linode.instances.boot`, wait for `running`, then delete - and a create/verify/delete cycle for a minimum-size 10GB volume. Resources exist for a few minutes; worst-case spend is well under USD 0.05 per run, and all mutations are cleaned up and verified in `finally` blocks. + +### 8. Publish the provider + +To publish the provider push the `linode` dir to `providers/src` in a feature branch of the [`stackql-provider-registry`](https://github.com/stackql/stackql-provider-registry). Follow the [registry release flow](https://github.com/stackql/stackql-provider-registry/blob/dev/docs/build-and-deployment.md). + +Test the published provider from the dev registry: + +```bash +export DEV_REG="{ \"url\": \"https://registry-dev.stackql.app/providers\" }" +stackql --registry="${DEV_REG}" shell +``` + +```sql +registry pull linode; +``` + +### 9. Generate and build the web docs + +```bash +make docs # generate docs from the provider into website/ +make website # build the Docusaurus site +``` + +The microsite is Docusaurus 3.10 using the shared StackQL provider-site configuration ([`stackql/docusaurus-config`](https://github.com/stackql/docusaurus-config)), vendored into `website/.shared-config/` at build time - see [website/README.md](website/README.md). Provider identity lives in `website/provider.js`; header content for the generated index page lives in `provider-dev/docgen/provider-data/`. + +Deployment to [linode-provider.stackql.io](https://linode-provider.stackql.io) is via GitHub Pages on push to `main` (`.github/workflows/prod-web-deploy.yml`). + +## Example queries + +```sql +-- Get account information +SELECT company, country, balance, active_since +FROM linode.account.account; + +-- List all Linode instances +SELECT id, label, region, status, type, ipv4 +FROM linode.linode.instances; + +-- Region capability audit +SELECT id, country, status +FROM linode.regions.regions; + +-- Create a nanode (columns are native API body properties) +INSERT INTO linode.linode.instances (label, region, type, image, root_pass) +SELECT 'my-vm', 'us-ord', 'g6-nanode-1', 'linode/debian12', 'S3cureP@ssw0rd!'; + +-- Stop and start it (lifecycle operations are EXEC methods) +EXEC linode.linode.instances.shutdown @linodeId = '12345678'; +EXEC linode.linode.instances.boot @linodeId = '12345678'; + +-- Delete it +DELETE FROM linode.linode.instances WHERE linodeId = 12345678; +``` + +## stackql-deploy example + +An example [stackql-deploy](https://github.com/stackql/stackql-deploy-rs) stack (compute instance + block storage volume, with per-environment sizing and full lifecycle anchors) is in [examples/stackql-deploy/linode-demo](examples/stackql-deploy/linode-demo). + +## License + +MIT + +## Contributing + +Contributions are welcome! Please feel free to submit a Pull Request. diff --git a/bin/smoke-test.mjs b/bin/smoke-test.mjs new file mode 100644 index 0000000..aa9ae28 --- /dev/null +++ b/bin/smoke-test.mjs @@ -0,0 +1,257 @@ +#!/usr/bin/env node + +// Smoke test for the linode StackQL provider. +// +// Runs against a live Linode account (LINODE_TOKEN must be set in the +// environment of the StackQL server this script connects to). By default it +// expects a server running the locally generated provider (local registry, +// version v00.00.00000); with --live it expects a server running the latest +// published provider from the public registry. +// +// Coverage: critical read paths (account, regions, types, images, kernels for +// pagination, instances, volumes, object storage) plus a full compute +// lifecycle - create a g6-nanode-1 running Debian 12, wait for it to boot, +// EXEC shutdown, EXEC boot, then delete - and a create/verify/delete cycle +// for a minimum-size (10GB) block storage volume. The EXEC steps exercise the +// lifecycle method routes (linode.linode.instances.shutdown / .boot). +// Resources exist for a few minutes at most; worst-case spend is well under +// USD 0.05 per run. All mutations are cleaned up in a finally block and +// deletion is verified. +// +// Usage: node bin/smoke-test.mjs [--live] [--skip-mutations] [--port 5444] +// [--region us-ord] [--type g6-nanode-1] + +import { runQuery } from '@stackql/pgwire-lite'; + +const args = process.argv.slice(2); +const getArg = (flag, dflt) => { + const i = args.indexOf(flag); + return i !== -1 ? args[i + 1] : dflt; +}; +const live = args.includes('--live'); +const skipMutations = args.includes('--skip-mutations'); +const port = parseInt(getArg('--port', '5444'), 10); +const region = getArg('--region', 'us-ord'); +const instanceType = getArg('--type', 'g6-nanode-1'); + +const conn = { user: 'stackql', database: 'stackql', host: 'localhost', port }; +const runstamp = Date.now().toString(36); +const instanceLabel = `stackql-smoke-${runstamp}`; +const volumeLabel = `stackqlsmoke${runstamp}`; + +let passed = 0; +let failed = 0; +const failures = []; + +async function query(sql) { + const result = await runQuery(conn, sql); + return result.data ?? []; +} + +async function check(name, sql, assertFn) { + try { + const rows = await query(sql); + const ok = assertFn ? assertFn(rows) : true; + if (ok) { + passed++; + console.log(` PASS ${name}`); + } else { + failed++; + failures.push(name); + console.log(` FAIL ${name} - assertion failed, got: ${JSON.stringify(rows).slice(0, 200)}`); + } + return rows; + } catch (err) { + failed++; + failures.push(name); + console.log(` FAIL ${name} - ${String(err.message || err).slice(0, 200)}`); + return null; + } +} + +async function poll(name, sql, predicate, { timeoutMs = 180000, intervalMs = 5000 } = {}) { + const deadline = Date.now() + timeoutMs; + while (Date.now() < deadline) { + try { + const rows = await query(sql); + if (predicate(rows)) return rows; + } catch { + // transient - keep polling + } + await new Promise((r) => setTimeout(r, intervalMs)); + } + throw new Error(`${name}: timed out after ${timeoutMs}ms`); +} + +async function main() { + console.log(`\nLinode provider smoke test (${live ? 'live/published' : 'local'} provider, port ${port})\n`); + + // provider version sanity + const providers = await query('SHOW PROVIDERS'); + const linodeProvider = providers.find((p) => p.name === 'linode'); + const version = linodeProvider ? linodeProvider.version : '(not installed - served from localDocRoot)'; + console.log(` provider version: ${version}`); + if (live && linodeProvider && linodeProvider.version === 'v00.00.00000') { + throw new Error('--live specified but the server is running the locally generated provider'); + } + + console.log('\nRead-only checks:'); + await check('account.account', 'SELECT company, country FROM linode.account.account', (r) => r.length === 1); + await check('regions.regions', 'SELECT COUNT(*) AS n FROM linode.regions.regions', (r) => Number(r[0].n) > 10); + await check('linode.types (compute catalog)', 'SELECT COUNT(*) AS n FROM linode.linode.types', (r) => Number(r[0].n) > 20); + await check('images.images', 'SELECT COUNT(*) AS n FROM linode.images.images', (r) => Number(r[0].n) > 10); + await check('linode.kernels (multi-page pagination)', 'SELECT COUNT(*) AS n FROM linode.linode.kernels', (r) => Number(r[0].n) > 100); + await check('linode.instances', 'SELECT id, label, status FROM linode.linode.instances', () => true); + await check('volumes.volumes', 'SELECT id, label, status FROM linode.volumes.volumes', () => true); + await check('object_storage.clusters', 'SELECT COUNT(*) AS n FROM linode.object_storage.clusters', (r) => Number(r[0].n) > 0); + await check('object_storage.buckets', 'SELECT label, cluster FROM linode.object_storage.buckets', () => true); + await check('networking.firewalls', 'SELECT id, label FROM linode.networking.firewalls', () => true); + + if (skipMutations) { + console.log('\nSkipping mutation lifecycle (--skip-mutations)'); + return; + } + + console.log('\nCompute lifecycle (create with image, boot, shutdown, boot again, delete):'); + // throwaway root password for the disposable test instance + const rootPass = 'Sq!9' + Math.random().toString(36).slice(2) + 'Xz#4' + Math.random().toString(36).slice(2); + // status polls go via the list method - single-row reads by path param are + // unreliable through the pg server wire protocol (they work via stackql exec) + const instanceStatus = (rows) => (rows.find((r) => String(r.id) === String(instanceId)) || {}).status; + let instanceId = null; + let volumeId = null; + try { + await check( + 'INSERT instance', + `INSERT INTO linode.linode.instances (label, region, type, image, root_pass) SELECT '${instanceLabel}', '${region}', '${instanceType}', 'linode/debian12', '${rootPass}'`, + () => true + ); + const listing = await poll( + 'instance visible', + `SELECT id, label, status FROM linode.linode.instances`, + (rows) => rows.some((r) => r.label === instanceLabel), + { timeoutMs: 60000, intervalMs: 5000 } + ); + instanceId = listing.find((r) => r.label === instanceLabel).id; + console.log(` instance ${instanceId} created`); + await poll( + 'instance running', + `SELECT id, status FROM linode.linode.instances`, + (rows) => instanceStatus(rows) === 'running', + { timeoutMs: 300000, intervalMs: 10000 } + ); + passed++; + console.log(' PASS instance booted to running'); + + await check( + 'EXEC instances.shutdown', + `EXEC linode.linode.instances.shutdown @linodeId = '${instanceId}'`, + () => true + ); + await poll( + 'instance offline after shutdown', + `SELECT id, status FROM linode.linode.instances`, + (rows) => instanceStatus(rows) === 'offline', + { timeoutMs: 300000, intervalMs: 10000 } + ); + passed++; + console.log(' PASS instance stopped (offline)'); + + await check( + 'EXEC instances.boot', + `EXEC linode.linode.instances.boot @linodeId = '${instanceId}'`, + () => true + ); + await poll( + 'instance running after boot', + `SELECT id, status FROM linode.linode.instances`, + (rows) => instanceStatus(rows) === 'running', + { timeoutMs: 300000, intervalMs: 10000 } + ); + passed++; + console.log(' PASS instance started again (running)'); + } catch (err) { + failed++; + failures.push('compute lifecycle'); + console.log(` FAIL compute lifecycle - ${String(err.message || err).slice(0, 200)}`); + } finally { + if (instanceId) { + try { + await query(`DELETE FROM linode.linode.instances WHERE linodeId = ${instanceId}`); + await poll( + 'instance deleted', + `SELECT id FROM linode.linode.instances`, + (rows) => !rows.some((r) => String(r.id) === String(instanceId)), + { timeoutMs: 120000 } + ); + passed++; + console.log(` PASS instance ${instanceId} deleted and verified gone`); + } catch (err) { + failed++; + failures.push('instance cleanup'); + console.log(` FAIL instance cleanup - MANUAL CLEANUP MAY BE REQUIRED (id ${instanceId}) - ${String(err.message || err).slice(0, 200)}`); + } + } + } + + console.log('\nStorage lifecycle (10GB volume, minimum size):'); + try { + await check( + 'INSERT volume', + `INSERT INTO linode.volumes.volumes (label, region, size) SELECT '${volumeLabel}', '${region}', 10`, + () => true + ); + const createdVol = await poll( + 'volume visible', + `SELECT id, label, status FROM linode.volumes.volumes`, + (rows) => rows.some((r) => r.label === volumeLabel), + { timeoutMs: 60000 } + ); + volumeId = createdVol.find((r) => r.label === volumeLabel).id; + console.log(` volume ${volumeId} created`); + // Poll via the list method - single-row reads by path param are unreliable + // through the pg server wire protocol (they work via stackql exec). + await poll( + 'volume active', + `SELECT id, status FROM linode.volumes.volumes`, + (rows) => rows.some((r) => String(r.id) === String(volumeId) && r.status === 'active') + ); + passed++; + console.log(' PASS volume reached active state'); + } catch (err) { + failed++; + failures.push('storage lifecycle'); + console.log(` FAIL storage lifecycle - ${String(err.message || err).slice(0, 200)}`); + } finally { + if (volumeId) { + try { + await query(`DELETE FROM linode.volumes.volumes WHERE volumeId = ${volumeId}`); + await poll( + 'volume deleted', + `SELECT id FROM linode.volumes.volumes`, + (rows) => !rows.some((r) => String(r.id) === String(volumeId)), + { timeoutMs: 120000 } + ); + passed++; + console.log(` PASS volume ${volumeId} deleted and verified gone`); + } catch (err) { + failed++; + failures.push('volume cleanup'); + console.log(` FAIL volume cleanup - MANUAL CLEANUP MAY BE REQUIRED (id ${volumeId}) - ${String(err.message || err).slice(0, 200)}`); + } + } + } +} + +main() + .then(() => { + console.log(`\nSmoke test complete: ${passed} passed, ${failed} failed`); + if (failed > 0) { + console.log(`Failures: ${failures.join(', ')}`); + process.exit(1); + } + }) + .catch((err) => { + console.error(`\nSmoke test aborted: ${String(err.message || err)}`); + process.exit(1); + }); diff --git a/bin/start-server.sh b/bin/start-server.sh index e050450..3e141f3 100644 --- a/bin/start-server.sh +++ b/bin/start-server.sh @@ -67,8 +67,12 @@ echo "Registry path: $REG_PATH" echo "Port: $PORT" echo "Verify signatures: $VERIFY" -# Check if stackql binary exists -if [ ! -f "$BASE_DIR/stackql" ]; then +# Locate the stackql binary: repo root first, then PATH, else download +STACKQL_BIN="$BASE_DIR/stackql" +if [ ! -f "$STACKQL_BIN" ] && command -v stackql > /dev/null 2>&1; then + STACKQL_BIN="$(command -v stackql)" +fi +if [ ! -f "$STACKQL_BIN" ]; then echo "StackQL binary not found. Downloading..." # Determine OS and architecture @@ -100,6 +104,7 @@ if [ ! -f "$BASE_DIR/stackql" ]; then rm stackql.zip chmod +x stackql echo "StackQL binary downloaded successfully" + STACKQL_BIN="$BASE_DIR/stackql" fi # Set registry configuration @@ -118,7 +123,7 @@ fi # Start the server echo "Starting StackQL server with registry: $REG" cd "$BASE_DIR" -nohup ./stackql --registry="${REG}" --pgsrv.port="${PORT}" srv > stackql-server.log 2>&1 & +nohup "$STACKQL_BIN" --registry="${REG}" --pgsrv.port="${PORT}" srv > stackql-server.log 2>&1 & SERVER_PID=$! # Check if server started successfully diff --git a/examples/stackql-deploy/linode-demo/README.md b/examples/stackql-deploy/linode-demo/README.md new file mode 100644 index 0000000..4e4bee2 --- /dev/null +++ b/examples/stackql-deploy/linode-demo/README.md @@ -0,0 +1,56 @@ +# linode-demo stackql-deploy stack + +An example [stackql-deploy](https://stackql-deploy.io) stack for the `linode` +StackQL provider. It provisions: + +- `example_instance` - a Debian 12 compute instance (`g6-nanode-1` in `dev`/`sit`, + `g6-standard-1` in `prd`) +- `example_volume` - a block storage volume (10GB in `dev`/`sit`, 20GB in `prd`) + +## Prerequisites + +- [stackql-deploy](https://github.com/stackql/stackql-deploy-rs) installed +- `LINODE_TOKEN` exported in your shell (provider auth is read from the process + environment by the StackQL server, not from stack variables) + +## Usage + +Template variables (region, root password) are fed from the environment via +`-e` flags or an `--env-file`: + +```bash +export LINODE_TOKEN= + +# deploy (idempotent - safe to re-run) +stackql-deploy build examples/stackql-deploy/linode-demo dev \ + -e LINODE_REGION=us-ord \ + -e LINODE_ROOT_PASSWORD='' + +# test - verifies all resources are in their desired state +stackql-deploy test examples/stackql-deploy/linode-demo dev \ + -e LINODE_REGION=us-ord \ + -e LINODE_ROOT_PASSWORD='' + +# teardown - deletes the instance and volume +stackql-deploy teardown examples/stackql-deploy/linode-demo dev \ + -e LINODE_REGION=us-ord \ + -e LINODE_ROOT_PASSWORD='' +``` + +The nanode and 10GB volume in the `dev` environment cost well under USD 0.01 +per hour - tear the stack down when you are done. + +## How it works + +Each resource `.iql` file carries the full lifecycle as anchored queries: + +- `/*+ exists */` - a `SELECT` returning the resource id if it exists; the id + is captured for later blocks +- `/*+ create */` - an `INSERT` (columns are the native Linode API body + properties - the provider uses the naive request body translation, so no + `data__` prefixes) +- `/*+ statecheck */` - polls until the instance is `running` / the volume is + `active` +- `/*+ exports */` - exports `instance_id`, `instance_ipv4` and `volume_id` + for downstream resources or stack outputs +- `/*+ delete */` - deletes by the Linode numeric id captured in the exports diff --git a/examples/stackql-deploy/linode-demo/resources/example_instance.iql b/examples/stackql-deploy/linode-demo/resources/example_instance.iql new file mode 100644 index 0000000..c613370 --- /dev/null +++ b/examples/stackql-deploy/linode-demo/resources/example_instance.iql @@ -0,0 +1,37 @@ +/*+ exists */ +SELECT id as instance_id +FROM linode.linode.instances +WHERE label = '{{ instance_label }}' + +/*+ create */ +INSERT INTO linode.linode.instances ( + label, + region, + type, + image, + root_pass, + tags +) +SELECT + '{{ instance_label }}', + '{{ region }}', + '{{ instance_type }}', + '{{ instance_image }}', + '{{ root_password }}', + '{{ instance_tags }}' + +/*+ statecheck, retries=10, retry_delay=15 */ +SELECT COUNT(*) as count +FROM linode.linode.instances +WHERE label = '{{ instance_label }}' +AND status = 'running' + +/*+ exports */ +SELECT id as instance_id, +ipv4 as instance_ipv4 +FROM linode.linode.instances +WHERE label = '{{ instance_label }}' + +/*+ delete, retries=5, retry_delay=10 */ +DELETE FROM linode.linode.instances +WHERE linodeId = '{{ instance_id }}' diff --git a/examples/stackql-deploy/linode-demo/resources/example_volume.iql b/examples/stackql-deploy/linode-demo/resources/example_volume.iql new file mode 100644 index 0000000..c91e5ac --- /dev/null +++ b/examples/stackql-deploy/linode-demo/resources/example_volume.iql @@ -0,0 +1,30 @@ +/*+ exists */ +SELECT id as volume_id +FROM linode.volumes.volumes +WHERE label = '{{ volume_label }}' + +/*+ create */ +INSERT INTO linode.volumes.volumes ( + label, + region, + size +) +SELECT + '{{ volume_label }}', + '{{ region }}', + {{ volume_size }} + +/*+ statecheck, retries=10, retry_delay=10 */ +SELECT COUNT(*) as count +FROM linode.volumes.volumes +WHERE label = '{{ volume_label }}' +AND status = 'active' + +/*+ exports */ +SELECT id as volume_id +FROM linode.volumes.volumes +WHERE label = '{{ volume_label }}' + +/*+ delete, retries=5, retry_delay=10 */ +DELETE FROM linode.volumes.volumes +WHERE volumeId = '{{ volume_id }}' diff --git a/examples/stackql-deploy/linode-demo/stackql_manifest.yml b/examples/stackql-deploy/linode-demo/stackql_manifest.yml new file mode 100644 index 0000000..80a7f28 --- /dev/null +++ b/examples/stackql-deploy/linode-demo/stackql_manifest.yml @@ -0,0 +1,48 @@ +version: 1 +name: "linode-demo" +description: Provisions a minimal Linode stack - a nanode compute instance running Debian 12 and a 10GB block storage volume. +providers: + - linode +globals: + - name: region + description: Linode region id (e.g. us-ord) + value: "{{ LINODE_REGION }}" + - name: root_password + description: root password for the instance, sourced from the environment + value: "{{ LINODE_ROOT_PASSWORD }}" +resources: + - name: example_instance + props: + - name: instance_label + value: "{{ stack_name }}-{{ stack_env }}-vm" + - name: instance_type + values: + prd: + value: g6-standard-1 + sit: + value: g6-nanode-1 + dev: + value: g6-nanode-1 + - name: instance_image + value: linode/debian12 + - name: instance_tags + value: ["stackql-deploy", "{{ stack_name }}", "{{ stack_env }}"] + exports: + - instance_id + - instance_ipv4 + protected: + - instance_id + - name: example_volume + props: + - name: volume_label + value: "{{ stack_name }}-{{ stack_env }}-vol" + - name: volume_size + values: + prd: + value: 20 + sit: + value: 10 + dev: + value: 10 + exports: + - volume_id diff --git a/package-lock.json b/package-lock.json index fa8319f..e5737e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,527 +1,531 @@ -{ - "name": "stackql-provider-digitalocean", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "stackql-provider-digitalocean", - "version": "0.1.0", - "dependencies": { - "@stackql/pgwire-lite": "^1.0.1", - "@stackql/provider-utils": "^0.4.7" - }, - "engines": { - "node": ">=14.16.0" - } - }, - "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/@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": "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/@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.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", - "license": "MIT", - "dependencies": { - "colorspace": "1.1.x", - "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/@stackql/deno-openapi-dereferencer": { - "name": "@jsr/stackql__deno-openapi-dereferencer", - "version": "0.3.1", - "resolved": "https://npm.jsr.io/~/11/@jsr/stackql__deno-openapi-dereferencer/0.3.1.tgz", - "integrity": "sha512-7Ucdom3SYxvzp7VwzulQMe66E+1LeCZIprFQ70PwRPIUfL90bYNQDrLfe5L1WaB+X7StWdHmoFSFxoa9RDlN7w==", - "dependencies": { - "jsonpath-plus": "7.0.0" - } - }, - "node_modules/@stackql/pgwire-lite": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stackql/pgwire-lite/-/pgwire-lite-1.0.1.tgz", - "integrity": "sha512-jgA6ogzlXySZ1xiJzBxuvgRNu9V38Gs3qUZ4AjinlT7hj+8RH3UhYaDvyBd33QWiK3tVNkglYcnXPQ7q0+rmNA==", - "license": "MIT", - "dependencies": { - "winston": "^3.14.2" - } - }, - "node_modules/@stackql/provider-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.4.7.tgz", - "integrity": "sha512-ESXOvjaTw0E2ndUH6i0aTlIySATRQN4vkc3sFGhsUIlodr7J6SKfSx4g2DjTasHWLem02EC7W+ulyzUWlPBrGg==", - "license": "MIT", - "dependencies": { - "@apidevtools/swagger-parser": "^10.1.1", - "@stackql/deno-openapi-dereferencer": "npm:@jsr/stackql__deno-openapi-dereferencer@^0.3.1", - "csv-parser": "^3.2.0", - "js-yaml": "^4.1.0", - "pluralize": "^8.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "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.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "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": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "license": "MIT", - "dependencies": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, - "node_modules/csv-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.2.0.tgz", - "integrity": "sha512-fgKbp+AJbn1h2dcAHKIdKNSSjfp43BZZykXsCjzALjKy80VXQNHPFJ6T9Afwdzoj24aMkq8GwDS7KGcDPpejrA==", - "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.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", - "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-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "license": "MIT" - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "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": "7.0.0", - "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-7.0.0.tgz", - "integrity": "sha512-MH4UnrWrU1hJGVEyEyjvYgONkzNTO6Yol0nq18EMnUQ/ZC5cTuJheirXXIwu1b9mZ6t3XL0P79gPsu+zlTnDIQ==", - "license": "MIT", - "engines": { - "node": ">=12.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/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "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.17.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", - "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", - "license": "MIT", - "dependencies": { - "@colors/colors": "^1.6.0", - "@dabh/diagnostics": "^2.0.2", - "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" - } - } - } -} +{ + "name": "stackql-provider-linode", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "stackql-provider-linode", + "version": "1.0.0", + "dependencies": { + "@stackql/pgwire-lite": "^1.0.1", + "@stackql/provider-utils": "^0.7.7" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "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/@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": "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/@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.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "license": "MIT", + "dependencies": { + "colorspace": "1.1.x", + "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/@stackql/deno-openapi-dereferencer": { + "name": "@jsr/stackql__deno-openapi-dereferencer", + "version": "0.3.1", + "resolved": "https://npm.jsr.io/~/11/@jsr/stackql__deno-openapi-dereferencer/0.3.1.tgz", + "integrity": "sha512-7Ucdom3SYxvzp7VwzulQMe66E+1LeCZIprFQ70PwRPIUfL90bYNQDrLfe5L1WaB+X7StWdHmoFSFxoa9RDlN7w==", + "dependencies": { + "jsonpath-plus": "7.0.0" + } + }, + "node_modules/@stackql/pgwire-lite": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stackql/pgwire-lite/-/pgwire-lite-1.0.1.tgz", + "integrity": "sha512-jgA6ogzlXySZ1xiJzBxuvgRNu9V38Gs3qUZ4AjinlT7hj+8RH3UhYaDvyBd33QWiK3tVNkglYcnXPQ7q0+rmNA==", + "license": "MIT", + "dependencies": { + "winston": "^3.14.2" + } + }, + "node_modules/@stackql/provider-utils": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.7.7.tgz", + "integrity": "sha512-wPjnsk8UWeXD0YhhZ/OJJ1uFyZ0a/ZgTKuUYrmMV9hTJ1/QZ+hpRW2Btni7MPVpnodKHex5UFjpnP4OX9czDHw==", + "license": "MIT", + "dependencies": { + "@apidevtools/swagger-parser": "^10.1.1", + "@stackql/deno-openapi-dereferencer": "npm:@jsr/stackql__deno-openapi-dereferencer@^0.3.1", + "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/@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.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "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": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "license": "MIT", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/csv-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.2.0.tgz", + "integrity": "sha512-fgKbp+AJbn1h2dcAHKIdKNSSjfp43BZZykXsCjzALjKy80VXQNHPFJ6T9Afwdzoj24aMkq8GwDS7KGcDPpejrA==", + "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.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "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-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" + }, + "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.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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": "7.0.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-7.0.0.tgz", + "integrity": "sha512-MH4UnrWrU1hJGVEyEyjvYgONkzNTO6Yol0nq18EMnUQ/ZC5cTuJheirXXIwu1b9mZ6t3XL0P79gPsu+zlTnDIQ==", + "license": "MIT", + "engines": { + "node": ">=12.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/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "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.17.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", + "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", + "license": "MIT", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "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 index b37fc60..0e3346f 100644 --- a/package.json +++ b/package.json @@ -1,28 +1,29 @@ -{ - "name": "stackql-provider-digitalocean", - "version": "0.1.0", - "description": "StackQL Provider for Digital Ocean", - "type": "module", - "scripts": { - "generate-docs": "./bin/generate-docs.sh", - "split": "./bin/split.sh", - "generate-mappings": "./bin/generate-mappings.sh", - "generate-provider": "./bin/generate-provider.sh", - "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" - }, - "dependencies": { - "@stackql/pgwire-lite": "^1.0.1", - "@stackql/provider-utils": "^0.4.7" - }, - "keywords": [ - "stackql", - "digitalocean", - "provider" - ], - "engines": { - "node": ">=14.16.0" - } -} \ No newline at end of file +{ + "name": "stackql-provider-linode", + "version": "1.0.0", + "description": "StackQL Provider for Linode", + "type": "module", + "scripts": { + "split": "node node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs split", + "normalize": "node node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs normalize", + "generate-mappings": "node node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs analyze", + "generate-provider": "node node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs generate", + "generate-docs": "node node_modules/@stackql/provider-utils/bin/docgen-utils.mjs generate-docs", + "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" + }, + "dependencies": { + "@stackql/pgwire-lite": "^1.0.1", + "@stackql/provider-utils": "^0.7.7" + }, + "keywords": [ + "stackql", + "linode", + "provider" + ], + "engines": { + "node": ">=20.0.0" + } +} diff --git a/provider-dev/config/all_services.csv b/provider-dev/config/all_services.csv index 849c3b2..366aeb9 100644 --- a/provider-dev/config/all_services.csv +++ b/provider-dev/config/all_services.csv @@ -1,426 +1,450 @@ 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 -account.yaml,/{apiVersion}/account/cancel,post-cancel-account,post-cancel-account,post,,Account,account,account,post_cancel_account,exec,,Delete your account -account.yaml,/{apiVersion}/account,put-account,put-account,put,,Account,account,account,put_account,replace,,Update your account -account.yaml,/{apiVersion}/account,get-account,get-account,get,,Account,account,account,get_account,select,,Get your account -account.yaml,/{apiVersion}/account/agreements,post-account-agreements,post-account-agreements,post,,Account agreements,account agreements,agreements,post_account_agreements,exec,,Acknowledge agreements -account.yaml,/{apiVersion}/account/agreements,get-account-agreements,get-account-agreements,get,,Account agreements,account agreements,agreements,get_account_agreements,select,,List agreements -account.yaml,/{apiVersion}/account/availability/{id},get-account-availability,get-account-availability,get,,Account,account,availability,get_account_availability,select,,Get a region's service availability -account.yaml,/{apiVersion}/account/availability,get-availability,get-availability,get,,Account availability,account availability,available_services,get_availability,select,$.data,List available services -account.yaml,/{apiVersion}/account/betas,post-beta-program,post-beta-program,post,,Beta programs,beta programs,beta_programs,post_beta_program,exec,,Enroll in a Beta program -account.yaml,/{apiVersion}/account/betas,get-enrolled-beta-programs,get-enrolled-beta-programs,get,,Beta programs,beta programs,beta_programs,get_enrolled_beta_programs,select,$.data,List enrolled Beta programs -account.yaml,/{apiVersion}/account/betas/{betaId},get-enrolled-beta-program,get-enrolled-beta-program,get,,Beta programs,beta programs,beta_programs,get_enrolled_beta_program,select,,Get an enrolled Beta program -account.yaml,/{apiVersion}/account/child-accounts/{euuid}/token,post-child-account-token,post-child-account-token,post,,Child accounts,child accounts,child_accounts,post_child_account_token,exec,,Create a proxy user token -account.yaml,/{apiVersion}/account/child-accounts,get-child-accounts,get-child-accounts,get,,Child accounts,child accounts,child_accounts,get_child_accounts,select,,List child accounts -account.yaml,/{apiVersion}/account/child-accounts/{euuid},get-child-account,get-child-account,get,,Child accounts,child accounts,child_accounts,get_child_account,select,,Get a child account -account.yaml,/{apiVersion}/account/oauth-clients/{clientId}/thumbnail,put-client-thumbnail,put-client-thumbnail,put,,Client thumbnail,client thumbnail,oauth_clients,put_client_thumbnail,exec,,Update the OAuth client's thumbnail -account.yaml,/{apiVersion}/account/oauth-clients/{clientId}/thumbnail,get-client-thumbnail,get-client-thumbnail,get,,Client thumbnail,client thumbnail,oauth_clients,get_client_thumbnail,exec,,Get the OAuth client's thumbnail -account.yaml,/{apiVersion}/account/entity-transfers/{token},delete-entity-transfer,delete-entity-transfer,delete,,Entity transfers,entity transfers,entity_transfers,delete_entity_transfer,delete,,Cancel an entity transfer -account.yaml,/{apiVersion}/account/entity-transfers/{token}/accept,post-accept-entity-transfer,post-accept-entity-transfer,post,,Entity transfers,entity transfers,entity_transfers,post_accept_entity_transfer,exec,,Accept an entity transfer -account.yaml,/{apiVersion}/account/entity-transfers,post-entity-transfer,post-entity-transfer,post,,Entity transfers,entity transfers,entity_transfers,post_entity_transfer,insert,,Create an entity transfer -account.yaml,/{apiVersion}/account/entity-transfers,get-entity-transfers,get-entity-transfers,get,,Entity transfers,entity transfers,entity_transfers,get_entity_transfers,select,$.data,List entity transfers -account.yaml,/{apiVersion}/account/entity-transfers/{token},get-entity-transfer,get-entity-transfer,get,,Entity transfers,entity transfers,entity_transfers,get_entity_transfer,select,,Get an entity transfer -account.yaml,/{apiVersion}/account/events/{eventId}/seen,post-event-seen,post-event-seen,post,,Events,events,events,post_event_seen,exec,,Mark an event as seen -account.yaml,/{apiVersion}/account/events,get-events,get-events,get,,Events,events,events,get_events,select,,List events -account.yaml,/{apiVersion}/account/events/{eventId},get-event,get-event,get,,Events,events,events,get_event,select,,Get an event -account.yaml,/{apiVersion}/account/invoices/{invoiceId}/items,get-invoice-items,get-invoice-items,get,,Invoices,invoices,invoice_items,get_invoice_items,select,,List invoice items -account.yaml,/{apiVersion}/account/invoices,get-invoices,get-invoices,get,,Invoices,invoices,invoices,get_invoices,select,,List invoices -account.yaml,/{apiVersion}/account/invoices/{invoiceId},get-invoice,get-invoice,get,,Invoices,invoices,invoices,get_invoice,select,,Get an invoice -account.yaml,/{apiVersion}/account/logins,get-account-logins,get-account-logins,get,,Logins,logins,logins,get_account_logins,select,,List user logins -account.yaml,/{apiVersion}/account/logins/{loginId},get-account-login,get-account-login,get,,Logins,logins,logins,get_account_login,select,,Get an account login -account.yaml,/{apiVersion}/account/maintenance,get-maintenance,get-maintenance,get,,Maintenances,maintenances,maintenances,get_maintenance,select,,List maintenances -account.yaml,/{apiVersion}/account/transfer,get-transfer,get-transfer,get,,Account transfer,account transfer,network_usage,get_transfer,select,,Get network usage -account.yaml,/{apiVersion}/account/notifications,get-notifications,get-notifications,get,,Notifications,notifications,notifications,get_notifications,select,,List notifications -account.yaml,/{apiVersion}/account/oauth-clients/{clientId},delete-client,delete-client,delete,,OAuth clients,oauth clients,oauth_clients,delete_client,delete,,Delete an OAuth client -account.yaml,/{apiVersion}/account/oauth-clients/{clientId}/reset-secret,post-reset-client-secret,post-reset-client-secret,post,,OAuth clients,oauth clients,oauth_clients,post_reset_client_secret,exec,,Reset an OAuth client secret -account.yaml,/{apiVersion}/account/oauth-clients,post-client,post-client,post,,OAuth clients,oauth clients,oauth_clients,post_client,insert,,Create an OAuth client -account.yaml,/{apiVersion}/account/oauth-clients/{clientId},put-client,put-client,put,,OAuth clients,oauth clients,oauth_clients,put_client,replace,,Update an OAuth client -account.yaml,/{apiVersion}/account/oauth-clients,get-clients,get-clients,get,,OAuth clients,oauth clients,oauth_clients,get_clients,select,,List OAuth clients -account.yaml,/{apiVersion}/account/oauth-clients/{clientId},get-client,get-client,get,,OAuth clients,oauth clients,oauth_clients,get_client,select,,Get an OAuth client -account.yaml,/{apiVersion}/account/payment-methods/{paymentMethodId},delete-payment-method,delete-payment-method,delete,,Payment methods,payment methods,payment_methods,delete_payment_method,delete,,Delete a payment method -account.yaml,/{apiVersion}/account/payment-methods/{paymentMethodId}/make-default,post-make-payment-method-default,post-make-payment-method-default,post,,Payment methods,payment methods,payment_methods,post_make_payment_method_default,exec,,Set a default payment method -account.yaml,/{apiVersion}/account/payment-methods,post-payment-method,post-payment-method,post,,Payment methods,payment methods,payment_methods,post_payment_method,insert,,Add a payment method -account.yaml,/{apiVersion}/account/payment-methods,get-payment-methods,get-payment-methods,get,,Payment methods,payment methods,payment_methods,get_payment_methods,select,,List payment methods -account.yaml,/{apiVersion}/account/payment-methods/{paymentMethodId},get-payment-method,get-payment-method,get,,Payment methods,payment methods,payment_methods,get_payment_method,select,,Get a payment method -account.yaml,/{apiVersion}/account/payments,post-payment,post-payment,post,,Payments,payments,payments,post_payment,exec,,Make a payment -account.yaml,/{apiVersion}/account/payments/paypal,post-pay-pal-payment,post-pay-pal-payment,post,,Payments,payments,payments,post_pay_pal_payment,exec,,Stage a PayPal payment -account.yaml,/{apiVersion}/account/payments/paypal/execute,post-execute-pay-pal-payment,post-execute-pay-pal-payment,post,,Payments,payments,payments,post_execute_pay_pal_payment,exec,,Execute a PayPal payment -account.yaml,/{apiVersion}/account/credit-card,post-credit-card,post-credit-card,post,,Payments,payments,payments,post_credit_card,insert,,Add or edit a credit card -account.yaml,/{apiVersion}/account/payments,get-payments,get-payments,get,,Payments,payments,payments,get_payments,select,,List payments -account.yaml,/{apiVersion}/account/payments/{paymentId},get-payment,get-payment,get,,Payments,payments,payments,get_payment,select,,Get a payment -account.yaml,/{apiVersion}/account/promo-codes,post-promo-credit,post-promo-credit,post,,Promo credits,promo credits,promo_credits,post_promo_credit,insert,,Add a promo credit -account.yaml,/{apiVersion}/account/service-transfers/{token},delete-service-transfer,delete-service-transfer,delete,,Service transfers,service transfers,service_transfers,delete_service_transfer,delete,,Cancel a service transfer -account.yaml,/{apiVersion}/account/service-transfers/{token}/accept,post-accept-service-transfer,post-accept-service-transfer,post,,Service transfers,service transfers,service_transfers,post_accept_service_transfer,exec,,Accept a service transfer -account.yaml,/{apiVersion}/account/service-transfers,post-service-transfer,post-service-transfer,post,,Service transfers,service transfers,service_transfers,post_service_transfer,insert,,Request a service transfer -account.yaml,/{apiVersion}/account/service-transfers,get-service-transfers,get-service-transfers,get,,Service transfers,service transfers,service_transfers,get_service_transfers,select,,List service transfers -account.yaml,/{apiVersion}/account/service-transfers/{token},get-service-transfer,get-service-transfer,get,,Service transfers,service transfers,service_transfers,get_service_transfer,select,,Get a service transfer request -account.yaml,/{apiVersion}/account/settings/managed-enable,post-enable-account-managed,post-enable-account-managed,post,,Settings,settings,settings,post_enable_account_managed,exec,,Enable Linode Managed -account.yaml,/{apiVersion}/account/settings,put-account-settings,put-account-settings,put,,Account settings,account settings,settings,put_account_settings,replace,,Update account settings -account.yaml,/{apiVersion}/account/settings,get-account-settings,get-account-settings,get,,Account settings,account settings,settings,get_account_settings,select,,Get account settings -account.yaml,/{apiVersion}/account/users/{username}/grants,put-user-grants,put-user-grants,put,,Users,users,user_grants,put_user_grants,replace,,Update a user's grants -account.yaml,/{apiVersion}/account/users/{username}/grants,get-user-grants,get-user-grants,get,,Users,users,user_grants,get_user_grants,select,,List a user's grants -account.yaml,/{apiVersion}/account/users/{username},delete-user,delete-user,delete,,Users,users,users,delete_user,delete,,Delete a user -account.yaml,/{apiVersion}/account/users,post-user,post-user,post,,Users,users,users,post_user,insert,,Create a user -account.yaml,/{apiVersion}/account/users/{username},put-user,put-user,put,,Users,users,users,put_user,replace,,Update a user -account.yaml,/{apiVersion}/account/users,get-users,get-users,get,,Users,users,users,get_users,select,,List users -account.yaml,/{apiVersion}/account/users/{username},get-user,get-user,get,,Users,users,users,get_user,select,$.user_type,Get a user -betas.yaml,/{apiVersion}/betas,get-beta-programs,get-beta-programs,get,,Beta programs,beta programs,beta_programs,get_beta_programs,select,$.data,List Beta programs -betas.yaml,/{apiVersion}/betas/{betaId},get-beta-program,get-beta-program,get,,Beta programs,beta programs,beta_programs,get_beta_program,select,,Get a Beta program -databases.yaml,/{apiVersion}/databases/engines,get-databases-engines,get-databases-engines,get,,Engines,engines,engines,get_databases_engines,select,$.data,List Managed Databases engines -databases.yaml,/{apiVersion}/databases/engines/{engineId},get-databases-engine,get-databases-engine,get,,Engines,engines,engines,get_databases_engine,select,,Get a Managed Databases engine -databases.yaml,/{apiVersion}/databases/instances,get-databases-instances,get-databases-instances,get,,Databases,databases,instances,get_databases_instances,select,$.data,List Managed Databases -databases.yaml,/{apiVersion}/databases/mysql/config,get-databases-mysql-config,get-databases-mysql-config,get,,Advanced parameters,advanced parameters,mysql_config,get_databases_mysql_config,select,,List MySQL Managed Database advanced parameters -databases.yaml,/{apiVersion}/databases/mysql/instances/{instanceId}/credentials/reset,post-databases-mysql-instance-credentials-reset,post-databases-mysql-instance-credentials-reset,post,,Credentials,credentials,mysql_instance_credentials,post_databases_mysql_instance_credentials_reset,exec,,Reset MySQL Managed Database credentials -databases.yaml,/{apiVersion}/databases/mysql/instances/{instanceId}/credentials,get-databases-mysql-instance-credentials,get-databases-mysql-instance-credentials,get,,Credentials,credentials,mysql_instance_credentials,get_databases_mysql_instance_credentials,select,,Get MySQL Managed Database credentials -databases.yaml,/{apiVersion}/databases/mysql/instances/{instanceId},delete-databases-mysql-instance,delete-databases-mysql-instance,delete,,Databases,databases,mysql_instances,delete_databases_mysql_instance,delete,,Delete a MySQL Managed Database -databases.yaml,/{apiVersion}/databases/mysql/instances/{instanceId}/resume,resume-databases-mysql-instance,resume-databases-mysql-instance,post,,Databases,databases,mysql_instances,resume_databases_mysql_instance,exec,,Resume a MySQL Managed Database -databases.yaml,/{apiVersion}/databases/mysql/instances/{instanceId}/suspend,suspend-databases-mysql-instance,suspend-databases-mysql-instance,post,,Databases,databases,mysql_instances,suspend_databases_mysql_instance,exec,,Suspend a MySQL Managed Database -databases.yaml,/{apiVersion}/databases/mysql/instances,post-databases-mysql-instances,post-databases-mysql-instances,post,,Databases,databases,mysql_instances,post_databases_mysql_instances,insert,,Create or restore a MySQL Managed Database -databases.yaml,/{apiVersion}/databases/mysql/instances/{instanceId},put-databases-mysql-instance,put-databases-mysql-instance,put,,Databases,databases,mysql_instances,put_databases_mysql_instance,replace,,Update a MySQL Managed Database -databases.yaml,/{apiVersion}/databases/mysql/instances,get-databases-mysql-instances,get-databases-mysql-instances,get,,Databases,databases,mysql_instances,get_databases_mysql_instances,select,$.data,List MySQL Managed Databases -databases.yaml,/{apiVersion}/databases/mysql/instances/{instanceId},get-databases-mysql-instance,get-databases-mysql-instance,get,,Databases,databases,mysql_instances,get_databases_mysql_instance,select,,Get a MySQL Managed Database -databases.yaml,/{apiVersion}/databases/mysql/instances/{instanceId}/patch,post-databases-mysql-instance-patch,post-databases-mysql-instance-patch,post,,Databases,databases,mysql_instances,post_databases_mysql_instance_patch,update,,Patch a MySQL Managed Database -databases.yaml,/{apiVersion}/databases/mysql/instances/{instanceId}/ssl,get-databases-mysql-instance-ssl,get-databases-mysql-instance-ssl,get,,SSL certificates,ssl certificates,mysql_ssl_certificates,get_databases_mysql_instance_ssl,select,,Get a MySQL Managed Database SSL certificate -databases.yaml,/{apiVersion}/databases/postgresql/config,get-databases-postgresql-config,get-databases-postgresql-config,get,,Advanced parameters,advanced parameters,postgresql_config,get_databases_postgresql_config,select,,List PostgreSQL Managed Database advanced parameters -databases.yaml,/{apiVersion}/databases/postgresql/instances/{instanceId}/credentials/reset,post-databases-postgre-sql-instance-credentials-reset,post-databases-postgre-sql-instance-credentials-reset,post,,Credentials,credentials,postgresql_instance_credentials,post_databases_postgre_sql_instance_credentials_reset,exec,,Reset PostgreSQL Managed Database credentials -databases.yaml,/{apiVersion}/databases/postgresql/instances/{instanceId}/credentials,get-databases-postgre-sql-instance-credentials,get-databases-postgre-sql-instance-credentials,get,,Credentials,credentials,postgresql_instance_credentials,get_databases_postgre_sql_instance_credentials,select,,Get PostgreSQL Managed Database credentials -databases.yaml,/{apiVersion}/databases/postgresql/instances/{instanceId},delete-databases-postgre-sql-instance,delete-databases-postgre-sql-instance,delete,,Databases,databases,postgresql_instances,delete_databases_postgre_sql_instance,delete,,Delete a PostgreSQL Managed Database -databases.yaml,/{apiVersion}/databases/postgresql/instances/{instanceId}/resume,resume-databases-postgre-sql-instance,resume-databases-postgre-sql-instance,post,,Databases,databases,postgresql_instances,resume_databases_postgre_sql_instance,exec,,Resume a PostgreSQL Managed Database -databases.yaml,/{apiVersion}/databases/postgresql/instances/{instanceId}/suspend,suspend-databases-postgre-sql-instance,suspend-databases-postgre-sql-instance,post,,Databases,databases,postgresql_instances,suspend_databases_postgre_sql_instance,exec,,Suspend a PostgreSQL Managed Database -databases.yaml,/{apiVersion}/databases/postgresql/instances,post-databases-postgre-sql-instances,post-databases-postgre-sql-instances,post,,Databases,databases,postgresql_instances,post_databases_postgre_sql_instances,insert,,Create or restore a PostgreSQL Managed Database -databases.yaml,/{apiVersion}/databases/postgresql/instances/{instanceId},put-databases-postgre-sql-instance,put-databases-postgre-sql-instance,put,,Databases,databases,postgresql_instances,put_databases_postgre_sql_instance,replace,,Update a PostgreSQL Managed Database -databases.yaml,/{apiVersion}/databases/postgresql/instances,get-databases-postgre-sql-instances,get-databases-postgre-sql-instances,get,,Databases,databases,postgresql_instances,get_databases_postgre_sql_instances,select,$.data,List PostgreSQL Managed Databases -databases.yaml,/{apiVersion}/databases/postgresql/instances/{instanceId},get-databases-postgre-sql-instance,get-databases-postgre-sql-instance,get,,Databases,databases,postgresql_instances,get_databases_postgre_sql_instance,select,,Get a PostgreSQL Managed Database -databases.yaml,/{apiVersion}/databases/postgresql/instances/{instanceId}/patch,post-databases-postgre-sql-instance-patch,post-databases-postgre-sql-instance-patch,post,,Databases,databases,postgresql_instances,post_databases_postgre_sql_instance_patch,update,,Patch a PostgreSQL Managed Database -databases.yaml,/{apiVersion}/databases/postgresql/instances/{instanceId}/ssl,get-databases-postgresql-instance-ssl,get-databases-postgresql-instance-ssl,get,,SSL certificates,ssl certificates,postgresql_ssl_certificates,get_databases_postgresql_instance_ssl,select,,Get a PostgreSQL Managed Database SSL certificate -databases.yaml,/{apiVersion}/databases/types,get-databases-types,get-databases-types,get,,Types,types,types,get_databases_types,select,$.data,List Managed Databases types -databases.yaml,/{apiVersion}/databases/types/{typeId},get-databases-type,get-databases-type,get,,Types,types,types,get_databases_type,select,,Get a Managed Databases type -domains.yaml,/{apiVersion}/domains/{domainId},delete-domain,delete-domain,delete,,Domains,domains,domains,delete_domain,delete,,Delete a domain -domains.yaml,/{apiVersion}/domains/import,post-import-domain,post-import-domain,post,,Domains,domains,domains,post_import_domain,exec,,Import a domain -domains.yaml,/{apiVersion}/domains/{domainId}/clone,post-clone-domain,post-clone-domain,post,,Domains,domains,domains,post_clone_domain,exec,,Clone a domain -domains.yaml,/{apiVersion}/domains,post-domain,post-domain,post,,Domains,domains,domains,post_domain,insert,,Create a domain -domains.yaml,/{apiVersion}/domains/{domainId},put-domain,put-domain,put,,Domains,domains,domains,put_domain,replace,,Update a domain -domains.yaml,/{apiVersion}/domains,get-domains,get-domains,get,,Domains,domains,domains,get_domains,select,,List domains -domains.yaml,/{apiVersion}/domains/{domainId},get-domain,get-domain,get,,Domains,domains,domains,get_domain,select,,Get a domain -domains.yaml,/{apiVersion}/domains/{domainId}/records/{recordId},delete-domain-record,delete-domain-record,delete,,Records,records,records,delete_domain_record,delete,,Delete a domain record -domains.yaml,/{apiVersion}/domains/{domainId}/records,post-domain-record,post-domain-record,post,,Records,records,records,post_domain_record,insert,,Create a domain record -domains.yaml,/{apiVersion}/domains/{domainId}/records/{recordId},put-domain-record,put-domain-record,put,,Records,records,records,put_domain_record,replace,,Update a domain record -domains.yaml,/{apiVersion}/domains/{domainId}/records,get-domain-records,get-domain-records,get,,Records,records,records,get_domain_records,select,,List domain records -domains.yaml,/{apiVersion}/domains/{domainId}/records/{recordId},get-domain-record,get-domain-record,get,,Records,records,records,get_domain_record,select,,Get a domain record -domains.yaml,/{apiVersion}/domains/{domainId}/zone-file,get-domain-zone,get-domain-zone,get,,Domain zone file,domain zone file,zone_file,get_domain_zone,select,$.zone_file,Get a domain zone file -images.yaml,/{apiVersion}/images/{imageId},delete-image,delete-image,delete,,Images,images,images,delete_image,delete,,Delete an image -images.yaml,/{apiVersion}/images/upload,post-upload-image,post-upload-image,post,,Images,images,images,post_upload_image,exec,,Upload an image -images.yaml,/{apiVersion}/images/{imageId}/regions,post-replicate-image,post-replicate-image,post,,Images,images,images,post_replicate_image,exec,,Replicate an image -images.yaml,/{apiVersion}/images,post-image,post-image,post,,Images,images,images,post_image,insert,,Create an image -images.yaml,/{apiVersion}/images/{imageId},put-image,put-image,put,,Images,images,images,put_image,replace,,Update an image -images.yaml,/{apiVersion}/images,get-images,get-images,get,,Images,images,images,get_images,select,,List images -images.yaml,/{apiVersion}/images/{imageId},get-image,get-image,get,,Images,images,images,get_image,select,,Get an image -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/backups/cancel,post-cancel-backups,post-cancel-backups,post,,Backups,backups,backups,post_cancel_backups,exec,,Cancel backups -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/backups/enable,post-enable-backups,post-enable-backups,post,,Backups,backups,backups,post_enable_backups,exec,,Enable backups -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/backups/{backupId}/restore,post-restore-backup,post-restore-backup,post,,Backups,backups,backups,post_restore_backup,exec,,Restore a backup -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/backups,post-snapshot,post-snapshot,post,,Backups,backups,backups,post_snapshot,insert,,Create a snapshot -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/backups,get-backups,get-backups,get,,Backups,backups,backups,get_backups,select,,List backups -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/backups/{backupId},get-backup,get-backup,get,,Backups,backups,backups,get_backup,select,,Get a backup -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/configs/{configId}/interfaces/{interfaceId},delete-linode-config-interface,delete-linode-config-interface,delete,,Interfaces,interfaces,config_profile_interfaces,delete_linode_config_interface,delete,,Delete a configuration profile interface -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/configs/{configId}/interfaces/order,post-linode-config-interfaces,post-linode-config-interfaces,post,,Interfaces,interfaces,config_profile_interfaces,post_linode_config_interfaces,exec,,Reorder configuration profile interfaces -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/configs/{configId}/interfaces,post-linode-config-interface,post-linode-config-interface,post,,Interfaces,interfaces,config_profile_interfaces,post_linode_config_interface,insert,,Add a configuration profile interface -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/configs/{configId}/interfaces/{interfaceId},put-linode-config-interface,put-linode-config-interface,put,,Interfaces,interfaces,config_profile_interfaces,put_linode_config_interface,replace,,Update a configuration profile interface -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/configs/{configId}/interfaces,get-linode-config-interfaces,get-linode-config-interfaces,get,,Interfaces,interfaces,config_profile_interfaces,get_linode_config_interfaces,select,,List configuration profile interfaces -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/configs/{configId}/interfaces/{interfaceId},get-linode-config-interface,get-linode-config-interface,get,,Interfaces,interfaces,config_profile_interfaces,get_linode_config_interface,select,,Get a configuration profile interface -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/configs/{configId},delete-linode-config,delete-linode-config,delete,,Configurations,configurations,config_profiles,delete_linode_config,delete,,Delete a configuration profile -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/configs,post-add-linode-config,post-add-linode-config,post,,Configurations,configurations,config_profiles,post_add_linode_config,insert,,Create a configuration profile -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/configs/{configId},put-linode-config,put-linode-config,put,,Configurations,configurations,config_profiles,put_linode_config,replace,,Update a configuration profile -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/configs,get-linode-configs,get-linode-configs,get,,Configurations,configurations,config_profiles,get_linode_configs,select,,List configuration profiles -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/configs/{configId},get-linode-config,get-linode-config,get,,Configurations,configurations,config_profiles,get_linode_config,select,,Get a configuration profile -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/disks/{diskId},delete-disk,delete-disk,delete,,Disks,disks,disks,delete_disk,delete,,Delete a disk -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/disks/{diskId}/clone,post-clone-linode-disk,post-clone-linode-disk,post,,Disks,disks,disks,post_clone_linode_disk,exec,,Clone a disk -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/disks/{diskId}/password,post-reset-disk-password,post-reset-disk-password,post,,Disks,disks,disks,post_reset_disk_password,exec,,Reset a disk root password -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/disks/{diskId}/resize,post-resize-disk,post-resize-disk,post,,Disks,disks,disks,post_resize_disk,exec,,Resize a disk -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/disks,post-add-linode-disk,post-add-linode-disk,post,,Disks,disks,disks,post_add_linode_disk,insert,,Create a disk -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/disks/{diskId},put-disk,put-disk,put,,Disks,disks,disks,put_disk,replace,,Update a disk -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/disks,get-linode-disks,get-linode-disks,get,,Disks,disks,disks,get_linode_disks,select,,List disks -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/disks/{diskId},get-linode-disk,get-linode-disk,get,,Disks,disks,disks,get_linode_disk,select,,Get a disk -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/firewalls/apply,post-apply-firewalls,post-apply-firewalls,post,,Firewalls,firewalls,firewalls,post_apply_firewalls,exec,,Apply a Linode's firewalls -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/firewalls,put-linode-firewalls,put-linode-firewalls,put,,Firewalls,firewalls,firewalls,put_linode_firewalls,replace,,Update a Linode's firewalls -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/firewalls,get-linode-firewalls,get-linode-firewalls,get,,Firewalls,firewalls,firewalls,get_linode_firewalls,select,,List a Linode's firewalls -linode.yaml,/{apiVersion}/linode/instances/{linodeId},delete-linode-instance,delete-linode-instance,delete,,Linode instances,linode instances,instances,delete_linode_instance,delete,,Delete a Linode -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/boot,post-boot-linode-instance,post-boot-linode-instance,post,,Linode instances,linode instances,instances,post_boot_linode_instance,exec,,Boot a Linode -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/clone,post-clone-linode-instance,post-clone-linode-instance,post,,Linode instances,linode instances,instances,post_clone_linode_instance,exec,,Clone a Linode -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/migrate,post-migrate-linode-instance,post-migrate-linode-instance,post,,Linode instances,linode instances,instances,post_migrate_linode_instance,exec,,Launch a DC migration/pending host migration -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/mutate,post-mutate-linode-instance,post-mutate-linode-instance,post,,Linode instances,linode instances,instances,post_mutate_linode_instance,exec,,Upgrade a Linode -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/password,post-reset-linode-password,post-reset-linode-password,post,,Linode instances,linode instances,instances,post_reset_linode_password,exec,,Reset a Linode's root password -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/reboot,post-reboot-linode-instance,post-reboot-linode-instance,post,,Linode instances,linode instances,instances,post_reboot_linode_instance,exec,,Reboot a Linode -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/rebuild,post-rebuild-linode-instance,post-rebuild-linode-instance,post,,Linode instances,linode instances,instances,post_rebuild_linode_instance,exec,,Rebuild a Linode -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/rescue,post-rescue-linode-instance,post-rescue-linode-instance,post,,Linode instances,linode instances,instances,post_rescue_linode_instance,exec,,Boot a Linode into rescue mode -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/resize,post-resize-linode-instance,post-resize-linode-instance,post,,Linode instances,linode instances,instances,post_resize_linode_instance,exec,,Resize a Linode -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/shutdown,post-shutdown-linode-instance,post-shutdown-linode-instance,post,,Linode instances,linode instances,instances,post_shutdown_linode_instance,exec,,Shut down a Linode -linode.yaml,/{apiVersion}/linode/instances,post-linode-instance,post-linode-instance,post,,Linode instances,linode instances,instances,post_linode_instance,insert,,Create a Linode -linode.yaml,/{apiVersion}/linode/instances/{linodeId},put-linode-instance,put-linode-instance,put,,Linode instances,linode instances,instances,put_linode_instance,replace,,Update a Linode -linode.yaml,/{apiVersion}/linode/instances,get-linode-instances,get-linode-instances,get,,Linode instances,linode instances,instances,get_linode_instances,select,,List Linodes -linode.yaml,/{apiVersion}/linode/instances/{linodeId},get-linode-instance,get-linode-instance,get,,Linode instances,linode instances,instances,get_linode_instance,select,,Get a Linode -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/interfaces/{interfaceId}/firewalls,get-linode-interface-firewalls,get-linode-interface-firewalls,get,,Linode interfaces,linode interfaces,interface_firewalls,get_linode_interface_firewalls,select,$.data,List Linode interface firewalls -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/interfaces/settings,put-linode-interface-settings,put-linode-interface-settings,put,,Linode interfaces,linode interfaces,interface_settings,put_linode_interface_settings,replace,,Update Linode interface settings -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/interfaces/settings,get-linode-interface-settings,get-linode-interface-settings,get,,Linode interfaces,linode interfaces,interface_settings,get_linode_interface_settings,select,,List Linode interface settings -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/interfaces/{interfaceId},delete-linode-interface,delete-linode-interface,delete,,Linode interfaces,linode interfaces,interfaces,delete_linode_interface,delete,,Delete a Linode interface -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/upgrade-interfaces,post-upgrade-linode-interfaces,post-upgrade-linode-interfaces,post,,Linode interfaces,linode interfaces,interfaces,post_upgrade_linode_interfaces,exec,,Upgrade to Linode interfaces -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/interfaces,post-linode-interface,post-linode-interface,post,,Linode interfaces,linode interfaces,interfaces,post_linode_interface,insert,,Add a Linode interface -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/interfaces/{interfaceId},put-linode-interface,put-linode-interface,put,,Linode interfaces,linode interfaces,interfaces,put_linode_interface,replace,,Update a Linode interface -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/interfaces,get-linode-interfaces,get-linode-interfaces,get,,Linode interfaces,linode interfaces,interfaces,get_linode_interfaces,select,,List Linode interfaces -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/interfaces/{interfaceId},get-linode-interface,get-linode-interface,get,,Linode interfaces,linode interfaces,interfaces,get_linode_interface,select,,Get a Linode interface -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/ips/{address},delete-linode-ip,delete-linode-ip,delete,,IP addresses,ip addresses,ip_addresses,delete_linode_ip,delete,,Delete an IPv4 address -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/ips,post-add-linode-ip,post-add-linode-ip,post,,IP addresses,ip addresses,ip_addresses,post_add_linode_ip,insert,,Allocate an IPv4 address -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/ips/{address},put-linode-ip,put-linode-ip,put,,IP addresses,ip addresses,ip_addresses,put_linode_ip,replace,,Update an IP address's RDNS for a Linode -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/ips,get-linode-ips,get-linode-ips,get,,IP addresses,ip addresses,ip_addresses,get_linode_ips,select,,Get networking information -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/ips/{address},get-linode-ip,get-linode-ip,get,,IP addresses,ip addresses,ip_addresses,get_linode_ip,select,,Get a Linode's IP address -linode.yaml,/{apiVersion}/linode/kernels,get-kernels,get-kernels,get,,Kernels,kernels,kernels,get_kernels,select,,List kernels -linode.yaml,/{apiVersion}/linode/kernels/{kernelId},get-kernel,get-kernel,get,,Kernels,kernels,kernels,get_kernel,select,,Get a kernel -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/transfer/{year}/{month},get-linode-transfer-by-year-month,get-linode-transfer-by-year-month,get,,Network transfer statistics,network transfer statistics,network_transfer_statistics,get_linode_transfer_by_year_month,select,,Get monthly network transfer stats -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/transfer,get-linode-transfer,get-linode-transfer,get,,Network transfers,network transfers,network_transfers,get_linode_transfer,select,,Get a network transfer -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/nodebalancers,get-linode-node-balancers,get-linode-node-balancers,get,,NodeBalancers,node_balancers,node_balancers,get_linode_node_balancers,select,,List Linode NodeBalancers -linode.yaml,/{apiVersion}/linode/stackscripts/{stackscriptId},delete-stack-script,delete-stack-script,delete,,StackScripts,stack_scripts,stack_scripts,delete_stack_script,delete,,Delete a StackScript -linode.yaml,/{apiVersion}/linode/stackscripts,post-add-stack-script,post-add-stack-script,post,,StackScripts,stack_scripts,stack_scripts,post_add_stack_script,insert,,Create a StackScript -linode.yaml,/{apiVersion}/linode/stackscripts/{stackscriptId},put-stack-script,put-stack-script,put,,StackScripts,stack_scripts,stack_scripts,put_stack_script,replace,,Update a StackScript -linode.yaml,/{apiVersion}/linode/stackscripts,get-stack-scripts,get-stack-scripts,get,,StackScripts,stack_scripts,stack_scripts,get_stack_scripts,select,,List StackScripts -linode.yaml,/{apiVersion}/linode/stackscripts/{stackscriptId},get-stack-script,get-stack-script,get,,StackScripts,stack_scripts,stack_scripts,get_stack_script,select,,Get a StackScript -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/stats,get-linode-stats,get-linode-stats,get,,Statistics,statistics,statistics,get_linode_stats,select,,Get Linode statistics -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/stats/{year}/{month},get-linode-stats-by-year-month,get-linode-stats-by-year-month,get,,Statistics,statistics,statistics,get_linode_stats_by_year_month,select,,Get monthly statistics -linode.yaml,/{apiVersion}/linode/types,get-linode-types,get-linode-types,get,,Linode types,linode types,types,get_linode_types,select,,List types -linode.yaml,/{apiVersion}/linode/types/{typeId},get-linode-type,get-linode-type,get,,Linode types,linode types,types,get_linode_type,select,,Get a type -linode.yaml,/{apiVersion}/linode/instances/{linodeId}/volumes,get-linode-volumes,get-linode-volumes,get,,Volumes,volumes,volumes,get_linode_volumes,select,,List a Linode's volumes -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/api-endpoints,get-lke-cluster-api-endpoints,get-lke-cluster-api-endpoints,get,,LKE API endpoints,lke api endpoints,api_endpoints,get_lke_cluster_api_endpoints,select,,List Kubernetes API endpoints -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/dashboard,get-lke-cluster-dashboard,get-lke-cluster-dashboard,get,,Cluster dashboard,cluster dashboard,cluster_dashboard,get_lke_cluster_dashboard,select,,Get a Kubernetes cluster dashboard URL -lke.yaml,/{apiVersion}/lke/clusters/{clusterId},delete-lke-cluster,delete-lke-cluster,delete,,Clusters,clusters,clusters,delete_lke_cluster,delete,,Delete a Kubernetes cluster -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/recycle,post-lke-cluster-recycle,post-lke-cluster-recycle,post,,Clusters,clusters,clusters,post_lke_cluster_recycle,exec,,Recycle cluster nodes -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/regenerate,post-lke-cluster-regenerate,post-lke-cluster-regenerate,post,,Clusters,clusters,clusters,post_lke_cluster_regenerate,exec,,Regenerate a Kubernetes cluster -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/servicetoken,delete-lke-service-token,delete-lke-service-token,delete,,Service tokens,service tokens,clusters,delete_lke_service_token,exec,,Delete a service token -lke.yaml,/{apiVersion}/lke/clusters,post-lke-cluster,post-lke-cluster,post,,Clusters,clusters,clusters,post_lke_cluster,insert,,Create a Kubernetes cluster -lke.yaml,/{apiVersion}/lke/clusters/{clusterId},put-lke-cluster,put-lke-cluster,put,,Clusters,clusters,clusters,put_lke_cluster,replace,,Update a Kubernetes cluster -lke.yaml,/{apiVersion}/lke/clusters,get-lke-clusters,get-lke-clusters,get,,Clusters,clusters,clusters,get_lke_clusters,select,,List Kubernetes clusters -lke.yaml,/{apiVersion}/lke/clusters/{clusterId},get-lke-cluster,get-lke-cluster,get,,Clusters,clusters,clusters,get_lke_cluster,select,,Get a Kubernetes cluster -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/control_plane_acl,delete-lke-cluster-acl,delete-lke-cluster-acl,delete,,LKE Control Plane ACL,lke control plane acl,control_plane_acl,delete_lke_cluster_acl,delete,,Delete the control plane access control list -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/control_plane_acl,put-lke-cluster-acl,put-lke-cluster-acl,put,,LKE Control Plane ACL,lke control plane acl,control_plane_acl,put_lke_cluster_acl,replace,,Update the control plane access control list -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/control_plane_acl,get-lke-cluster-acl,get-lke-cluster-acl,get,,LKE Control Plane ACL,lke control plane acl,control_plane_acl,get_lke_cluster_acl,select,$.acl,Get the control plane access control list -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/kubeconfig,delete-lke-cluster-kubeconfig,delete-lke-cluster-kubeconfig,delete,,Kubeconfigs,kubeconfigs,kubeconfigs,delete_lke_cluster_kubeconfig,delete,,Delete a Kubeconfig -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/kubeconfig,get-lke-cluster-kubeconfig,get-lke-cluster-kubeconfig,get,,Kubeconfigs,kubeconfigs,kubeconfigs,get_lke_cluster_kubeconfig,select,,Get a Kubeconfig -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/pools/{poolId},delete-lke-node-pool,delete-lke-node-pool,delete,,Node pools,node pools,node_pools,delete_lke_node_pool,delete,,Delete a node pool -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/pools/{poolId}/recycle,post-lke-cluster-pool-recycle,post-lke-cluster-pool-recycle,post,,Node pools,node pools,node_pools,post_lke_cluster_pool_recycle,exec,,Recycle a node pool -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/pools,post-lke-cluster-pools,post-lke-cluster-pools,post,,Node pools,node pools,node_pools,post_lke_cluster_pools,insert,,Create a node pool -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/pools/{poolId},put-lke-node-pool,put-lke-node-pool,put,,Node pools,node pools,node_pools,put_lke_node_pool,replace,,Update a node pool -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/pools,get-lke-cluster-pools,get-lke-cluster-pools,get,,Node pools,node pools,node_pools,get_lke_cluster_pools,select,,List node pools -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/pools/{poolId},get-lke-node-pool,get-lke-node-pool,get,,Node pools,node pools,node_pools,get_lke_node_pool,select,,Get a node pool -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/nodes/{nodeId},delete-lke-cluster-node,delete-lke-cluster-node,delete,,Nodes,nodes,nodes,delete_lke_cluster_node,delete,,Delete a node -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/nodes/{nodeId}/recycle,post-lke-cluster-node-recycle,post-lke-cluster-node-recycle,post,,Nodes,nodes,nodes,post_lke_cluster_node_recycle,exec,,Recycle a node -lke.yaml,/{apiVersion}/lke/clusters/{clusterId}/nodes/{nodeId},get-lke-cluster-node,get-lke-cluster-node,get,,Nodes,nodes,nodes,get_lke_cluster_node,select,,Get a node -lke.yaml,/{apiVersion}/lke/versions,get-lke-versions,get-lke-versions,get,,LKE versions,lke versions,non_enterprise_versions,get_lke_versions,select,,List LKE Kubernetes versions (non-enterprise) -lke.yaml,/{apiVersion}/lke/versions/{version},get-lke-version,get-lke-version,get,,LKE versions,lke versions,non_enterprise_versions,get_lke_version,select,,Get an LKE Kubernetes version (non-enterprise) -lke.yaml,/{apiVersion}/lke/types,get-lke-types,get-lke-types,get,,LKE types,lke types,types,get_lke_types,select,,List Kubernetes types -lke.yaml,/{apiVersion}/lke/tiers/{tier}/versions,get-lke-tiers-versions,get-lke-tiers-versions,get,,LKE versions,lke versions,versions,get_lke_tiers_versions,select,,List LKE Kubernetes versions (any tier) -lke.yaml,/{apiVersion}/lke/tiers/{tier}/versions/{version},get-lke-tiers-version,get-lke-tiers-version,get,,LKE versions,lke versions,versions,get_lke_tiers_version,select,,Get an LKE Kubernetes version (any tier) -longview.yaml,/{apiVersion}/longview/clients/{clientId},delete-longview-client,delete-longview-client,delete,,Clients,clients,clients,delete_longview_client,delete,,Delete a Longview client -longview.yaml,/{apiVersion}/longview/clients,post-longview-client,post-longview-client,post,,Clients,clients,clients,post_longview_client,insert,,Create a Longview client -longview.yaml,/{apiVersion}/longview/clients/{clientId},put-longview-client,put-longview-client,put,,Clients,clients,clients,put_longview_client,replace,,Update a Longview client -longview.yaml,/{apiVersion}/longview/clients,get-longview-clients,get-longview-clients,get,,Clients,clients,clients,get_longview_clients,select,,List Longview clients -longview.yaml,/{apiVersion}/longview/clients/{clientId},get-longview-client,get-longview-client,get,,Clients,clients,clients,get_longview_client,select,,Get a Longview client -longview.yaml,/{apiVersion}/longview/plan,put-longview-plan,put-longview-plan,put,,Plans,plans,plans,put_longview_plan,replace,,Update a Longview plan -longview.yaml,/{apiVersion}/longview/plan,get-longview-plan,get-longview-plan,get,,Plans,plans,plans,get_longview_plan,select,,Get a Longview plan -longview.yaml,/{apiVersion}/longview/subscriptions,get-longview-subscriptions,get-longview-subscriptions,get,,Subscriptions,subscriptions,subscriptions,get_longview_subscriptions,select,,List Longview subscriptions -longview.yaml,/{apiVersion}/longview/subscriptions/{subscriptionId},get-longview-subscription,get-longview-subscription,get,,Subscriptions,subscriptions,subscriptions,get_longview_subscription,select,,Get a Longview subscription -longview.yaml,/{apiVersion}/longview/types,get-longview-types,get-longview-types,get,,Longview types,longview types,types,get_longview_types,select,,List Longview types -managed.yaml,/{apiVersion}/managed/contacts/{contactId},delete-managed-contact,delete-managed-contact,delete,,Contacts,contacts,contacts,delete_managed_contact,delete,,Delete a managed contact -managed.yaml,/{apiVersion}/managed/contacts,post-managed-contact,post-managed-contact,post,,Contacts,contacts,contacts,post_managed_contact,insert,,Create a managed contact -managed.yaml,/{apiVersion}/managed/contacts/{contactId},put-managed-contact,put-managed-contact,put,,Contacts,contacts,contacts,put_managed_contact,replace,,Update a managed contact -managed.yaml,/{apiVersion}/managed/contacts,get-managed-contacts,get-managed-contacts,get,,Contacts,contacts,contacts,get_managed_contacts,select,,List managed contacts -managed.yaml,/{apiVersion}/managed/contacts/{contactId},get-managed-contact,get-managed-contact,get,,Contacts,contacts,contacts,get_managed_contact,select,,Get a managed contact -managed.yaml,/{apiVersion}/managed/credentials/{credentialId}/revoke,post-managed-credential-revoke,post-managed-credential-revoke,post,,Credentials,credentials,credentials,post_managed_credential_revoke,exec,,Delete a managed credential -managed.yaml,/{apiVersion}/managed/credentials/{credentialId}/update,post-managed-credential-username-password,post-managed-credential-username-password,post,,Credentials,credentials,credentials,post_managed_credential_username_password,exec,,Update a managed credential's username and password -managed.yaml,/{apiVersion}/managed/credentials,post-managed-credential,post-managed-credential,post,,Credentials,credentials,credentials,post_managed_credential,insert,,Create a managed credential -managed.yaml,/{apiVersion}/managed/credentials/{credentialId},put-managed-credential,put-managed-credential,put,,Credentials,credentials,credentials,put_managed_credential,replace,,Update a managed credential -managed.yaml,/{apiVersion}/managed/credentials,get-managed-credentials,get-managed-credentials,get,,Credentials,credentials,credentials,get_managed_credentials,select,,List managed credentials -managed.yaml,/{apiVersion}/managed/credentials/{credentialId},get-managed-credential,get-managed-credential,get,,Credentials,credentials,credentials,get_managed_credential,select,,Get a managed credential -managed.yaml,/{apiVersion}/managed/issues,get-managed-issues,get-managed-issues,get,,Issues,issues,issues,get_managed_issues,select,,List managed issues -managed.yaml,/{apiVersion}/managed/issues/{issueId},get-managed-issue,get-managed-issue,get,,Issues,issues,issues,get_managed_issue,select,,Get a managed issue -managed.yaml,/{apiVersion}/managed/linode-settings,get-managed-linode-settings,get-managed-linode-settings,get,,Linode settings,linode settings,linode_settings,get_managed_linode_settings,select,,List managed Linode settings -managed.yaml,/{apiVersion}/managed/credentials/sshkey,get-managed-ssh-key,get-managed-ssh-key,get,,Managed SSH keys,managed ssh keys,managed_ssh_keys,get_managed_ssh_key,select,,Get a managed SSH key -managed.yaml,/{apiVersion}/managed/services/{serviceId},delete-managed-service,delete-managed-service,delete,,Services,services,services,delete_managed_service,delete,,Delete a managed service -managed.yaml,/{apiVersion}/managed/services/{serviceId}/disable,post-disable-managed-service,post-disable-managed-service,post,,Services,services,services,post_disable_managed_service,exec,,Disable a managed service -managed.yaml,/{apiVersion}/managed/services/{serviceId}/enable,post-enable-managed-service,post-enable-managed-service,post,,Services,services,services,post_enable_managed_service,exec,,Enable a managed service -managed.yaml,/{apiVersion}/managed/services,post-managed-service,post-managed-service,post,,Services,services,services,post_managed_service,insert,,Create a managed service -managed.yaml,/{apiVersion}/managed/services/{serviceId},put-managed-service,put-managed-service,put,,Services,services,services,put_managed_service,replace,,Update a managed service -managed.yaml,/{apiVersion}/managed/services,get-managed-services,get-managed-services,get,,Services,services,services,get_managed_services,select,,List managed services -managed.yaml,/{apiVersion}/managed/services/{serviceId},get-managed-service,get-managed-service,get,,Services,services,services,get_managed_service,select,,Get a managed service -managed.yaml,/{apiVersion}/managed/linode-settings/{linodeId},put-managed-linode-setting,put-managed-linode-setting,put,,Managed settings,managed settings,settings,put_managed_linode_setting,replace,,Update a Linode's managed settings -managed.yaml,/{apiVersion}/managed/linode-settings/{linodeId},get-managed-linode-setting,get-managed-linode-setting,get,,Managed settings,managed settings,settings,get_managed_linode_setting,select,,Get a Linode's managed settings -managed.yaml,/{apiVersion}/managed/stats,get-managed-stats,get-managed-stats,get,,Statistics,statistics,statistics,get_managed_stats,select,$.data,List managed stats -monitor.yaml,/{apiVersion}/monitor/alert-channels,get-alert-channels,get-alert-channels,get,,Alerts,alerts,alert_channels,get_alert_channels,select,,List alert channels -monitor.yaml,/{apiVersion}/monitor/services/{service_type}/alert-definitions/{alert_id},delete-alert-definition,delete-alert-definition,delete,,Alerts,alerts,alert_definitions,delete_alert_definition,delete,,Delete an alert definition -monitor.yaml,/{apiVersion}/monitor/services/{service_type}/alert-definitions,post-alert-definition-for-service-type,post-alert-definition-for-service-type,post,,Alerts,alerts,alert_definitions,post_alert_definition_for_service_type,insert,,Create an alert definition -monitor.yaml,/{apiVersion}/monitor/services/{service_type}/alert-definitions/{alert_id},put-alert-definition,put-alert-definition,put,,Alerts,alerts,alert_definitions,put_alert_definition,replace,,Update an alert definition -monitor.yaml,/{apiVersion}/monitor/alert-definitions,get-alert-definitions,get-alert-definitions,get,,Alerts,alerts,alert_definitions,get_alert_definitions,select,,List alert definitions -monitor.yaml,/{apiVersion}/monitor/services/{service_type}/alert-definitions,get-alert-definitions-for-service-type,get-alert-definitions-for-service-type,get,,Alerts,alerts,alert_definitions,get_alert_definitions_for_service_type,select,,List alert definitions for a service type -monitor.yaml,/{apiVersion}/monitor/services/{service_type}/alert-definitions/{alert_id},get-alert-definition,get-alert-definition,get,,Alerts,alerts,alert_definitions,get_alert_definition,select,,Get an alert definition -monitor.yaml,/{apiVersion}/monitor/dashboards,get-dashboards-all,get-dashboards-all,get,,Metrics,metrics,dashboards,get_dashboards_all,select,$.data,List dashboards -monitor.yaml,/{apiVersion}/monitor/dashboards/{dashboard_id},get-dashboards-by-id,get-dashboards-by-id,get,,Metrics,metrics,dashboards,get_dashboards_by_id,select,,Get a dashboard -monitor.yaml,/{apiVersion}/monitor/services/{service_type}/dashboards,get-dashboards,get-dashboards,get,,Metrics,metrics,dashboards,get_dashboards,select,,List dashboards for a service type -monitor.yaml,/{apiVersion}/monitor/services/{service_type}/metrics,post-read-metric,post-read-metric,post,,Metrics,metrics,metrics,post_read_metric,exec,,Get an entity's metrics -monitor.yaml,/{apiVersion}/monitor/services/{service_type}/token,post-get-token,post-get-token,post,,Metrics,metrics,metrics,post_get_token,exec,,Create a token for a service type -monitor.yaml,/{apiVersion}/monitor/services/{service_type}/metric-definitions,get-monitor-information,get-monitor-information,get,,Metrics,metrics,metrics,get_monitor_information,select,,List metrics for a service type -monitor.yaml,/{apiVersion}/monitor/services,get-monitor-services,get-monitor-services,get,,Metrics,metrics,monitor_services,get_monitor_services,select,,List supported service types -monitor.yaml,/{apiVersion}/monitor/services/{service_type},get-monitor-services-for-service-type,get-monitor-services-for-service-type,get,,Metrics,metrics,monitor_services,get_monitor_services_for_service_type,select,,Get details for a supported service type -networking.yaml,/{apiVersion}/network-transfer/prices,get-network-transfer-prices,get-network-transfer-prices,get,,Network transfer prices,network transfer prices,network_transfer_prices,get_network_transfer_prices,select,,List network transfer prices -networking.yaml,/{apiVersion}/networking/firewalls/{firewallId}/devices/{deviceId},delete-firewall-device,delete-firewall-device,delete,,Devices,devices,firewall_devices,delete_firewall_device,delete,,Delete a firewall device -networking.yaml,/{apiVersion}/networking/firewalls/{firewallId}/devices,post-firewall-device,post-firewall-device,post,,Devices,devices,firewall_devices,post_firewall_device,insert,,Create a firewall device -networking.yaml,/{apiVersion}/networking/firewalls/{firewallId}/devices,get-firewall-devices,get-firewall-devices,get,,Devices,devices,firewall_devices,get_firewall_devices,select,,List firewall devices -networking.yaml,/{apiVersion}/networking/firewalls/{firewallId}/devices/{deviceId},get-firewall-device,get-firewall-device,get,,Devices,devices,firewall_devices,get_firewall_device,select,,Get a firewall device -networking.yaml,/{apiVersion}/networking/firewalls/{firewallId}/history,get-firewall-rule-versions,get-firewall-rule-versions,get,,Firewalls,firewalls,firewall_rule_versions,get_firewall_rule_versions,select,,List firewall rule versions -networking.yaml,/{apiVersion}/networking/firewalls/{firewallId}/history/rules/{version},get-firewall-rule-version,get-firewall-rule-version,get,,Firewalls,firewalls,firewall_rule_versions,get_firewall_rule_version,select,,Get a firewall rule version -networking.yaml,/{apiVersion}/networking/firewalls/{firewallId}/rules,put-firewall-rules,put-firewall-rules,put,,Firewalls,firewalls,firewall_rules,put_firewall_rules,replace,,Update firewall rules -networking.yaml,/{apiVersion}/networking/firewalls/{firewallId}/rules,get-firewall-rules,get-firewall-rules,get,,Firewalls,firewalls,firewall_rules,get_firewall_rules,select,,List firewall rules -networking.yaml,/{apiVersion}/networking/firewalls/settings,put-firewall-settings,put-firewall-settings,put,,Firewall settings,firewall settings,firewall_settings,put_firewall_settings,replace,,Update default firewalls -networking.yaml,/{apiVersion}/networking/firewalls/settings,get-firewall-settings,get-firewall-settings,get,,Firewall settings,firewall settings,firewall_settings,get_firewall_settings,select,$.default_firewall_ids,List default firewalls -networking.yaml,/{apiVersion}/networking/firewalls/{firewallId},delete-firewall,delete-firewall,delete,,Firewalls,firewalls,firewalls,delete_firewall,delete,,Delete a firewall -networking.yaml,/{apiVersion}/networking/firewalls,post-firewalls,post-firewalls,post,,Firewalls,firewalls,firewalls,post_firewalls,insert,,Create a firewall -networking.yaml,/{apiVersion}/networking/firewalls/{firewallId},put-firewall,put-firewall,put,,Firewalls,firewalls,firewalls,put_firewall,replace,,Update a firewall -networking.yaml,/{apiVersion}/networking/firewalls,get-firewalls,get-firewalls,get,,Firewalls,firewalls,firewalls,get_firewalls,select,,List firewalls -networking.yaml,/{apiVersion}/networking/firewalls/{firewallId},get-firewall,get-firewall,get,,Firewalls,firewalls,firewalls,get_firewall,select,,Get a firewall -networking.yaml,/{apiVersion}/networking/ips,post-allocate-ip,post-allocate-ip,post,,IP addresses,ip addresses,ip_addresses,post_allocate_ip,exec,,Allocate an IP address -networking.yaml,/{apiVersion}/networking/ips/assign,post-assign-ips,post-assign-ips,post,,IP addresses,ip addresses,ip_addresses,post_assign_ips,exec,,Assign IP addresses -networking.yaml,/{apiVersion}/networking/ips/share,post-share-ips,post-share-ips,post,,IP addresses,ip addresses,ip_addresses,post_share_ips,exec,,Share IP addresses -networking.yaml,/{apiVersion}/networking/ips/{address},put-ip,put-ip,put,,IP addresses,ip addresses,ip_addresses,put_ip,replace,,Update an IP address's RDNS -networking.yaml,/{apiVersion}/networking/ips,get-ips,get-ips,get,,IP addresses,ip addresses,ip_addresses,get_ips,select,$.data,List IP addresses -networking.yaml,/{apiVersion}/networking/ips/{address},get-ip,get-ip,get,,IP addresses,ip addresses,ip_addresses,get_ip,select,,Get an IP address -networking.yaml,/{apiVersion}/networking/ipv4/assign,post-assign-ipv4s,post-assign-ipv4s,post,,IPv4 addresses,ipv4 addresses,ipv4_addresses,post_assign_ipv4s,insert,,Assign IPv4s to Linodes -networking.yaml,/{apiVersion}/networking/ipv4/share,post-share-ipv4s,post-share-ipv4s,post,,IPv4 addresses,ipv4 addresses,ipv4_addresses,post_share_ipv4s,insert,,Configure IPv4 sharing -networking.yaml,/{apiVersion}/networking/ipv6/pools,get-ipv6-pools,get-ipv6-pools,get,,IPv6 pools,ipv6 pools,ipv6_pools,get_ipv6_pools,select,,List IPv6 pools -networking.yaml,/{apiVersion}/networking/ipv6/ranges/{range},delete-ipv6-range,delete-ipv6-range,delete,,IPv6 ranges,ipv6 ranges,ipv6_ranges,delete_ipv6_range,delete,,Delete an IPv6 range -networking.yaml,/{apiVersion}/networking/ipv6/ranges,post-ipv6-range,post-ipv6-range,post,,IPv6 ranges,ipv6 ranges,ipv6_ranges,post_ipv6_range,insert,,Create an IPv6 range -networking.yaml,/{apiVersion}/networking/ipv6/ranges,get-ipv6-ranges,get-ipv6-ranges,get,,IPv6 ranges,ipv6 ranges,ipv6_ranges,get_ipv6_ranges,select,,List IPv6 ranges -networking.yaml,/{apiVersion}/networking/ipv6/ranges/{range},get-ipv6-range,get-ipv6-range,get,,IPv6 ranges,ipv6 ranges,ipv6_ranges,get_ipv6_range,select,,Get an IPv6 range -networking.yaml,/{apiVersion}/networking/firewalls/templates,get-firewall-templates,get-firewall-templates,get,,Templates,templates,templates,get_firewall_templates,select,,List firewall templates -networking.yaml,/{apiVersion}/networking/firewalls/templates/{slug},get-firewall-template,get-firewall-template,get,,Templates,templates,templates,get_firewall_template,select,,Get a firewall template -networking.yaml,/{apiVersion}/networking/vlans/{regionId}/{label},delete-vlan,delete-vlan,delete,,VLANs,vlans,vlans,delete_vlan,delete,,Delete a VLAN -networking.yaml,/{apiVersion}/networking/vlans,get-vlans,get-vlans,get,,VLANs,vlans,vlans,get_vlans,select,,List VLANs -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId},delete-node-balancer-config,delete-node-balancer-config,delete,,Configurations,configurations,configurations,delete_node_balancer_config,delete,,Delete a config -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/configs,post-node-balancer-config,post-node-balancer-config,post,,Configurations,configurations,configurations,post_node_balancer_config,insert,,Create a config -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/rebuild,post-rebuild-node-balancer-config,post-rebuild-node-balancer-config,post,,Configurations,configurations,configurations,post_rebuild_node_balancer_config,exec,,Rebuild a config -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId},put-node-balancer-config,put-node-balancer-config,put,,Configurations,configurations,configurations,put_node_balancer_config,replace,,Update a config -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/configs,get-node-balancer-configs,get-node-balancer-configs,get,,Configurations,configurations,configurations,get_node_balancer_configs,select,,List configs -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId},get-node-balancer-config,get-node-balancer-config,get,,Configurations,configurations,configurations,get_node_balancer_config,select,,Get a config -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/firewalls,put-node-balancer-firewalls,put-node-balancer-firewalls,put,,Firewalls,firewalls,firewalls,put_node_balancer_firewalls,replace,,Update a NodeBalancer's firewalls -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/firewalls,get-node-balancer-firewalls,get-node-balancer-firewalls,get,,Firewalls,firewalls,firewalls,get_node_balancer_firewalls,select,$.data,List NodeBalancer firewalls -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId},delete-node-balancer,delete-node-balancer,delete,,NodeBalancers,node_balancers,node_balancers,delete_node_balancer,delete,,Delete a NodeBalancer -nodebalancers.yaml,/{apiVersion}/nodebalancers,post-node-balancer,post-node-balancer,post,,NodeBalancers,node_balancers,node_balancers,post_node_balancer,insert,,Create a NodeBalancer -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId},put-node-balancer,put-node-balancer,put,,NodeBalancers,node_balancers,node_balancers,put_node_balancer,replace,,Update a NodeBalancer -nodebalancers.yaml,/{apiVersion}/nodebalancers,get-node-balancers,get-node-balancers,get,,NodeBalancers,node_balancers,node_balancers,get_node_balancers,select,,List NodeBalancers -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId},get-node-balancer,get-node-balancer,get,,NodeBalancers,node_balancers,node_balancers,get_node_balancer,select,,Get a NodeBalancer -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId},delete-node-balancer-config-node,delete-node-balancer-config-node,delete,,Nodes,nodes,nodes,delete_node_balancer_config_node,delete,,Delete a NodeBalancer's node -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes,post-node-balancer-node,post-node-balancer-node,post,,Nodes,nodes,nodes,post_node_balancer_node,insert,,Create a node -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId},put-node-balancer-node,put-node-balancer-node,put,,Nodes,nodes,nodes,put_node_balancer_node,replace,,Update a node -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes,get-node-balancer-config-nodes,get-node-balancer-config-nodes,get,,Nodes,nodes,nodes,get_node_balancer_config_nodes,select,,List nodes -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId},get-node-balancer-node,get-node-balancer-node,get,,Nodes,nodes,nodes,get_node_balancer_node,select,,Get a NodeBalancer's node -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/stats,get-node-balancer-stats,get-node-balancer-stats,get,,Statistics,statistics,statistics,get_node_balancer_stats,select,,Get NodeBalancer statistics -nodebalancers.yaml,/{apiVersion}/nodebalancers/types,get-node-balancer-types,get-node-balancer-types,get,,NodeBalancer types,node_balancer types,types,get_node_balancer_types,select,,List NodeBalancer types -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/vpcs,get-node-balancer-vpcs,get-node-balancer-vpcs,get,,VPCs,vpcs,vpc_configs,get_node_balancer_vpcs,select,,List VPC configurations -nodebalancers.yaml,/{apiVersion}/nodebalancers/{nodeBalancerId}/vpcs/{nodeBalancerVpcConfigId},get-node-balancer-vpc-config,get-node-balancer-vpc-config,get,,VPCs,vpcs,vpc_configs,get_node_balancer_vpc_config,select,,Get a VPC configuration -object_storage.yaml,/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/object-acl,put-object-storage-bucket-acl,put-object-storage-bucket-acl,put,,ACL configurations,acl configurations,acl_configurations,put_object_storage_bucket_acl,replace,,Update an object's ACL configuration -object_storage.yaml,/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/object-acl,get-object-storage-bucket-acl,get-object-storage-bucket-acl,get,,ACL configurations,acl configurations,acl_configurations,get_object_storage_bucket_acl,select,,Get an Object Storage object ACL configuration -object_storage.yaml,/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/access,post-object-storage-bucket-access,post-object-storage-bucket-access,post,,Bucket access,bucket access,bucket_access,post_object_storage_bucket_access,insert,,Allow access to an Object Storage bucket -object_storage.yaml,/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/access,put-storage-bucket-access,put-storage-bucket-access,put,,Bucket access,bucket access,bucket_access,put_storage_bucket_access,replace,,Update access to an Object Storage bucket -object_storage.yaml,/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/access,get-object-storage-bucket-access,get-object-storage-bucket-access,get,,Bucket access,bucket access,bucket_access,get_object_storage_bucket_access,select,,Get Object Storage bucket access -object_storage.yaml,/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/object-list,get-object-storage-bucket-content,get-object-storage-bucket-content,get,,Bucket contents,bucket contents,bucket_contents,get_object_storage_bucket_content,select,,List Object Storage bucket contents -object_storage.yaml,/{apiVersion}/object-storage/buckets/{regionId}/{bucket},delete-object-storage-bucket,delete-object-storage-bucket,delete,,Buckets,buckets,buckets,delete_object_storage_bucket,delete,,Remove an Object Storage bucket -object_storage.yaml,/{apiVersion}/object-storage/buckets,post-object-storage-bucket,post-object-storage-bucket,post,,Buckets,buckets,buckets,post_object_storage_bucket,insert,,Create an Object Storage bucket -object_storage.yaml,/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/object-url,post-object-storage-object-url,post-object-storage-object-url,post,,Buckets,buckets,buckets,post_object_storage_object_url,exec,,Create a URL for an object -object_storage.yaml,/{apiVersion}/object-storage/buckets,get-object-storage-buckets,get-object-storage-buckets,get,,Buckets,buckets,buckets,get_object_storage_buckets,select,,List Object Storage buckets -object_storage.yaml,/{apiVersion}/object-storage/buckets/{regionId},get-object-storage-bucketin-cluster,get-object-storage-bucketin-cluster,get,,Buckets,buckets,buckets,get_object_storage_bucketin_cluster,select,,List Object Storage buckets per region -object_storage.yaml,/{apiVersion}/object-storage/buckets/{regionId}/{bucket},get-object-storage-bucket,get-object-storage-bucket,get,,Buckets,buckets,buckets,get_object_storage_bucket,select,,Get an Object Storage bucket -object_storage.yaml,/{apiVersion}/object-storage/clusters,get-object-storage-clusters,get-object-storage-clusters,get,,Clusters,clusters,clusters,get_object_storage_clusters,select,,List clusters -object_storage.yaml,/{apiVersion}/object-storage/clusters/{clusterId},get-object-storage-cluster,get-object-storage-cluster,get,,Clusters,clusters,clusters,get_object_storage_cluster,select,,Get a cluster -object_storage.yaml,/{apiVersion}/object-storage/endpoints,get-object-storage-endpoints,get-object-storage-endpoints,get,,Endpoints,endpoints,endpoints,get_object_storage_endpoints,select,$.data,List Object Storage endpoints -object_storage.yaml,/{apiVersion}/object-storage/keys/{keyId},delete-object-storage-key,delete-object-storage-key,delete,,Keys,keys,keys,delete_object_storage_key,delete,,Revoke an Object Storage key -object_storage.yaml,/{apiVersion}/object-storage/keys,post-object-storage-keys,post-object-storage-keys,post,,Keys,keys,keys,post_object_storage_keys,insert,,Create an Object Storage key -object_storage.yaml,/{apiVersion}/object-storage/keys/{keyId},put-object-storage-key,put-object-storage-key,put,,Keys,keys,keys,put_object_storage_key,replace,,Update an Object Storage key -object_storage.yaml,/{apiVersion}/object-storage/keys,get-object-storage-keys,get-object-storage-keys,get,,Keys,keys,keys,get_object_storage_keys,select,,List Object Storage keys -object_storage.yaml,/{apiVersion}/object-storage/keys/{keyId},get-object-storage-key,get-object-storage-key,get,,Keys,keys,keys,get_object_storage_key,select,,Get an Object Storage key -object_storage.yaml,/{apiVersion}/object-storage/cancel,post-cancel-object-storage,post-cancel-object-storage,post,,Object Storage,object storage,object_storage,post_cancel_object_storage,exec,,Cancel Object Storage -object_storage.yaml,/{apiVersion}/object-storage/transfer,get-object-storage-transfer,get-object-storage-transfer,get,,Object Storage,object storage,object_storage,get_object_storage_transfer,select,,Get Object Storage transfer data -object_storage.yaml,/{apiVersion}/object-storage/quotas,get-object-storage-quotas,get-object-storage-quotas,get,,Object Storage quotas,object storage quotas,quotas,get_object_storage_quotas,select,$.data,List Object Storage quotas -object_storage.yaml,/{apiVersion}/object-storage/quotas/{object_storage-quotaId},get-object-storage-quota,get-object-storage-quota,get,,Object Storage quotas,object storage quotas,quotas,get_object_storage_quota,select,,Get an Object Storage quota -object_storage.yaml,/{apiVersion}/object-storage/quotas/{object_storage-quotaId}/usage,get-object-storage-quota-usage,get-object-storage-quota-usage,get,,Object Storage quotas,object storage quotas,quota_usage,get_object_storage_quota_usage,select,,Get Object Storage quota usage data -object_storage.yaml,/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/ssl,delete-object-storage-ssl,delete-object-storage-ssl,delete,,TLS/SSL certificates,tls/ssl certificates,ssl_certificates,delete_object_storage_ssl,delete,,Delete an Object Storage TLS/SSL certificate -object_storage.yaml,/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/ssl,post-object-storage-ssl,post-object-storage-ssl,post,,TLS/SSL certificates,tls/ssl certificates,ssl_certificates,post_object_storage_ssl,insert,,Upload an Object Storage TLS/SSL certificate -object_storage.yaml,/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/ssl,get-object-storage-ssl,get-object-storage-ssl,get,,TLS/SSL certificates,tls/ssl certificates,ssl_certificates,get_object_storage_ssl,select,,Get an Object Storage TLS/SSL certificate -object_storage.yaml,/{apiVersion}/object-storage/types,get-object-storage-types,get-object-storage-types,get,,Object Storage types,object storage types,types,get_object_storage_types,select,,List Object Storage types -placement.yaml,/{apiVersion}/placement/groups/{groupId},delete-placement-group,delete-placement-group,delete,,Placement groups,placement groups,placement_groups,delete_placement_group,delete,,Delete a placement group -placement.yaml,/{apiVersion}/placement/groups,post-placement-group,post-placement-group,post,,Placement groups,placement groups,placement_groups,post_placement_group,insert,,Create placement group -placement.yaml,/{apiVersion}/placement/groups/{groupId}/assign,post-group-add-linode,post-group-add-linode,post,,Placement groups,placement groups,placement_groups,post_group_add_linode,exec,,Assign a placement group -placement.yaml,/{apiVersion}/placement/groups/{groupId}/unassign,post-group-unassign,post-group-unassign,post,,Placement groups,placement groups,placement_groups,post_group_unassign,exec,,Unassign a placement group -placement.yaml,/{apiVersion}/placement/groups/{groupId},put-placement-group,put-placement-group,put,,Placement groups,placement groups,placement_groups,put_placement_group,replace,,Update a placement group -placement.yaml,/{apiVersion}/placement/groups,get-placement-groups,get-placement-groups,get,,Placement groups,placement groups,placement_groups,get_placement_groups,select,,List placement groups -placement.yaml,/{apiVersion}/placement/groups/{groupId},get-placement-group,get-placement-group,get,,Placement groups,placement groups,placement_groups,get_placement_group,select,,Get a placement group -profile.yaml,/{apiVersion}/profile/apps/{appId},delete-profile-app,delete-profile-app,delete,,Apps,apps,apps,delete_profile_app,delete,,Revoke app access -profile.yaml,/{apiVersion}/profile/apps,get-profile-apps,get-profile-apps,get,,Apps,apps,apps,get_profile_apps,select,,List authorized apps -profile.yaml,/{apiVersion}/profile/apps/{appId},get-profile-app,get-profile-app,get,,Apps,apps,apps,get_profile_app,select,,Get an authorized app -profile.yaml,/{apiVersion}/profile/devices/{deviceId},delete-trusted-device,delete-trusted-device,delete,,Devices,devices,trusted_devices,delete_trusted_device,delete,,Revoke a trusted device -profile.yaml,/{apiVersion}/profile/devices,get-devices,get-devices,get,,Devices,devices,trusted_devices,get_devices,select,,List trusted devices -profile.yaml,/{apiVersion}/profile/devices/{deviceId},get-trusted-device,get-trusted-device,get,,Devices,devices,trusted_devices,get_trusted_device,select,,Get a trusted device -profile.yaml,/{apiVersion}/profile/grants,get-profile-grants,get-profile-grants,get,,Grants,grants,grants,get_profile_grants,select,,List grants -profile.yaml,/{apiVersion}/profile/logins,get-profile-logins,get-profile-logins,get,,Logins,logins,logins,get_profile_logins,select,,List logins -profile.yaml,/{apiVersion}/profile/logins/{loginId},get-profile-login,get-profile-login,get,,Logins,logins,logins,get_profile_login,select,,Get a profile's login -profile.yaml,/{apiVersion}/profile/tokens/{tokenId},delete-personal-access-token,delete-personal-access-token,delete,,Personal access tokens,personal access tokens,personal_access_tokens,delete_personal_access_token,delete,,Revoke a personal access token -profile.yaml,/{apiVersion}/profile/tokens,post-personal-access-token,post-personal-access-token,post,,Personal access tokens,personal access tokens,personal_access_tokens,post_personal_access_token,insert,,Create a personal access token -profile.yaml,/{apiVersion}/profile/tokens/{tokenId},put-personal-access-token,put-personal-access-token,put,,Personal access tokens,personal access tokens,personal_access_tokens,put_personal_access_token,replace,,Update a personal access token -profile.yaml,/{apiVersion}/profile/tokens,get-personal-access-tokens,get-personal-access-tokens,get,,Personal access tokens,personal access tokens,personal_access_tokens,get_personal_access_tokens,select,,List personal access tokens -profile.yaml,/{apiVersion}/profile/tokens/{tokenId},get-personal-access-token,get-personal-access-token,get,,Personal access tokens,personal access tokens,personal_access_tokens,get_personal_access_token,select,,Get a personal access token -profile.yaml,/{apiVersion}/profile/phone-number,delete-profile-phone-number,delete-profile-phone-number,delete,,Phone number,phone number,phone_number,delete_profile_phone_number,delete,,Delete a phone number -profile.yaml,/{apiVersion}/profile/phone-number,post-profile-phone-number,post-profile-phone-number,post,,Phone number,phone number,phone_number,post_profile_phone_number,exec,,Send a phone number verification code -profile.yaml,/{apiVersion}/profile/phone-number/verify,post-profile-phone-number-verify,post-profile-phone-number-verify,post,,Phone number,phone number,phone_number,post_profile_phone_number_verify,exec,,Verify a phone number -profile.yaml,/{apiVersion}/profile/preferences,put-user-preferences,put-user-preferences,put,,Preferences,preferences,profile,put_user_preferences,exec,,Update a user's preferences -profile.yaml,/{apiVersion}/profile/preferences,get-user-preferences,get-user-preferences,get,,Preferences,preferences,profile,get_user_preferences,exec,,Get user preferences -profile.yaml,/{apiVersion}/profile,put-profile,put-profile,put,,Profile,profile,profile,put_profile,replace,,Update a profile -profile.yaml,/{apiVersion}/profile,get-profile,get-profile,get,,Profile,profile,profile,get_profile,select,,Get a profile -profile.yaml,/{apiVersion}/profile/security-questions,post-security-questions,post-security-questions,post,,Security questions,security questions,security_questions,post_security_questions,exec,,Answer security questions -profile.yaml,/{apiVersion}/profile/security-questions,get-security-questions,get-security-questions,get,,Security questions,security questions,security_questions,get_security_questions,select,$.security_questions,List security questions -profile.yaml,/{apiVersion}/profile/sshkeys/{sshKeyId},delete-ssh-key,delete-ssh-key,delete,,SSH keys,ssh keys,ssh_keys,delete_ssh_key,delete,,Delete an SSH key -profile.yaml,/{apiVersion}/profile/sshkeys,post-add-ssh-key,post-add-ssh-key,post,,SSH keys,ssh keys,ssh_keys,post_add_ssh_key,insert,,Add an SSH key -profile.yaml,/{apiVersion}/profile/sshkeys/{sshKeyId},put-ssh-key,put-ssh-key,put,,SSH keys,ssh keys,ssh_keys,put_ssh_key,replace,,Update an SSH key -profile.yaml,/{apiVersion}/profile/sshkeys,get-ssh-keys,get-ssh-keys,get,,SSH keys,ssh keys,ssh_keys,get_ssh_keys,select,,List SSH keys -profile.yaml,/{apiVersion}/profile/sshkeys/{sshKeyId},get-ssh-key,get-ssh-key,get,,SSH keys,ssh keys,ssh_keys,get_ssh_key,select,,Get an SSH key -profile.yaml,/{apiVersion}/profile/tfa-disable,post-tfa-disable,post-tfa-disable,post,,Two factor authentication,two factor authentication,two_factor_authentication,post_tfa_disable,exec,,Disable two factor authentication -profile.yaml,/{apiVersion}/profile/tfa-enable,post-tfa-enable,post-tfa-enable,post,,Two factor authentication,two factor authentication,two_factor_authentication,post_tfa_enable,exec,,Create a two factor secret -profile.yaml,/{apiVersion}/profile/tfa-enable-confirm,post-tfa-confirm,post-tfa-confirm,post,,Two factor authentication,two factor authentication,two_factor_authentication,post_tfa_confirm,exec,,Enable two factor authentication -regions.yaml,/{apiVersion}/regions,get-regions,get-regions,get,,Regions,regions,regions,get_regions,select,,List regions -regions.yaml,/{apiVersion}/regions/availability,get-regions-availability,get-regions-availability,get,,Regions,regions,availability,get_regions_availability,select,$.data,List regions' availability -regions.yaml,/{apiVersion}/regions/{regionId},get-region,get-region,get,,Regions,regions,regions,get_region,select,,Get a region -regions.yaml,/{apiVersion}/regions/{regionId}/availability,get-region-availability,get-region-availability,get,,Regions,regions,availability,get_region_availability,select,,Get a region's availability -support.yaml,/{apiVersion}/support/tickets/{ticketId}/attachments,post-ticket-attachment,post-ticket-attachment,post,,Attachments,attachments,tickets,post_ticket_attachment,exec,,Create a support ticket attachment -support.yaml,/{apiVersion}/support/tickets/{ticketId}/replies,post-ticket-reply,post-ticket-reply,post,,Replies,replies,ticket_replies,post_ticket_reply,insert,,Create a reply -support.yaml,/{apiVersion}/support/tickets/{ticketId}/replies,get-ticket-replies,get-ticket-replies,get,,Replies,replies,ticket_replies,get_ticket_replies,select,,List replies -support.yaml,/{apiVersion}/support/tickets,post-ticket,post-ticket,post,,Support tickets,support tickets,tickets,post_ticket,insert,,Open a support ticket -support.yaml,/{apiVersion}/support/tickets/{ticketId}/close,post-close-ticket,post-close-ticket,post,,Support tickets,support tickets,tickets,post_close_ticket,delete,,Close a support ticket -support.yaml,/{apiVersion}/support/tickets,get-tickets,get-tickets,get,,Support tickets,support tickets,tickets,get_tickets,select,,List support tickets -support.yaml,/{apiVersion}/support/tickets/{ticketId},get-ticket,get-ticket,get,,Support tickets,support tickets,tickets,get_ticket,select,,Get a support ticket -tags.yaml,/{apiVersion}/tags/{tagLabel},delete-tag,delete-tag,delete,,Tags,tags,tags,delete_tag,delete,,Delete a tag -tags.yaml,/{apiVersion}/tags,post-tag,post-tag,post,,Tags,tags,tags,post_tag,insert,,Create a tag -tags.yaml,/{apiVersion}/tags,get-tags,get-tags,get,,Tags,tags,tags,get_tags,select,,List tags -tags.yaml,/{apiVersion}/tags/{tagLabel},get-tagged-objects,get-tagged-objects,get,,Tags,tags,tagged_objects,get_tagged_objects,select,,List tagged objects -volumes.yaml,/{apiVersion}/volumes/types,get-volume-types,get-volume-types,get,,Volume types,volume types,types,get_volume_types,select,,List volume types -volumes.yaml,/{apiVersion}/volumes/{volumeId},delete-volume,delete-volume,delete,,Volumes,volumes,volumes,delete_volume,delete,,Delete a volume -volumes.yaml,/{apiVersion}/volumes,post-volume,post-volume,post,,Volumes,volumes,volumes,post_volume,insert,,Create a volume -volumes.yaml,/{apiVersion}/volumes/{volumeId}/attach,post-attach-volume,post-attach-volume,post,,Volumes,volumes,volumes,post_attach_volume,exec,,Attach a volume -volumes.yaml,/{apiVersion}/volumes/{volumeId}/clone,post-clone-volume,post-clone-volume,post,,Volumes,volumes,volumes,post_clone_volume,exec,,Clone a volume -volumes.yaml,/{apiVersion}/volumes/{volumeId}/detach,post-detach-volume,post-detach-volume,post,,Volumes,volumes,volumes,post_detach_volume,exec,,Detach a volume -volumes.yaml,/{apiVersion}/volumes/{volumeId}/resize,post-resize-volume,post-resize-volume,post,,Volumes,volumes,volumes,post_resize_volume,exec,,Resize a volume -volumes.yaml,/{apiVersion}/volumes/{volumeId},put-volume,put-volume,put,,Volumes,volumes,volumes,put_volume,replace,,Update a volume -volumes.yaml,/{apiVersion}/volumes,get-volumes,get-volumes,get,,Volumes,volumes,volumes,get_volumes,select,,List volumes -volumes.yaml,/{apiVersion}/volumes/{volumeId},get-volume,get-volume,get,,Volumes,volumes,volumes,get_volume,select,,Get a volume -vpcs.yaml,/{apiVersion}/vpcs/ips,get-vpcs-ips,get-vpcs-ips,get,,IP addresses,ip addresses,ip_addresses,get_vpcs_ips,select,$.data,List VPC IP addresses -vpcs.yaml,/{apiVersion}/vpcs/{vpcId}/ips,get-vpc-ips,get-vpc-ips,get,,IP addresses,ip addresses,ip_addresses,get_vpc_ips,select,$.data,List a VPC's IP addresses -vpcs.yaml,/{apiVersion}/vpcs/{vpcId}/subnets/{vpcSubnetId},delete-vpc-subnet,delete-vpc-subnet,delete,,VPC subnets,vpc subnets,subnets,delete_vpc_subnet,delete,,Delete a VPC subnet -vpcs.yaml,/{apiVersion}/vpcs/{vpcId}/subnets,post-vpc-subnet,post-vpc-subnet,post,,VPC subnets,vpc subnets,subnets,post_vpc_subnet,insert,,Create a VPC subnet -vpcs.yaml,/{apiVersion}/vpcs/{vpcId}/subnets/{vpcSubnetId},put-vpc-subnet,put-vpc-subnet,put,,VPC subnets,vpc subnets,subnets,put_vpc_subnet,replace,,Update a VPC subnet -vpcs.yaml,/{apiVersion}/vpcs/{vpcId}/subnets,get-vpc-subnets,get-vpc-subnets,get,,VPC subnets,vpc subnets,subnets,get_vpc_subnets,select,$.data,List VPC subnets -vpcs.yaml,/{apiVersion}/vpcs/{vpcId}/subnets/{vpcSubnetId},get-vpc-subnet,get-vpc-subnet,get,,VPC subnets,vpc subnets,subnets,get_vpc_subnet,select,,Get a VPC subnet -vpcs.yaml,/{apiVersion}/vpcs/{vpcId},delete-vpc,delete-vpc,delete,,VPCs,vpcs,vpcs,delete_vpc,delete,,Delete a VPC -vpcs.yaml,/{apiVersion}/vpcs,post-vpc,post-vpc,post,,VPCs,vpcs,vpcs,post_vpc,insert,,Create a VPC -vpcs.yaml,/{apiVersion}/vpcs/{vpcId},put-vpc,put-vpc,put,,VPCs,vpcs,vpcs,put_vpc,replace,,Update a VPC -vpcs.yaml,/{apiVersion}/vpcs,get-vpcs,get-vpcs,get,,VPCs,vpcs,vpcs,get_vpcs,select,$.data,List VPCs -vpcs.yaml,/{apiVersion}/vpcs/{vpcId},get-vpc,get-vpc,get,,VPCs,vpcs,vpcs,get_vpc,select,,Get a VPC +account.yaml,/account/cancel,post-cancel-account,post-cancel-account,post,,Account,account,account,cancel,exec,,Delete your account +account.yaml,/account,put-account,put-account,put,,Account,account,account,update,replace,,Update your account +account.yaml,/account,get-account,get-account,get,,Account,account,account,get,select,,Get your account +account.yaml,/account/agreements,post-account-agreements,post-account-agreements,post,,Account agreements,account agreements,agreements,acknowledge,exec,,Acknowledge agreements +account.yaml,/account/agreements,get-account-agreements,get-account-agreements,get,,Account agreements,account agreements,agreements,get,select,,List agreements +account.yaml,/account/availability/{regionId},get-account-availability,get-account-availability,get,,Account,account,availability,get,select,,Get a region's service availability +account.yaml,/account/availability,get-availability,get-availability,get,,Account availability,account availability,available_services,list,select,$.data,List available services +account.yaml,/account/betas,post-beta-program,post-beta-program,post,,Beta programs,beta programs,beta_programs,enroll,exec,,Enroll in a Beta program +account.yaml,/account/betas,get-enrolled-beta-programs,get-enrolled-beta-programs,get,,Beta programs,beta programs,beta_programs,list,select,$.data,List enrolled Beta programs +account.yaml,/account/betas/{betaId},get-enrolled-beta-program,get-enrolled-beta-program,get,,Beta programs,beta programs,beta_programs,get,select,,Get an enrolled Beta program +account.yaml,/account/child-accounts/{euuId}/token,post-child-account-token,post-child-account-token,post,,Child accounts,child accounts,child_accounts,create_proxy_token,exec,,Create a proxy user token +account.yaml,/account/child-accounts,get-child-accounts,get-child-accounts,get,,Child accounts,child accounts,child_accounts,list,select,$.data,List child accounts +account.yaml,/account/child-accounts/{euuId},get-child-account,get-child-account,get,,Child accounts,child accounts,child_accounts,get,select,,Get a child account +account.yaml,/account/oauth-clients/{clientId}/thumbnail,put-client-thumbnail,put-client-thumbnail,put,,Client thumbnail,client thumbnail,oauth_clients,update_thumbnail,exec,,Update the OAuth client's thumbnail +account.yaml,/account/oauth-clients/{clientId}/thumbnail,get-client-thumbnail,get-client-thumbnail,get,,Client thumbnail,client thumbnail,oauth_clients,get_thumbnail,exec,,Get the OAuth client's thumbnail +account.yaml,/account/entity-transfers/{token},delete-entity-transfer,delete-entity-transfer,delete,,Entity transfers,entity transfers,entity_transfers,delete,delete,,Cancel an entity transfer +account.yaml,/account/entity-transfers/{token}/accept,post-accept-entity-transfer,post-accept-entity-transfer,post,,Entity transfers,entity transfers,entity_transfers,accept,exec,,Accept an entity transfer +account.yaml,/account/entity-transfers,post-entity-transfer,post-entity-transfer,post,,Entity transfers,entity transfers,entity_transfers,create,insert,,Create an entity transfer +account.yaml,/account/entity-transfers,get-entity-transfers,get-entity-transfers,get,,Entity transfers,entity transfers,entity_transfers,list,select,$.data,List entity transfers +account.yaml,/account/entity-transfers/{token},get-entity-transfer,get-entity-transfer,get,,Entity transfers,entity transfers,entity_transfers,get,select,,Get an entity transfer +account.yaml,/account/events/{eventId}/seen,post-event-seen,post-event-seen,post,,Events,events,events,mark_seen,exec,,Mark an event as seen +account.yaml,/account/events,get-events,get-events,get,,Events,events,events,list,select,$.data,List events +account.yaml,/account/events/{eventId},get-event,get-event,get,,Events,events,events,get,select,,Get an event +account.yaml,/account/invoices/{invoiceId}/items,get-invoice-items,get-invoice-items,get,,Invoices,invoices,invoice_items,list,select,$.data,List invoice items +account.yaml,/account/invoices,get-invoices,get-invoices,get,,Invoices,invoices,invoices,list,select,$.data,List invoices +account.yaml,/account/invoices/{invoiceId},get-invoice,get-invoice,get,,Invoices,invoices,invoices,get,select,,Get an invoice +account.yaml,/account/logins,get-account-logins,get-account-logins,get,,Logins,logins,logins,list,select,$.data,List user logins +account.yaml,/account/logins/{loginId},get-account-login,get-account-login,get,,Logins,logins,logins,get,select,,Get an account login +account.yaml,/account/maintenance,get-maintenance,get-maintenance,get,,Maintenances,maintenances,maintenances,list,select,$.data,List maintenances +account.yaml,/account/transfer,get-transfer,get-transfer,get,,Account transfer,account transfer,network_usage,get,select,,Get network usage +account.yaml,/account/notifications,get-notifications,get-notifications,get,,Notifications,notifications,notifications,list,select,$.data,List notifications +account.yaml,/account/oauth-clients/{clientId},delete-client,delete-client,delete,,OAuth clients,oauth clients,oauth_clients,delete,delete,,Delete an OAuth client +account.yaml,/account/oauth-clients/{clientId}/reset-secret,post-reset-client-secret,post-reset-client-secret,post,,OAuth clients,oauth clients,oauth_clients,reset_secret,exec,,Reset an OAuth client secret +account.yaml,/account/oauth-clients,post-client,post-client,post,,OAuth clients,oauth clients,oauth_clients,create,insert,,Create an OAuth client +account.yaml,/account/oauth-clients/{clientId},put-client,put-client,put,,OAuth clients,oauth clients,oauth_clients,update,replace,,Update an OAuth client +account.yaml,/account/oauth-clients,get-clients,get-clients,get,,OAuth clients,oauth clients,oauth_clients,list,select,$.data,List OAuth clients +account.yaml,/account/oauth-clients/{clientId},get-client,get-client,get,,OAuth clients,oauth clients,oauth_clients,get,select,,Get an OAuth client +account.yaml,/account/payment-methods/{paymentMethodId},delete-payment-method,delete-payment-method,delete,,Payment methods,payment methods,payment_methods,delete,delete,,Delete a payment method +account.yaml,/account/payment-methods/{paymentMethodId}/make-default,post-make-payment-method-default,post-make-payment-method-default,post,,Payment methods,payment methods,payment_methods,make_default,exec,,Set a default payment method +account.yaml,/account/payment-methods,post-payment-method,post-payment-method,post,,Payment methods,payment methods,payment_methods,create,insert,,Add a payment method +account.yaml,/account/payment-methods,get-payment-methods,get-payment-methods,get,,Payment methods,payment methods,payment_methods,list,select,$.data,List payment methods +account.yaml,/account/payment-methods/{paymentMethodId},get-payment-method,get-payment-method,get,,Payment methods,payment methods,payment_methods,get,select,,Get a payment method +account.yaml,/account/payments,post-payment,post-payment,post,,Payments,payments,payments,make_payment,exec,,Make a payment +account.yaml,/account/payments/paypal,post-pay-pal-payment,post-pay-pal-payment,post,,Payments,payments,payments,stage_paypal_payment,exec,,Stage a PayPal payment +account.yaml,/account/payments/paypal/execute,post-execute-pay-pal-payment,post-execute-pay-pal-payment,post,,Payments,payments,payments,execute_paypal_payment,exec,,Execute a PayPal payment +account.yaml,/account/credit-card,post-credit-card,post-credit-card,post,,Payments,payments,payments,create,insert,,Add or edit a credit card +account.yaml,/account/payments,get-payments,get-payments,get,,Payments,payments,payments,list,select,$.data,List payments +account.yaml,/account/payments/{paymentId},get-payment,get-payment,get,,Payments,payments,payments,get,select,,Get a payment +account.yaml,/account/promo-codes,post-promo-credit,post-promo-credit,post,,Promo credits,promo credits,promo_credits,create,insert,,Add a promo credit +account.yaml,/account/service-transfers/{token},delete-service-transfer,delete-service-transfer,delete,,Service transfers,service transfers,service_transfers,delete,delete,,Cancel a service transfer +account.yaml,/account/service-transfers/{token}/accept,post-accept-service-transfer,post-accept-service-transfer,post,,Service transfers,service transfers,service_transfers,accept,exec,,Accept a service transfer +account.yaml,/account/service-transfers,post-service-transfer,post-service-transfer,post,,Service transfers,service transfers,service_transfers,create,insert,,Request a service transfer +account.yaml,/account/service-transfers,get-service-transfers,get-service-transfers,get,,Service transfers,service transfers,service_transfers,list,select,$.data,List service transfers +account.yaml,/account/service-transfers/{token},get-service-transfer,get-service-transfer,get,,Service transfers,service transfers,service_transfers,get,select,,Get a service transfer request +account.yaml,/account/settings/managed-enable,post-enable-account-managed,post-enable-account-managed,post,,Settings,settings,settings,enable_managed,exec,,Enable Linode Managed +account.yaml,/account/settings,put-account-settings,put-account-settings,put,,Account settings,account settings,settings,update,replace,,Update account settings +account.yaml,/account/settings,get-account-settings,get-account-settings,get,,Account settings,account settings,settings,get,select,,Get account settings +account.yaml,/account/users/{username}/grants,put-user-grants,put-user-grants,put,,Users,users,user_grants,update,replace,,Update a user's grants +account.yaml,/account/users/{username}/grants,get-user-grants,get-user-grants,get,,Users,users,user_grants,get,select,,List a user's grants +account.yaml,/account/users/{username},delete-user,delete-user,delete,,Users,users,users,delete,delete,,Delete a user +account.yaml,/account/users,post-user,post-user,post,,Users,users,users,create,insert,,Create a user +account.yaml,/account/users/{username},put-user,put-user,put,,Users,users,users,update,replace,,Update a user +account.yaml,/account/users,get-users,get-users,get,,Users,users,users,list,select,$.data,List users +account.yaml,/account/users/{username},get-user,get-user,get,,Users,users,users,get,select,$.user_type,Get a user +betas.yaml,/betas,get-beta-programs,get-beta-programs,get,,Beta programs,beta programs,beta_programs,list,select,$.data,List Beta programs +betas.yaml,/betas/{betaId},get-beta-program,get-beta-program,get,,Beta programs,beta programs,beta_programs,get,select,,Get a Beta program +databases.yaml,/databases/engines,get-databases-engines,get-databases-engines,get,,Engines,engines,engines,list,select,$.data,List Managed Databases engines +databases.yaml,/databases/engines/{engineId},get-databases-engine,get-databases-engine,get,,Engines,engines,engines,get,select,,Get a Managed Databases engine +databases.yaml,/databases/instances,get-databases-instances,get-databases-instances,get,,Databases,databases,instances,list,select,$.data,List Managed Databases +databases.yaml,/databases/mysql/config,get-databases-mysql-config,get-databases-mysql-config,get,,Advanced parameters,advanced parameters,mysql_config,get,select,,List MySQL Managed Database advanced parameters +databases.yaml,/databases/mysql/instances/{instanceId}/credentials/reset,post-databases-mysql-instance-credentials-reset,post-databases-mysql-instance-credentials-reset,post,,Credentials,credentials,mysql_instance_credentials,reset_credentials,exec,,Reset MySQL Managed Database credentials +databases.yaml,/databases/mysql/instances/{instanceId}/credentials,get-databases-mysql-instance-credentials,get-databases-mysql-instance-credentials,get,,Credentials,credentials,mysql_instance_credentials,get,select,,Get MySQL Managed Database credentials +databases.yaml,/databases/mysql/instances/{instanceId},delete-databases-mysql-instance,delete-databases-mysql-instance,delete,,Databases,databases,mysql_instances,delete,delete,,Delete a MySQL Managed Database +databases.yaml,/databases/mysql/instances/{instanceId}/resume,resume-databases-mysql-instance,resume-databases-mysql-instance,post,,Databases,databases,mysql_instances,resume,exec,,Resume a MySQL Managed Database +databases.yaml,/databases/mysql/instances/{instanceId}/suspend,suspend-databases-mysql-instance,suspend-databases-mysql-instance,post,,Databases,databases,mysql_instances,suspend,exec,,Suspend a MySQL Managed Database +databases.yaml,/databases/mysql/instances,post-databases-mysql-instances,post-databases-mysql-instances,post,,Databases,databases,mysql_instances,create,insert,,Create or restore a MySQL Managed Database +databases.yaml,/databases/mysql/instances/{instanceId},put-databases-mysql-instance,put-databases-mysql-instance,put,,Databases,databases,mysql_instances,update,replace,,Update a MySQL Managed Database +databases.yaml,/databases/mysql/instances,get-databases-mysql-instances,get-databases-mysql-instances,get,,Databases,databases,mysql_instances,list,select,$.data,List MySQL Managed Databases +databases.yaml,/databases/mysql/instances/{instanceId},get-databases-mysql-instance,get-databases-mysql-instance,get,,Databases,databases,mysql_instances,get,select,,Get a MySQL Managed Database +databases.yaml,/databases/mysql/instances/{instanceId}/patch,post-databases-mysql-instance-patch,post-databases-mysql-instance-patch,post,,Databases,databases,mysql_instances,patch,update,,Patch a MySQL Managed Database +databases.yaml,/databases/mysql/instances/{instanceId}/ssl,get-databases-mysql-instance-ssl,get-databases-mysql-instance-ssl,get,,SSL certificates,ssl certificates,mysql_ssl_certificates,get,select,,Get a MySQL Managed Database SSL certificate +databases.yaml,/databases/postgresql/config,get-databases-postgresql-config,get-databases-postgresql-config,get,,Advanced parameters,advanced parameters,postgresql_config,get,select,,List PostgreSQL Managed Database advanced parameters +databases.yaml,/databases/postgresql/instances/{instanceId}/credentials/reset,post-databases-postgre-sql-instance-credentials-reset,post-databases-postgre-sql-instance-credentials-reset,post,,Credentials,credentials,postgresql_instance_credentials,reset_credentials,exec,,Reset PostgreSQL Managed Database credentials +databases.yaml,/databases/postgresql/instances/{instanceId}/credentials,get-databases-postgre-sql-instance-credentials,get-databases-postgre-sql-instance-credentials,get,,Credentials,credentials,postgresql_instance_credentials,get,select,,Get PostgreSQL Managed Database credentials +databases.yaml,/databases/postgresql/instances/{instanceId},delete-databases-postgre-sql-instance,delete-databases-postgre-sql-instance,delete,,Databases,databases,postgresql_instances,delete,delete,,Delete a PostgreSQL Managed Database +databases.yaml,/databases/postgresql/instances/{instanceId}/resume,resume-databases-postgre-sql-instance,resume-databases-postgre-sql-instance,post,,Databases,databases,postgresql_instances,resume,exec,,Resume a PostgreSQL Managed Database +databases.yaml,/databases/postgresql/instances/{instanceId}/suspend,suspend-databases-postgre-sql-instance,suspend-databases-postgre-sql-instance,post,,Databases,databases,postgresql_instances,suspend,exec,,Suspend a PostgreSQL Managed Database +databases.yaml,/databases/postgresql/instances,post-databases-postgre-sql-instances,post-databases-postgre-sql-instances,post,,Databases,databases,postgresql_instances,create,insert,,Create or restore a PostgreSQL Managed Database +databases.yaml,/databases/postgresql/instances/{instanceId},put-databases-postgre-sql-instance,put-databases-postgre-sql-instance,put,,Databases,databases,postgresql_instances,update,replace,,Update a PostgreSQL Managed Database +databases.yaml,/databases/postgresql/instances,get-databases-postgre-sql-instances,get-databases-postgre-sql-instances,get,,Databases,databases,postgresql_instances,list,select,$.data,List PostgreSQL Managed Databases +databases.yaml,/databases/postgresql/instances/{instanceId},get-databases-postgre-sql-instance,get-databases-postgre-sql-instance,get,,Databases,databases,postgresql_instances,get,select,,Get a PostgreSQL Managed Database +databases.yaml,/databases/postgresql/instances/{instanceId}/patch,post-databases-postgre-sql-instance-patch,post-databases-postgre-sql-instance-patch,post,,Databases,databases,postgresql_instances,patch,update,,Patch a PostgreSQL Managed Database +databases.yaml,/databases/postgresql/instances/{instanceId}/ssl,get-databases-postgresql-instance-ssl,get-databases-postgresql-instance-ssl,get,,SSL certificates,ssl certificates,postgresql_ssl_certificates,get,select,,Get a PostgreSQL Managed Database SSL certificate +databases.yaml,/databases/types,get-databases-types,get-databases-types,get,,Types,types,types,list,select,$.data,List Managed Databases types +databases.yaml,/databases/types/{typeId},get-databases-type,get-databases-type,get,,Types,types,types,get,select,,Get a Managed Databases type +domains.yaml,/domains/{domainId},delete-domain,delete-domain,delete,,Domains,domains,domains,delete,delete,,Delete a domain +domains.yaml,/domains/import,post-import-domain,post-import-domain,post,,Domains,domains,domains,import,exec,,Import a domain +domains.yaml,/domains/{domainId}/clone,post-clone-domain,post-clone-domain,post,,Domains,domains,domains,clone,exec,,Clone a domain +domains.yaml,/domains,post-domain,post-domain,post,,Domains,domains,domains,create,insert,,Create a domain +domains.yaml,/domains/{domainId},put-domain,put-domain,put,,Domains,domains,domains,update,replace,,Update a domain +domains.yaml,/domains,get-domains,get-domains,get,,Domains,domains,domains,list,select,$.data,List domains +domains.yaml,/domains/{domainId},get-domain,get-domain,get,,Domains,domains,domains,get,select,,Get a domain +domains.yaml,/domains/{domainId}/records/{recordId},delete-domain-record,delete-domain-record,delete,,Records,records,records,delete,delete,,Delete a domain record +domains.yaml,/domains/{domainId}/records,post-domain-record,post-domain-record,post,,Records,records,records,create,insert,,Create a domain record +domains.yaml,/domains/{domainId}/records/{recordId},put-domain-record,put-domain-record,put,,Records,records,records,update,replace,,Update a domain record +domains.yaml,/domains/{domainId}/records,get-domain-records,get-domain-records,get,,Records,records,records,list,select,$.data,List domain records +domains.yaml,/domains/{domainId}/records/{recordId},get-domain-record,get-domain-record,get,,Records,records,records,get,select,,Get a domain record +domains.yaml,/domains/{domainId}/zone-file,get-domain-zone,get-domain-zone,get,,Domain zone file,domain zone file,zone_file,get,select,$.zone_file,Get a domain zone file +images.yaml,/images/{imageId},delete-image,delete-image,delete,,Images,images,images,delete,delete,,Delete an image +images.yaml,/images/upload,post-upload-image,post-upload-image,post,,Images,images,images,upload,exec,,Upload an image +images.yaml,/images/{imageId}/regions,post-replicate-image,post-replicate-image,post,,Images,images,images,replicate,exec,,Replicate an image +images.yaml,/images,post-image,post-image,post,,Images,images,images,create,insert,,Create an image +images.yaml,/images/{imageId},put-image,put-image,put,,Images,images,images,update,replace,,Update an image +images.yaml,/images,get-images,get-images,get,,Images,images,images,list,select,$.data,List images +images.yaml,/images/{imageId},get-image,get-image,get,,Images,images,images,get,select,,Get an image +linode.yaml,/linode/instances/{linodeId}/backups/cancel,post-cancel-backups,post-cancel-backups,post,,Backups,backups,backups,cancel,exec,,Cancel backups +linode.yaml,/linode/instances/{linodeId}/backups/enable,post-enable-backups,post-enable-backups,post,,Backups,backups,backups,enable,exec,,Enable backups +linode.yaml,/linode/instances/{linodeId}/backups/{backupId}/restore,post-restore-backup,post-restore-backup,post,,Backups,backups,backups,restore,exec,,Restore a backup +linode.yaml,/linode/instances/{linodeId}/backups,post-snapshot,post-snapshot,post,,Backups,backups,backups,create_snapshot,insert,,Create a snapshot +linode.yaml,/linode/instances/{linodeId}/backups,get-backups,get-backups,get,,Backups,backups,backups,list,select,,List backups +linode.yaml,/linode/instances/{linodeId}/backups/{backupId},get-backup,get-backup,get,,Backups,backups,backups,get,select,,Get a backup +linode.yaml,/linode/instances/{linodeId}/configs/{configId}/interfaces/{interfaceId},delete-linode-config-interface,delete-linode-config-interface,delete,,Interfaces,interfaces,config_profile_interfaces,delete,delete,,Delete a configuration profile interface +linode.yaml,/linode/instances/{linodeId}/configs/{configId}/interfaces/order,post-linode-config-interfaces,post-linode-config-interfaces,post,,Interfaces,interfaces,config_profile_interfaces,reorder,exec,,Reorder configuration profile interfaces +linode.yaml,/linode/instances/{linodeId}/configs/{configId}/interfaces,post-linode-config-interface,post-linode-config-interface,post,,Interfaces,interfaces,config_profile_interfaces,create,insert,,Add a configuration profile interface +linode.yaml,/linode/instances/{linodeId}/configs/{configId}/interfaces/{interfaceId},put-linode-config-interface,put-linode-config-interface,put,,Interfaces,interfaces,config_profile_interfaces,update,replace,,Update a configuration profile interface +linode.yaml,/linode/instances/{linodeId}/configs/{configId}/interfaces,get-linode-config-interfaces,get-linode-config-interfaces,get,,Interfaces,interfaces,config_profile_interfaces,list,select,,List configuration profile interfaces +linode.yaml,/linode/instances/{linodeId}/configs/{configId}/interfaces/{interfaceId},get-linode-config-interface,get-linode-config-interface,get,,Interfaces,interfaces,config_profile_interfaces,get,select,,Get a configuration profile interface +linode.yaml,/linode/instances/{linodeId}/configs/{configId},delete-linode-config,delete-linode-config,delete,,Configurations,configurations,config_profiles,delete,delete,,Delete a configuration profile +linode.yaml,/linode/instances/{linodeId}/configs,post-add-linode-config,post-add-linode-config,post,,Configurations,configurations,config_profiles,create,insert,,Create a configuration profile +linode.yaml,/linode/instances/{linodeId}/configs/{configId},put-linode-config,put-linode-config,put,,Configurations,configurations,config_profiles,update,replace,,Update a configuration profile +linode.yaml,/linode/instances/{linodeId}/configs,get-linode-configs,get-linode-configs,get,,Configurations,configurations,config_profiles,list,select,$.data,List configuration profiles +linode.yaml,/linode/instances/{linodeId}/configs/{configId},get-linode-config,get-linode-config,get,,Configurations,configurations,config_profiles,get,select,,Get a configuration profile +linode.yaml,/linode/instances/{linodeId}/disks/{diskId},delete-disk,delete-disk,delete,,Disks,disks,disks,delete,delete,,Delete a disk +linode.yaml,/linode/instances/{linodeId}/disks/{diskId}/clone,post-clone-linode-disk,post-clone-linode-disk,post,,Disks,disks,disks,clone,exec,,Clone a disk +linode.yaml,/linode/instances/{linodeId}/disks/{diskId}/password,post-reset-disk-password,post-reset-disk-password,post,,Disks,disks,disks,reset_password,exec,,Reset a disk root password +linode.yaml,/linode/instances/{linodeId}/disks/{diskId}/resize,post-resize-disk,post-resize-disk,post,,Disks,disks,disks,resize,exec,,Resize a disk +linode.yaml,/linode/instances/{linodeId}/disks,post-add-linode-disk,post-add-linode-disk,post,,Disks,disks,disks,create,insert,,Create a disk +linode.yaml,/linode/instances/{linodeId}/disks/{diskId},put-disk,put-disk,put,,Disks,disks,disks,update,replace,,Update a disk +linode.yaml,/linode/instances/{linodeId}/disks,get-linode-disks,get-linode-disks,get,,Disks,disks,disks,list,select,$.data,List disks +linode.yaml,/linode/instances/{linodeId}/disks/{diskId},get-linode-disk,get-linode-disk,get,,Disks,disks,disks,get,select,,Get a disk +linode.yaml,/linode/instances/{linodeId}/firewalls/apply,post-apply-firewalls,post-apply-firewalls,post,,Firewalls,firewalls,firewalls,apply,exec,,Apply a Linode's firewalls +linode.yaml,/linode/instances/{linodeId}/firewalls,put-linode-firewalls,put-linode-firewalls,put,,Firewalls,firewalls,firewalls,update,replace,,Update a Linode's firewalls +linode.yaml,/linode/instances/{linodeId}/firewalls,get-linode-firewalls,get-linode-firewalls,get,,Firewalls,firewalls,firewalls,list,select,$.data,List a Linode's firewalls +linode.yaml,/linode/instances/{linodeId},delete-linode-instance,delete-linode-instance,delete,,Linode instances,linode instances,instances,delete,delete,,Delete a Linode +linode.yaml,/linode/instances/{linodeId}/boot,post-boot-linode-instance,post-boot-linode-instance,post,,Linode instances,linode instances,instances,boot,exec,,Boot a Linode +linode.yaml,/linode/instances/{linodeId}/clone,post-clone-linode-instance,post-clone-linode-instance,post,,Linode instances,linode instances,instances,clone,exec,,Clone a Linode +linode.yaml,/linode/instances/{linodeId}/migrate,post-migrate-linode-instance,post-migrate-linode-instance,post,,Linode instances,linode instances,instances,migrate,exec,,Launch a DC migration/pending host migration +linode.yaml,/linode/instances/{linodeId}/mutate,post-mutate-linode-instance,post-mutate-linode-instance,post,,Linode instances,linode instances,instances,mutate,exec,,Upgrade a Linode +linode.yaml,/linode/instances/{linodeId}/password,post-reset-linode-password,post-reset-linode-password,post,,Linode instances,linode instances,instances,reset_password,exec,,Reset a Linode's root password +linode.yaml,/linode/instances/{linodeId}/reboot,post-reboot-linode-instance,post-reboot-linode-instance,post,,Linode instances,linode instances,instances,reboot,exec,,Reboot a Linode +linode.yaml,/linode/instances/{linodeId}/rebuild,post-rebuild-linode-instance,post-rebuild-linode-instance,post,,Linode instances,linode instances,instances,rebuild,exec,,Rebuild a Linode +linode.yaml,/linode/instances/{linodeId}/rescue,post-rescue-linode-instance,post-rescue-linode-instance,post,,Linode instances,linode instances,instances,rescue,exec,,Boot a Linode into rescue mode +linode.yaml,/linode/instances/{linodeId}/resize,post-resize-linode-instance,post-resize-linode-instance,post,,Linode instances,linode instances,instances,resize,exec,,Resize a Linode +linode.yaml,/linode/instances/{linodeId}/shutdown,post-shutdown-linode-instance,post-shutdown-linode-instance,post,,Linode instances,linode instances,instances,shutdown,exec,,Shut down a Linode +linode.yaml,/linode/instances,post-linode-instance,post-linode-instance,post,,Linode instances,linode instances,instances,create,insert,,Create a Linode +linode.yaml,/linode/instances/{linodeId},put-linode-instance,put-linode-instance,put,,Linode instances,linode instances,instances,update,replace,,Update a Linode +linode.yaml,/linode/instances,get-linode-instances,get-linode-instances,get,,Linode instances,linode instances,instances,list,select,$.data,List Linodes +linode.yaml,/linode/instances/{linodeId},get-linode-instance,get-linode-instance,get,,Linode instances,linode instances,instances,get,select,,Get a Linode +linode.yaml,/linode/instances/{linodeId}/interfaces/{interfaceId}/firewalls,get-linode-interface-firewalls,get-linode-interface-firewalls,get,,Linode interfaces,linode interfaces,interface_firewalls,list,select,$.data,List Linode interface firewalls +linode.yaml,/linode/instances/{linodeId}/interfaces/settings,put-linode-interface-settings,put-linode-interface-settings,put,,Linode interfaces,linode interfaces,interface_settings,update,replace,,Update Linode interface settings +linode.yaml,/linode/instances/{linodeId}/interfaces/settings,get-linode-interface-settings,get-linode-interface-settings,get,,Linode interfaces,linode interfaces,interface_settings,get,select,,List Linode interface settings +linode.yaml,/linode/instances/{linodeId}/interfaces/{interfaceId},delete-linode-interface,delete-linode-interface,delete,,Linode interfaces,linode interfaces,interfaces,delete,delete,,Delete a Linode interface +linode.yaml,/linode/instances/{linodeId}/upgrade-interfaces,post-upgrade-linode-interfaces,post-upgrade-linode-interfaces,post,,Linode interfaces,linode interfaces,interfaces,upgrade,exec,,Upgrade to Linode interfaces +linode.yaml,/linode/instances/{linodeId}/interfaces,post-linode-interface,post-linode-interface,post,,Linode interfaces,linode interfaces,interfaces,create,insert,,Add a Linode interface +linode.yaml,/linode/instances/{linodeId}/interfaces/{interfaceId},put-linode-interface,put-linode-interface,put,,Linode interfaces,linode interfaces,interfaces,update,replace,,Update a Linode interface +linode.yaml,/linode/instances/{linodeId}/interfaces,get-linode-interfaces,get-linode-interfaces,get,,Linode interfaces,linode interfaces,interfaces,list,select,,List Linode interfaces +linode.yaml,/linode/instances/{linodeId}/interfaces/{interfaceId},get-linode-interface,get-linode-interface,get,,Linode interfaces,linode interfaces,interfaces,get,select,,Get a Linode interface +linode.yaml,/linode/instances/{linodeId}/ips/{address},delete-linode-ip,delete-linode-ip,delete,,IP addresses,ip addresses,ip_addresses,delete,delete,,Delete an IPv4 address +linode.yaml,/linode/instances/{linodeId}/ips,post-add-linode-ip,post-add-linode-ip,post,,IP addresses,ip addresses,ip_addresses,create,insert,,Allocate an IPv4 address +linode.yaml,/linode/instances/{linodeId}/ips/{address},put-linode-ip,put-linode-ip,put,,IP addresses,ip addresses,ip_addresses,update,replace,,Update an IP address's RDNS for a Linode +linode.yaml,/linode/instances/{linodeId}/ips,get-linode-ips,get-linode-ips,get,,IP addresses,ip addresses,ip_addresses,list,select,,Get networking information +linode.yaml,/linode/instances/{linodeId}/ips/{address},get-linode-ip,get-linode-ip,get,,IP addresses,ip addresses,ip_addresses,get,select,,Get a Linode's IP address +linode.yaml,/linode/kernels,get-kernels,get-kernels,get,,Kernels,kernels,kernels,list,select,$.data,List kernels +linode.yaml,/linode/kernels/{kernelId},get-kernel,get-kernel,get,,Kernels,kernels,kernels,get,select,,Get a kernel +linode.yaml,/linode/instances/{linodeId}/transfer/{year}/{month},get-linode-transfer-by-year-month,get-linode-transfer-by-year-month,get,,Network transfer statistics,network transfer statistics,network_transfer_statistics,get,select,,Get monthly network transfer stats +linode.yaml,/linode/instances/{linodeId}/transfer,get-linode-transfer,get-linode-transfer,get,,Network transfers,network transfers,network_transfers,get,select,,Get a network transfer +linode.yaml,/linode/instances/{linodeId}/nodebalancers,get-linode-node-balancers,get-linode-node-balancers,get,,NodeBalancers,node_balancers,node_balancers,list,select,$.data,List Linode NodeBalancers +linode.yaml,/linode/stackscripts/{stackscriptId},delete-stack-script,delete-stack-script,delete,,StackScripts,stack_scripts,stack_scripts,delete,delete,,Delete a StackScript +linode.yaml,/linode/stackscripts,post-add-stack-script,post-add-stack-script,post,,StackScripts,stack_scripts,stack_scripts,create,insert,,Create a StackScript +linode.yaml,/linode/stackscripts/{stackscriptId},put-stack-script,put-stack-script,put,,StackScripts,stack_scripts,stack_scripts,update,replace,,Update a StackScript +linode.yaml,/linode/stackscripts,get-stack-scripts,get-stack-scripts,get,,StackScripts,stack_scripts,stack_scripts,list,select,$.data,List StackScripts +linode.yaml,/linode/stackscripts/{stackscriptId},get-stack-script,get-stack-script,get,,StackScripts,stack_scripts,stack_scripts,get,select,,Get a StackScript +linode.yaml,/linode/instances/{linodeId}/stats,get-linode-stats,get-linode-stats,get,,Statistics,statistics,statistics,get,select,,Get Linode statistics +linode.yaml,/linode/instances/{linodeId}/stats/{year}/{month},get-linode-stats-by-year-month,get-linode-stats-by-year-month,get,,Statistics,statistics,statistics,get_by_year_month,select,,Get monthly statistics +linode.yaml,/linode/types,get-linode-types,get-linode-types,get,,Linode types,linode types,types,list,select,$.data,List types +linode.yaml,/linode/types/{typeId},get-linode-type,get-linode-type,get,,Linode types,linode types,types,get,select,,Get a type +linode.yaml,/linode/instances/{linodeId}/volumes,get-linode-volumes,get-linode-volumes,get,,Volumes,volumes,volumes,list,select,$.data,List a Linode's volumes +lke.yaml,/lke/clusters/{clusterId}/api-endpoints,get-lke-cluster-api-endpoints,get-lke-cluster-api-endpoints,get,,LKE API endpoints,lke api endpoints,api_endpoints,list,select,$.data,List Kubernetes API endpoints +lke.yaml,/lke/clusters/{clusterId}/dashboard,get-lke-cluster-dashboard,get-lke-cluster-dashboard,get,,Cluster dashboard,cluster dashboard,cluster_dashboard,get,select,,Get a Kubernetes cluster dashboard URL +lke.yaml,/lke/clusters/{clusterId},delete-lke-cluster,delete-lke-cluster,delete,,Clusters,clusters,clusters,delete,delete,,Delete a Kubernetes cluster +lke.yaml,/lke/clusters/{clusterId}/recycle,post-lke-cluster-recycle,post-lke-cluster-recycle,post,,Clusters,clusters,clusters,recycle,exec,,Recycle cluster nodes +lke.yaml,/lke/clusters/{clusterId}/regenerate,post-lke-cluster-regenerate,post-lke-cluster-regenerate,post,,Clusters,clusters,clusters,regenerate,exec,,Regenerate a Kubernetes cluster +lke.yaml,/lke/clusters/{clusterId}/servicetoken,delete-lke-service-token,delete-lke-service-token,delete,,Service tokens,service tokens,clusters,delete_service_token,exec,,Delete a service token +lke.yaml,/lke/clusters,post-lke-cluster,post-lke-cluster,post,,Clusters,clusters,clusters,create,insert,,Create a Kubernetes cluster +lke.yaml,/lke/clusters/{clusterId},put-lke-cluster,put-lke-cluster,put,,Clusters,clusters,clusters,update,replace,,Update a Kubernetes cluster +lke.yaml,/lke/clusters,get-lke-clusters,get-lke-clusters,get,,Clusters,clusters,clusters,list,select,$.data,List Kubernetes clusters +lke.yaml,/lke/clusters/{clusterId},get-lke-cluster,get-lke-cluster,get,,Clusters,clusters,clusters,get,select,,Get a Kubernetes cluster +lke.yaml,/lke/clusters/{clusterId}/control_plane_acl,delete-lke-cluster-acl,delete-lke-cluster-acl,delete,,LKE Control Plane ACL,lke control plane acl,control_plane_acl,delete,delete,,Delete the control plane access control list +lke.yaml,/lke/clusters/{clusterId}/control_plane_acl,put-lke-cluster-acl,put-lke-cluster-acl,put,,LKE Control Plane ACL,lke control plane acl,control_plane_acl,update,replace,,Update the control plane access control list +lke.yaml,/lke/clusters/{clusterId}/control_plane_acl,get-lke-cluster-acl,get-lke-cluster-acl,get,,LKE Control Plane ACL,lke control plane acl,control_plane_acl,get,select,$.acl,Get the control plane access control list +lke.yaml,/lke/clusters/{clusterId}/kubeconfig,delete-lke-cluster-kubeconfig,delete-lke-cluster-kubeconfig,delete,,Kubeconfigs,kubeconfigs,kubeconfigs,delete,delete,,Delete a Kubeconfig +lke.yaml,/lke/clusters/{clusterId}/kubeconfig,get-lke-cluster-kubeconfig,get-lke-cluster-kubeconfig,get,,Kubeconfigs,kubeconfigs,kubeconfigs,get,select,,Get a Kubeconfig +lke.yaml,/lke/clusters/{clusterId}/pools/{poolId},delete-lke-node-pool,delete-lke-node-pool,delete,,Node pools,node pools,node_pools,delete,delete,,Delete a node pool +lke.yaml,/lke/clusters/{clusterId}/pools/{poolId}/recycle,post-lke-cluster-pool-recycle,post-lke-cluster-pool-recycle,post,,Node pools,node pools,node_pools,recycle,exec,,Recycle a node pool +lke.yaml,/lke/clusters/{clusterId}/pools,post-lke-cluster-pools,post-lke-cluster-pools,post,,Node pools,node pools,node_pools,create,insert,,Create a node pool +lke.yaml,/lke/clusters/{clusterId}/pools/{poolId},put-lke-node-pool,put-lke-node-pool,put,,Node pools,node pools,node_pools,update,replace,,Update a node pool +lke.yaml,/lke/clusters/{clusterId}/pools,get-lke-cluster-pools,get-lke-cluster-pools,get,,Node pools,node pools,node_pools,list,select,$.data,List node pools +lke.yaml,/lke/clusters/{clusterId}/pools/{poolId},get-lke-node-pool,get-lke-node-pool,get,,Node pools,node pools,node_pools,get,select,,Get a node pool +lke.yaml,/lke/clusters/{clusterId}/nodes/{nodeId},delete-lke-cluster-node,delete-lke-cluster-node,delete,,Nodes,nodes,nodes,delete,delete,,Delete a node +lke.yaml,/lke/clusters/{clusterId}/nodes/{nodeId}/recycle,post-lke-cluster-node-recycle,post-lke-cluster-node-recycle,post,,Nodes,nodes,nodes,recycle,exec,,Recycle a node +lke.yaml,/lke/clusters/{clusterId}/nodes/{nodeId},get-lke-cluster-node,get-lke-cluster-node,get,,Nodes,nodes,nodes,get,select,,Get a node +lke.yaml,/lke/versions,get-lke-versions,get-lke-versions,get,,LKE versions,lke versions,non_enterprise_versions,list,select,$.data,List LKE Kubernetes versions (non-enterprise) +lke.yaml,/lke/versions/{version},get-lke-version,get-lke-version,get,,LKE versions,lke versions,non_enterprise_versions,get,select,,Get an LKE Kubernetes version (non-enterprise) +lke.yaml,/lke/types,get-lke-types,get-lke-types,get,,LKE types,lke types,types,list,select,$.data,List Kubernetes types +lke.yaml,/lke/tiers/{tier}/versions,get-lke-tiers-versions,get-lke-tiers-versions,get,,LKE versions,lke versions,versions,list,select,$.data,List LKE Kubernetes versions (any tier) +lke.yaml,/lke/tiers/{tier}/versions/{version},get-lke-tiers-version,get-lke-tiers-version,get,,LKE versions,lke versions,versions,get,select,,Get an LKE Kubernetes version (any tier) +longview.yaml,/longview/clients/{clientId},delete-longview-client,delete-longview-client,delete,,Clients,clients,clients,delete,delete,,Delete a Longview client +longview.yaml,/longview/clients,post-longview-client,post-longview-client,post,,Clients,clients,clients,create,insert,,Create a Longview client +longview.yaml,/longview/clients/{clientId},put-longview-client,put-longview-client,put,,Clients,clients,clients,update,replace,,Update a Longview client +longview.yaml,/longview/clients,get-longview-clients,get-longview-clients,get,,Clients,clients,clients,list,select,$.data,List Longview clients +longview.yaml,/longview/clients/{clientId},get-longview-client,get-longview-client,get,,Clients,clients,clients,get,select,,Get a Longview client +longview.yaml,/longview/plan,put-longview-plan,put-longview-plan,put,,Plans,plans,plans,update,replace,,Update a Longview plan +longview.yaml,/longview/plan,get-longview-plan,get-longview-plan,get,,Plans,plans,plans,get,select,,Get a Longview plan +longview.yaml,/longview/subscriptions,get-longview-subscriptions,get-longview-subscriptions,get,,Subscriptions,subscriptions,subscriptions,list,select,$.data,List Longview subscriptions +longview.yaml,/longview/subscriptions/{subscriptionId},get-longview-subscription,get-longview-subscription,get,,Subscriptions,subscriptions,subscriptions,get,select,,Get a Longview subscription +longview.yaml,/longview/types,get-longview-types,get-longview-types,get,,Longview types,longview types,types,list,select,$.data,List Longview types +managed.yaml,/managed/contacts/{contactId},delete-managed-contact,delete-managed-contact,delete,,Contacts,contacts,contacts,delete,delete,,Delete a managed contact +managed.yaml,/managed/contacts,post-managed-contact,post-managed-contact,post,,Contacts,contacts,contacts,create,insert,,Create a managed contact +managed.yaml,/managed/contacts/{contactId},put-managed-contact,put-managed-contact,put,,Contacts,contacts,contacts,update,replace,,Update a managed contact +managed.yaml,/managed/contacts,get-managed-contacts,get-managed-contacts,get,,Contacts,contacts,contacts,list,select,$.data,List managed contacts +managed.yaml,/managed/contacts/{contactId},get-managed-contact,get-managed-contact,get,,Contacts,contacts,contacts,get,select,,Get a managed contact +managed.yaml,/managed/credentials/{credentialId}/revoke,post-managed-credential-revoke,post-managed-credential-revoke,post,,Credentials,credentials,credentials,revoke,exec,,Delete a managed credential +managed.yaml,/managed/credentials/{credentialId}/update,post-managed-credential-username-password,post-managed-credential-username-password,post,,Credentials,credentials,credentials,update_username_password,exec,,Update a managed credential's username and password +managed.yaml,/managed/credentials,post-managed-credential,post-managed-credential,post,,Credentials,credentials,credentials,create,insert,,Create a managed credential +managed.yaml,/managed/credentials/{credentialId},put-managed-credential,put-managed-credential,put,,Credentials,credentials,credentials,update,replace,,Update a managed credential +managed.yaml,/managed/credentials,get-managed-credentials,get-managed-credentials,get,,Credentials,credentials,credentials,list,select,$.data,List managed credentials +managed.yaml,/managed/credentials/{credentialId},get-managed-credential,get-managed-credential,get,,Credentials,credentials,credentials,get,select,,Get a managed credential +managed.yaml,/managed/issues,get-managed-issues,get-managed-issues,get,,Issues,issues,issues,list,select,$.data,List managed issues +managed.yaml,/managed/issues/{issueId},get-managed-issue,get-managed-issue,get,,Issues,issues,issues,get,select,,Get a managed issue +managed.yaml,/managed/linode-settings,get-managed-linode-settings,get-managed-linode-settings,get,,Linode settings,linode settings,linode_settings,list,select,$.data,List managed Linode settings +managed.yaml,/managed/credentials/sshkey,get-managed-ssh-key,get-managed-ssh-key,get,,Managed SSH keys,managed ssh keys,managed_ssh_keys,get,select,,Get a managed SSH key +managed.yaml,/managed/services/{serviceId},delete-managed-service,delete-managed-service,delete,,Services,services,services,delete,delete,,Delete a managed service +managed.yaml,/managed/services/{serviceId}/disable,post-disable-managed-service,post-disable-managed-service,post,,Services,services,services,disable,exec,,Disable a managed service +managed.yaml,/managed/services/{serviceId}/enable,post-enable-managed-service,post-enable-managed-service,post,,Services,services,services,enable,exec,,Enable a managed service +managed.yaml,/managed/services,post-managed-service,post-managed-service,post,,Services,services,services,create,insert,,Create a managed service +managed.yaml,/managed/services/{serviceId},put-managed-service,put-managed-service,put,,Services,services,services,update,replace,,Update a managed service +managed.yaml,/managed/services,get-managed-services,get-managed-services,get,,Services,services,services,list,select,$.data,List managed services +managed.yaml,/managed/services/{serviceId},get-managed-service,get-managed-service,get,,Services,services,services,get,select,,Get a managed service +managed.yaml,/managed/linode-settings/{linodeId},put-managed-linode-setting,put-managed-linode-setting,put,,Managed settings,managed settings,settings,update,replace,,Update a Linode's managed settings +managed.yaml,/managed/linode-settings/{linodeId},get-managed-linode-setting,get-managed-linode-setting,get,,Managed settings,managed settings,settings,get,select,,Get a Linode's managed settings +managed.yaml,/managed/stats,get-managed-stats,get-managed-stats,get,,Statistics,statistics,statistics,list,select,$.data,List managed stats +monitor.yaml,/monitor/alert-channels,get-alert-channels,get-alert-channels,get,,Alerts,alerts,alert_channels,list,select,$.data,List alert channels +monitor.yaml,/monitor/services/{serviceType}/alert-definitions/{alertId},delete-alert-definition,delete-alert-definition,delete,,Alerts,alerts,alert_definitions,delete,delete,,Delete an alert definition +monitor.yaml,/monitor/services/{serviceType}/alert-definitions,post-alert-definition-for-service-type,post-alert-definition-for-service-type,post,,Alerts,alerts,alert_definitions,create,insert,,Create an alert definition +monitor.yaml,/monitor/services/{serviceType}/alert-definitions/{alertId},put-alert-definition,put-alert-definition,put,,Alerts,alerts,alert_definitions,update,replace,,Update an alert definition +monitor.yaml,/monitor/alert-definitions,get-alert-definitions,get-alert-definitions,get,,Alerts,alerts,alert_definitions,list,select,$.data,List alert definitions +monitor.yaml,/monitor/services/{serviceType}/alert-definitions,get-alert-definitions-for-service-type,get-alert-definitions-for-service-type,get,,Alerts,alerts,alert_definitions,list_by_service_type,select,$.data,List alert definitions for a service type +monitor.yaml,/monitor/services/{serviceType}/alert-definitions/{alertId},get-alert-definition,get-alert-definition,get,,Alerts,alerts,alert_definitions,get,select,,Get an alert definition +monitor.yaml,/monitor/dashboards,get-dashboards-all,get-dashboards-all,get,,Metrics,metrics,dashboards,list,select,$.data,List dashboards +monitor.yaml,/monitor/dashboards/{dashboardId},get-dashboards-by-id,get-dashboards-by-id,get,,Metrics,metrics,dashboards,get,select,,Get a dashboard +monitor.yaml,/monitor/services/{serviceType}/dashboards,get-dashboards,get-dashboards,get,,Metrics,metrics,dashboards,list_by_service_type,select,$.data,List dashboards for a service type +monitor.yaml,/monitor/services/{serviceType}/metrics,post-read-metric,post-read-metric,post,,Metrics,metrics,metrics,read,exec,,Get an entity's metrics +monitor.yaml,/monitor/services/{serviceType}/token,post-get-token,post-get-token,post,,Metrics,metrics,metrics,create_token,exec,,Create a token for a service type +monitor.yaml,/monitor/services/{serviceType}/metric-definitions,get-monitor-information,get-monitor-information,get,,Metrics,metrics,metrics,list,select,$.data,List metrics for a service type +monitor.yaml,/monitor/services,get-monitor-services,get-monitor-services,get,,Metrics,metrics,monitor_services,list,select,$.data,List supported service types +monitor.yaml,/monitor/services/{serviceType},get-monitor-services-for-service-type,get-monitor-services-for-service-type,get,,Metrics,metrics,monitor_services,list_by_service_type,select,$.data,Get details for a supported service type +networking.yaml,/network-transfer/prices,get-network-transfer-prices,get-network-transfer-prices,get,,Network transfer prices,network transfer prices,network_transfer_prices,list,select,$.data,List network transfer prices +networking.yaml,/networking/firewalls/{firewallId}/devices/{deviceId},delete-firewall-device,delete-firewall-device,delete,,Devices,devices,firewall_devices,delete,delete,,Delete a firewall device +networking.yaml,/networking/firewalls/{firewallId}/devices,post-firewall-device,post-firewall-device,post,,Devices,devices,firewall_devices,create,insert,,Create a firewall device +networking.yaml,/networking/firewalls/{firewallId}/devices,get-firewall-devices,get-firewall-devices,get,,Devices,devices,firewall_devices,list,select,$.data,List firewall devices +networking.yaml,/networking/firewalls/{firewallId}/devices/{deviceId},get-firewall-device,get-firewall-device,get,,Devices,devices,firewall_devices,get,select,,Get a firewall device +networking.yaml,/networking/firewalls/{firewallId}/history,get-firewall-rule-versions,get-firewall-rule-versions,get,,Firewalls,firewalls,firewall_rule_versions,list,select,,List firewall rule versions +networking.yaml,/networking/firewalls/{firewallId}/history/rules/{version},get-firewall-rule-version,get-firewall-rule-version,get,,Firewalls,firewalls,firewall_rule_versions,get,select,,Get a firewall rule version +networking.yaml,/networking/firewalls/{firewallId}/rules,put-firewall-rules,put-firewall-rules,put,,Firewalls,firewalls,firewall_rules,update,replace,,Update firewall rules +networking.yaml,/networking/firewalls/{firewallId}/rules,get-firewall-rules,get-firewall-rules,get,,Firewalls,firewalls,firewall_rules,get,select,,List firewall rules +networking.yaml,/networking/firewalls/settings,put-firewall-settings,put-firewall-settings,put,,Firewall settings,firewall settings,firewall_settings,update,replace,,Update default firewalls +networking.yaml,/networking/firewalls/settings,get-firewall-settings,get-firewall-settings,get,,Firewall settings,firewall settings,firewall_settings,get,select,$.default_firewall_ids,List default firewalls +networking.yaml,/networking/firewalls/{firewallId},delete-firewall,delete-firewall,delete,,Firewalls,firewalls,firewalls,delete,delete,,Delete a firewall +networking.yaml,/networking/firewalls,post-firewalls,post-firewalls,post,,Firewalls,firewalls,firewalls,create,insert,,Create a firewall +networking.yaml,/networking/firewalls/{firewallId},put-firewall,put-firewall,put,,Firewalls,firewalls,firewalls,update,replace,,Update a firewall +networking.yaml,/networking/firewalls,get-firewalls,get-firewalls,get,,Firewalls,firewalls,firewalls,list,select,$.data,List firewalls +networking.yaml,/networking/firewalls/{firewallId},get-firewall,get-firewall,get,,Firewalls,firewalls,firewalls,get,select,,Get a firewall +networking.yaml,/networking/ips,post-allocate-ip,post-allocate-ip,post,,IP addresses,ip addresses,ip_addresses,allocate,exec,,Allocate an IP address +networking.yaml,/networking/ips/assign,post-assign-ips,post-assign-ips,post,,IP addresses,ip addresses,ip_addresses,assign,exec,,Assign IP addresses +networking.yaml,/networking/ips/share,post-share-ips,post-share-ips,post,,IP addresses,ip addresses,ip_addresses,share,exec,,Share IP addresses +networking.yaml,/networking/ips/{address},put-ip,put-ip,put,,IP addresses,ip addresses,ip_addresses,update,replace,,Update an IP address's RDNS +networking.yaml,/networking/ips,get-ips,get-ips,get,,IP addresses,ip addresses,ip_addresses,list,select,$.data,List IP addresses +networking.yaml,/networking/ips/{address},get-ip,get-ip,get,,IP addresses,ip addresses,ip_addresses,get,select,,Get an IP address +networking.yaml,/networking/ipv4/assign,post-assign-ipv4s,post-assign-ipv4s,post,,IPv4 addresses,ipv4 addresses,ipv4_addresses,assign,insert,,Assign IPv4s to Linodes +networking.yaml,/networking/ipv4/share,post-share-ipv4s,post-share-ipv4s,post,,IPv4 addresses,ipv4 addresses,ipv4_addresses,share,insert,,Configure IPv4 sharing +networking.yaml,/networking/ipv6/pools,get-ipv6-pools,get-ipv6-pools,get,,IPv6 pools,ipv6 pools,ipv6_pools,list,select,$.data,List IPv6 pools +networking.yaml,/networking/ipv6/ranges/{range},delete-ipv6-range,delete-ipv6-range,delete,,IPv6 ranges,ipv6 ranges,ipv6_ranges,delete,delete,,Delete an IPv6 range +networking.yaml,/networking/ipv6/ranges,post-ipv6-range,post-ipv6-range,post,,IPv6 ranges,ipv6 ranges,ipv6_ranges,create,insert,,Create an IPv6 range +networking.yaml,/networking/ipv6/ranges,get-ipv6-ranges,get-ipv6-ranges,get,,IPv6 ranges,ipv6 ranges,ipv6_ranges,list,select,$.data,List IPv6 ranges +networking.yaml,/networking/ipv6/ranges/{range},get-ipv6-range,get-ipv6-range,get,,IPv6 ranges,ipv6 ranges,ipv6_ranges,get,select,,Get an IPv6 range +networking.yaml,/networking/firewalls/templates,get-firewall-templates,get-firewall-templates,get,,Templates,templates,templates,list,select,$.data,List firewall templates +networking.yaml,/networking/firewalls/templates/{slug},get-firewall-template,get-firewall-template,get,,Templates,templates,templates,get,select,,Get a firewall template +networking.yaml,/networking/vlans/{regionId}/{label},delete-vlan,delete-vlan,delete,,VLANs,vlans,vlans,delete,delete,,Delete a VLAN +networking.yaml,/networking/vlans,get-vlans,get-vlans,get,,VLANs,vlans,vlans,list,select,$.data,List VLANs +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/configs/{configId},delete-node-balancer-config,delete-node-balancer-config,delete,,Configurations,configurations,configurations,delete,delete,,Delete a config +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/configs,post-node-balancer-config,post-node-balancer-config,post,,Configurations,configurations,configurations,create,insert,,Create a config +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/configs/{configId}/rebuild,post-rebuild-node-balancer-config,post-rebuild-node-balancer-config,post,,Configurations,configurations,configurations,rebuild,exec,,Rebuild a config +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/configs/{configId},put-node-balancer-config,put-node-balancer-config,put,,Configurations,configurations,configurations,update,replace,,Update a config +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/configs,get-node-balancer-configs,get-node-balancer-configs,get,,Configurations,configurations,configurations,list,select,,List configs +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/configs/{configId},get-node-balancer-config,get-node-balancer-config,get,,Configurations,configurations,configurations,get,select,,Get a config +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/firewalls,put-node-balancer-firewalls,put-node-balancer-firewalls,put,,Firewalls,firewalls,firewalls,update,replace,,Update a NodeBalancer's firewalls +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/firewalls,get-node-balancer-firewalls,get-node-balancer-firewalls,get,,Firewalls,firewalls,firewalls,list,select,$.data,List NodeBalancer firewalls +nodebalancers.yaml,/nodebalancers/{nodeBalancerId},delete-node-balancer,delete-node-balancer,delete,,NodeBalancers,node_balancers,node_balancers,delete,delete,,Delete a NodeBalancer +nodebalancers.yaml,/nodebalancers,post-node-balancer,post-node-balancer,post,,NodeBalancers,node_balancers,node_balancers,create,insert,,Create a NodeBalancer +nodebalancers.yaml,/nodebalancers/{nodeBalancerId},put-node-balancer,put-node-balancer,put,,NodeBalancers,node_balancers,node_balancers,update,replace,,Update a NodeBalancer +nodebalancers.yaml,/nodebalancers,get-node-balancers,get-node-balancers,get,,NodeBalancers,node_balancers,node_balancers,list,select,$.data,List NodeBalancers +nodebalancers.yaml,/nodebalancers/{nodeBalancerId},get-node-balancer,get-node-balancer,get,,NodeBalancers,node_balancers,node_balancers,get,select,,Get a NodeBalancer +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId},delete-node-balancer-config-node,delete-node-balancer-config-node,delete,,Nodes,nodes,nodes,delete,delete,,Delete a NodeBalancer's node +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes,post-node-balancer-node,post-node-balancer-node,post,,Nodes,nodes,nodes,create,insert,,Create a node +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId},put-node-balancer-node,put-node-balancer-node,put,,Nodes,nodes,nodes,update,replace,,Update a node +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes,get-node-balancer-config-nodes,get-node-balancer-config-nodes,get,,Nodes,nodes,nodes,list,select,$.data,List nodes +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId},get-node-balancer-node,get-node-balancer-node,get,,Nodes,nodes,nodes,get,select,,Get a NodeBalancer's node +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/stats,get-node-balancer-stats,get-node-balancer-stats,get,,Statistics,statistics,statistics,get,select,,Get NodeBalancer statistics +nodebalancers.yaml,/nodebalancers/types,get-node-balancer-types,get-node-balancer-types,get,,NodeBalancer types,node_balancer types,types,list,select,$.data,List NodeBalancer types +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/vpcs,get-node-balancer-vpcs,get-node-balancer-vpcs,get,,VPCs,vpcs,vpc_configs,list,select,$.data,List VPC configurations +nodebalancers.yaml,/nodebalancers/{nodeBalancerId}/vpcs/{nodeBalancerVpcConfigId},get-node-balancer-vpc-config,get-node-balancer-vpc-config,get,,VPCs,vpcs,vpc_configs,get,select,,Get a VPC configuration +object_storage.yaml,/object-storage/buckets/{regionId}/{bucket}/object-acl,put-object-storage-bucket-acl,put-object-storage-bucket-acl,put,,ACL configurations,acl configurations,acl_configurations,update,replace,,Update an object's ACL configuration +object_storage.yaml,/object-storage/buckets/{regionId}/{bucket}/object-acl,get-object-storage-bucket-acl,get-object-storage-bucket-acl,get,,ACL configurations,acl configurations,acl_configurations,get,select,,Get an Object Storage object ACL configuration +object_storage.yaml,/object-storage/buckets/{regionId}/{bucket}/access,post-object-storage-bucket-access,post-object-storage-bucket-access,post,,Bucket access,bucket access,bucket_access,create,insert,,Allow access to an Object Storage bucket +object_storage.yaml,/object-storage/buckets/{regionId}/{bucket}/access,put-storage-bucket-access,put-storage-bucket-access,put,,Bucket access,bucket access,bucket_access,update,replace,,Update access to an Object Storage bucket +object_storage.yaml,/object-storage/buckets/{regionId}/{bucket}/access,get-object-storage-bucket-access,get-object-storage-bucket-access,get,,Bucket access,bucket access,bucket_access,get,select,,Get Object Storage bucket access +object_storage.yaml,/object-storage/buckets/{regionId}/{bucket}/object-list,get-object-storage-bucket-content,get-object-storage-bucket-content,get,,Bucket contents,bucket contents,bucket_contents,list,select,$.data,List Object Storage bucket contents +object_storage.yaml,/object-storage/buckets/{regionId}/{bucket},delete-object-storage-bucket,delete-object-storage-bucket,delete,,Buckets,buckets,buckets,delete,delete,,Remove an Object Storage bucket +object_storage.yaml,/object-storage/buckets,post-object-storage-bucket,post-object-storage-bucket,post,,Buckets,buckets,buckets,create,insert,,Create an Object Storage bucket +object_storage.yaml,/object-storage/buckets/{regionId}/{bucket}/object-url,post-object-storage-object-url,post-object-storage-object-url,post,,Buckets,buckets,buckets,create_object_url,exec,,Create a URL for an object +object_storage.yaml,/object-storage/buckets,get-object-storage-buckets,get-object-storage-buckets,get,,Buckets,buckets,buckets,list,select,$.data,List Object Storage buckets +object_storage.yaml,/object-storage/buckets/{regionId},get-object-storage-bucketin-cluster,get-object-storage-bucketin-cluster,get,,Buckets,buckets,buckets,list_by_region,select,$.data,List Object Storage buckets per region +object_storage.yaml,/object-storage/buckets/{regionId}/{bucket},get-object-storage-bucket,get-object-storage-bucket,get,,Buckets,buckets,buckets,get,select,,Get an Object Storage bucket +object_storage.yaml,/object-storage/clusters,get-object-storage-clusters,get-object-storage-clusters,get,,Clusters,clusters,clusters,list,select,$.data,List clusters +object_storage.yaml,/object-storage/clusters/{clusterId},get-object-storage-cluster,get-object-storage-cluster,get,,Clusters,clusters,clusters,get,select,,Get a cluster +object_storage.yaml,/object-storage/endpoints,get-object-storage-endpoints,get-object-storage-endpoints,get,,Endpoints,endpoints,endpoints,list,select,$.data,List Object Storage endpoints +object_storage.yaml,/object-storage/keys/{keyId},delete-object-storage-key,delete-object-storage-key,delete,,Keys,keys,keys,delete,delete,,Revoke an Object Storage key +object_storage.yaml,/object-storage/keys,post-object-storage-keys,post-object-storage-keys,post,,Keys,keys,keys,create,insert,,Create an Object Storage key +object_storage.yaml,/object-storage/keys/{keyId},put-object-storage-key,put-object-storage-key,put,,Keys,keys,keys,update,replace,,Update an Object Storage key +object_storage.yaml,/object-storage/keys,get-object-storage-keys,get-object-storage-keys,get,,Keys,keys,keys,list,select,$.data,List Object Storage keys +object_storage.yaml,/object-storage/keys/{keyId},get-object-storage-key,get-object-storage-key,get,,Keys,keys,keys,get,select,,Get an Object Storage key +object_storage.yaml,/object-storage/cancel,post-cancel-object-storage,post-cancel-object-storage,post,,Object Storage,object storage,object_storage,cancel,exec,,Cancel Object Storage +object_storage.yaml,/object-storage/transfer,get-object-storage-transfer,get-object-storage-transfer,get,,Object Storage,object storage,object_storage,get,select,,Get Object Storage transfer data +object_storage.yaml,/object-storage/quotas,get-object-storage-quotas,get-object-storage-quotas,get,,Object Storage quotas,object storage quotas,quotas,list,select,$.data,List Object Storage quotas +object_storage.yaml,/object-storage/quotas/{objQuotaId},get-object-storage-quota,get-object-storage-quota,get,,Object Storage quotas,object storage quotas,quotas,get,select,,Get an Object Storage quota +object_storage.yaml,/object-storage/quotas/{objQuotaId}/usage,get-object-storage-quota-usage,get-object-storage-quota-usage,get,,Object Storage quotas,object storage quotas,quota_usage,get,select,,Get Object Storage quota usage data +object_storage.yaml,/object-storage/buckets/{regionId}/{bucket}/ssl,delete-object-storage-ssl,delete-object-storage-ssl,delete,,TLS/SSL certificates,tls/ssl certificates,ssl_certificates,delete,delete,,Delete an Object Storage TLS/SSL certificate +object_storage.yaml,/object-storage/buckets/{regionId}/{bucket}/ssl,post-object-storage-ssl,post-object-storage-ssl,post,,TLS/SSL certificates,tls/ssl certificates,ssl_certificates,create,insert,,Upload an Object Storage TLS/SSL certificate +object_storage.yaml,/object-storage/buckets/{regionId}/{bucket}/ssl,get-object-storage-ssl,get-object-storage-ssl,get,,TLS/SSL certificates,tls/ssl certificates,ssl_certificates,get,select,,Get an Object Storage TLS/SSL certificate +object_storage.yaml,/object-storage/types,get-object-storage-types,get-object-storage-types,get,,Object Storage types,object storage types,types,list,select,$.data,List Object Storage types +placement.yaml,/placement/groups/{groupId},delete-placement-group,delete-placement-group,delete,,Placement groups,placement groups,placement_groups,delete,delete,,Delete a placement group +placement.yaml,/placement/groups,post-placement-group,post-placement-group,post,,Placement groups,placement groups,placement_groups,create,insert,,Create placement group +placement.yaml,/placement/groups/{groupId}/assign,post-group-add-linode,post-group-add-linode,post,,Placement groups,placement groups,placement_groups,assign,exec,,Assign a placement group +placement.yaml,/placement/groups/{groupId}/unassign,post-group-unassign,post-group-unassign,post,,Placement groups,placement groups,placement_groups,unassign,exec,,Unassign a placement group +placement.yaml,/placement/groups/{groupId},put-placement-group,put-placement-group,put,,Placement groups,placement groups,placement_groups,update,replace,,Update a placement group +placement.yaml,/placement/groups,get-placement-groups,get-placement-groups,get,,Placement groups,placement groups,placement_groups,list,select,$.data,List placement groups +placement.yaml,/placement/groups/{groupId},get-placement-group,get-placement-group,get,,Placement groups,placement groups,placement_groups,get,select,,Get a placement group +profile.yaml,/profile/apps/{appId},delete-profile-app,delete-profile-app,delete,,Apps,apps,apps,delete,delete,,Revoke app access +profile.yaml,/profile/apps,get-profile-apps,get-profile-apps,get,,Apps,apps,apps,list,select,$.data,List authorized apps +profile.yaml,/profile/apps/{appId},get-profile-app,get-profile-app,get,,Apps,apps,apps,get,select,,Get an authorized app +profile.yaml,/profile/devices/{deviceId},delete-trusted-device,delete-trusted-device,delete,,Devices,devices,trusted_devices,delete,delete,,Revoke a trusted device +profile.yaml,/profile/devices,get-devices,get-devices,get,,Devices,devices,trusted_devices,list,select,$.data,List trusted devices +profile.yaml,/profile/devices/{deviceId},get-trusted-device,get-trusted-device,get,,Devices,devices,trusted_devices,get,select,,Get a trusted device +profile.yaml,/profile/grants,get-profile-grants,get-profile-grants,get,,Grants,grants,grants,get,select,,List grants +profile.yaml,/profile/logins,get-profile-logins,get-profile-logins,get,,Logins,logins,logins,list,select,$.data,List logins +profile.yaml,/profile/logins/{loginId},get-profile-login,get-profile-login,get,,Logins,logins,logins,get,select,,Get a profile's login +profile.yaml,/profile/tokens/{tokenId},delete-personal-access-token,delete-personal-access-token,delete,,Personal access tokens,personal access tokens,personal_access_tokens,delete,delete,,Revoke a personal access token +profile.yaml,/profile/tokens,post-personal-access-token,post-personal-access-token,post,,Personal access tokens,personal access tokens,personal_access_tokens,create,insert,,Create a personal access token +profile.yaml,/profile/tokens/{tokenId},put-personal-access-token,put-personal-access-token,put,,Personal access tokens,personal access tokens,personal_access_tokens,update,replace,,Update a personal access token +profile.yaml,/profile/tokens,get-personal-access-tokens,get-personal-access-tokens,get,,Personal access tokens,personal access tokens,personal_access_tokens,list,select,$.data,List personal access tokens +profile.yaml,/profile/tokens/{tokenId},get-personal-access-token,get-personal-access-token,get,,Personal access tokens,personal access tokens,personal_access_tokens,get,select,,Get a personal access token +profile.yaml,/profile/phone-number,delete-profile-phone-number,delete-profile-phone-number,delete,,Phone number,phone number,phone_number,delete,delete,,Delete a phone number +profile.yaml,/profile/phone-number,post-profile-phone-number,post-profile-phone-number,post,,Phone number,phone number,phone_number,send_verification_code,exec,,Send a phone number verification code +profile.yaml,/profile/phone-number/verify,post-profile-phone-number-verify,post-profile-phone-number-verify,post,,Phone number,phone number,phone_number,verify,exec,,Verify a phone number +profile.yaml,/profile/preferences,put-user-preferences,put-user-preferences,put,,Preferences,preferences,profile,update_preferences,exec,,Update a user's preferences +profile.yaml,/profile/preferences,get-user-preferences,get-user-preferences,get,,Preferences,preferences,profile,get_preferences,exec,,Get user preferences +profile.yaml,/profile,put-profile,put-profile,put,,Profile,profile,profile,update,replace,,Update a profile +profile.yaml,/profile,get-profile,get-profile,get,,Profile,profile,profile,get,select,,Get a profile +profile.yaml,/profile/security-questions,post-security-questions,post-security-questions,post,,Security questions,security questions,security_questions,answer,exec,,Answer security questions +profile.yaml,/profile/security-questions,get-security-questions,get-security-questions,get,,Security questions,security questions,security_questions,get,select,$.security_questions,List security questions +profile.yaml,/profile/sshkeys/{sshKeyId},delete-ssh-key,delete-ssh-key,delete,,SSH keys,ssh keys,ssh_keys,delete,delete,,Delete an SSH key +profile.yaml,/profile/sshkeys,post-add-ssh-key,post-add-ssh-key,post,,SSH keys,ssh keys,ssh_keys,create,insert,,Add an SSH key +profile.yaml,/profile/sshkeys/{sshKeyId},put-ssh-key,put-ssh-key,put,,SSH keys,ssh keys,ssh_keys,update,replace,,Update an SSH key +profile.yaml,/profile/sshkeys,get-ssh-keys,get-ssh-keys,get,,SSH keys,ssh keys,ssh_keys,list,select,$.data,List SSH keys +profile.yaml,/profile/sshkeys/{sshKeyId},get-ssh-key,get-ssh-key,get,,SSH keys,ssh keys,ssh_keys,get,select,,Get an SSH key +profile.yaml,/profile/tfa-disable,post-tfa-disable,post-tfa-disable,post,,Two factor authentication,two factor authentication,two_factor_authentication,disable,exec,,Disable two factor authentication +profile.yaml,/profile/tfa-enable,post-tfa-enable,post-tfa-enable,post,,Two factor authentication,two factor authentication,two_factor_authentication,enable,exec,,Create a two factor secret +profile.yaml,/profile/tfa-enable-confirm,post-tfa-confirm,post-tfa-confirm,post,,Two factor authentication,two factor authentication,two_factor_authentication,confirm,exec,,Enable two factor authentication +regions.yaml,/regions,get-regions,get-regions,get,,Regions,regions,regions,list,select,$.data,List regions +regions.yaml,/regions/availability,get-regions-availability,get-regions-availability,get,,Regions,regions,availability,list,select,$.data,List regions' availability +regions.yaml,/regions/{regionId},get-region,get-region,get,,Regions,regions,regions,get,select,,Get a region +regions.yaml,/regions/{regionId}/availability,get-region-availability,get-region-availability,get,,Regions,regions,availability,get,select,,Get a region's availability +support.yaml,/support/tickets/{ticketId}/attachments,post-ticket-attachment,post-ticket-attachment,post,,Attachments,attachments,tickets,upload_attachment,exec,,Create a support ticket attachment +support.yaml,/support/tickets/{ticketId}/replies,post-ticket-reply,post-ticket-reply,post,,Replies,replies,ticket_replies,create,insert,,Create a reply +support.yaml,/support/tickets/{ticketId}/replies,get-ticket-replies,get-ticket-replies,get,,Replies,replies,ticket_replies,list,select,$.data,List replies +support.yaml,/support/tickets,post-ticket,post-ticket,post,,Support tickets,support tickets,tickets,create,insert,,Open a support ticket +support.yaml,/support/tickets/{ticketId}/close,post-close-ticket,post-close-ticket,post,,Support tickets,support tickets,tickets,delete,delete,,Close a support ticket +support.yaml,/support/tickets,get-tickets,get-tickets,get,,Support tickets,support tickets,tickets,list,select,$.data,List support tickets +support.yaml,/support/tickets/{ticketId},get-ticket,get-ticket,get,,Support tickets,support tickets,tickets,get,select,,Get a support ticket +tags.yaml,/tags/{tagLabel},delete-tag,delete-tag,delete,,Tags,tags,tags,delete,delete,,Delete a tag +tags.yaml,/tags,post-tag,post-tag,post,,Tags,tags,tags,create,insert,,Create a tag +tags.yaml,/tags,get-tags,get-tags,get,,Tags,tags,tags,list,select,$.data,List tags +tags.yaml,/tags/{tagLabel},get-tagged-objects,get-tagged-objects,get,,Tags,tags,tagged_objects,list,select,$.data,List tagged objects +volumes.yaml,/volumes/types,get-volume-types,get-volume-types,get,,Volume types,volume types,types,list,select,$.data,List volume types +volumes.yaml,/volumes/{volumeId},delete-volume,delete-volume,delete,,Volumes,volumes,volumes,delete,delete,,Delete a volume +volumes.yaml,/volumes,post-volume,post-volume,post,,Volumes,volumes,volumes,create,insert,,Create a volume +volumes.yaml,/volumes/{volumeId}/attach,post-attach-volume,post-attach-volume,post,,Volumes,volumes,volumes,attach,exec,,Attach a volume +volumes.yaml,/volumes/{volumeId}/clone,post-clone-volume,post-clone-volume,post,,Volumes,volumes,volumes,clone,exec,,Clone a volume +volumes.yaml,/volumes/{volumeId}/detach,post-detach-volume,post-detach-volume,post,,Volumes,volumes,volumes,detach,exec,,Detach a volume +volumes.yaml,/volumes/{volumeId}/resize,post-resize-volume,post-resize-volume,post,,Volumes,volumes,volumes,resize,exec,,Resize a volume +volumes.yaml,/volumes/{volumeId},put-volume,put-volume,put,,Volumes,volumes,volumes,update,replace,,Update a volume +volumes.yaml,/volumes,get-volumes,get-volumes,get,,Volumes,volumes,volumes,list,select,$.data,List volumes +volumes.yaml,/volumes/{volumeId},get-volume,get-volume,get,,Volumes,volumes,volumes,get,select,,Get a volume +vpcs.yaml,/vpcs/ips,get-vpcs-ips,get-vpcs-ips,get,,IP addresses,ip addresses,ip_addresses,list,select,$.data,List VPC IP addresses +vpcs.yaml,/vpcs/{vpcId}/ips,get-vpc-ips,get-vpc-ips,get,,IP addresses,ip addresses,ip_addresses,list_by_vpc,select,$.data,List a VPC's IP addresses +vpcs.yaml,/vpcs/{vpcId}/subnets/{vpcSubnetId},delete-vpc-subnet,delete-vpc-subnet,delete,,VPC subnets,vpc subnets,subnets,delete,delete,,Delete a VPC subnet +vpcs.yaml,/vpcs/{vpcId}/subnets,post-vpc-subnet,post-vpc-subnet,post,,VPC subnets,vpc subnets,subnets,create,insert,,Create a VPC subnet +vpcs.yaml,/vpcs/{vpcId}/subnets/{vpcSubnetId},put-vpc-subnet,put-vpc-subnet,put,,VPC subnets,vpc subnets,subnets,update,replace,,Update a VPC subnet +vpcs.yaml,/vpcs/{vpcId}/subnets,get-vpc-subnets,get-vpc-subnets,get,,VPC subnets,vpc subnets,subnets,list,select,$.data,List VPC subnets +vpcs.yaml,/vpcs/{vpcId}/subnets/{vpcSubnetId},get-vpc-subnet,get-vpc-subnet,get,,VPC subnets,vpc subnets,subnets,get,select,,Get a VPC subnet +vpcs.yaml,/vpcs/{vpcId},delete-vpc,delete-vpc,delete,,VPCs,vpcs,vpcs,delete,delete,,Delete a VPC +vpcs.yaml,/vpcs,post-vpc,post-vpc,post,,VPCs,vpcs,vpcs,create,insert,,Create a VPC +vpcs.yaml,/vpcs/{vpcId},put-vpc,put-vpc,put,,VPCs,vpcs,vpcs,update,replace,,Update a VPC +vpcs.yaml,/vpcs,get-vpcs,get-vpcs,get,,VPCs,vpcs,vpcs,list,select,$.data,List VPCs +vpcs.yaml,/vpcs/{vpcId},get-vpc,get-vpc,get,,VPCs,vpcs,vpcs,get,select,,Get a VPC +images.yaml,/images/sharegroups,post-sharegroups,post_sharegroups,post,,Image sharing,image sharing,sharegroups,create,insert,,Create a share group +images.yaml,/images/sharegroups,get-sharegroups,get_sharegroups,get,,Image sharing,image sharing,sharegroups,list,select,$.data,List share groups +images.yaml,/images/sharegroups/tokens,post-sharegroup-tokens,post_sharegroup_tokens,post,,Image sharing,image sharing,sharegroup_tokens,create,insert,,Create a token +images.yaml,/images/sharegroups/tokens,get-user-tokens,get_user_tokens,get,,Image sharing,image sharing,sharegroup_tokens,list,select,$.data,List a user's tokens +images.yaml,/images/sharegroups/tokens/{tokenUuid},get-sharegroup-token,get_sharegroup_token,get,,Image sharing,image sharing,sharegroup_tokens,get,select,,Get a token +images.yaml,/images/sharegroups/tokens/{tokenUuid},put-sharegroup-token,put_sharegroup_token,put,,Image sharing,image sharing,sharegroup_tokens,update,replace,,Update a token +images.yaml,/images/sharegroups/tokens/{tokenUuid},delete-sharegroup-token,delete_sharegroup_token,delete,,Image sharing,image sharing,sharegroup_tokens,delete,delete,,Delete a token +images.yaml,/images/sharegroups/tokens/{tokenUuid}/sharegroup,get-sharegroup-by-token,get_sharegroup_by_token,get,,Image sharing,image sharing,sharegroups,get_by_token,select,,Get a token's share group +images.yaml,/images/sharegroups/tokens/{tokenUuid}/sharegroup/images,get-sharegroup-images-by-token,get_sharegroup_images_by_token,get,,Image sharing,image sharing,sharegroup_images,list_by_token,select,$.data,List images by token +images.yaml,/images/sharegroups/{sharegroupId},get-sharegroup,get_sharegroup,get,,Image sharing,image sharing,sharegroups,get,select,,Get a share group +images.yaml,/images/sharegroups/{sharegroupId},put-sharegroup,put_sharegroup,put,,Image sharing,image sharing,sharegroups,update,replace,,Update a share group +images.yaml,/images/sharegroups/{sharegroupId},delete-sharegroup,delete_sharegroup,delete,,Image sharing,image sharing,sharegroups,delete,delete,,Delete a share group +images.yaml,/images/sharegroups/{sharegroupId}/images,post-sharegroup-images,post_sharegroup_images,post,,Image sharing,image sharing,sharegroup_images,create,insert,,Add images to a share group +images.yaml,/images/sharegroups/{sharegroupId}/images,get-sharegroup-images,get_sharegroup_images,get,,Image sharing,image sharing,sharegroup_images,list,select,$.data,List shared images by group +images.yaml,/images/sharegroups/{sharegroupId}/images/{imageId},put-sharegroup-imageshare,put_sharegroup_imageshare,put,,Image sharing,image sharing,sharegroup_images,update,replace,,Update a shared image +images.yaml,/images/sharegroups/{sharegroupId}/images/{imageId},delete-sharegroup-imageshare,delete_sharegroup_imageshare,delete,,Image sharing,image sharing,sharegroup_images,delete,delete,,Revoke access to a shared image +images.yaml,/images/sharegroups/{sharegroupId}/members,post-sharegroup-members,post_sharegroup_members,post,,Image sharing,image sharing,sharegroup_members,create,insert,,Add members to a share group +images.yaml,/images/sharegroups/{sharegroupId}/members,get-sharegroup-members,get_sharegroup_members,get,,Image sharing,image sharing,sharegroup_members,list,select,$.data,List members by share group +images.yaml,/images/sharegroups/{sharegroupId}/members/{tokenUuid},get-sharegroup-member-token,get_sharegroup_member_token,get,,Image sharing,image sharing,sharegroup_members,get,select,,Get a membership token +images.yaml,/images/sharegroups/{sharegroupId}/members/{tokenUuid},put-sharegroup-member-token,put_sharegroup_member_token,put,,Image sharing,image sharing,sharegroup_members,update,replace,,Update a membership token +images.yaml,/images/sharegroups/{sharegroupId}/members/{tokenUuid},delete-sharegroup-member-token,delete_sharegroup_member_token,delete,,Image sharing,image sharing,sharegroup_members,delete,delete,,Revoke a membership token +images.yaml,/images/{imageId}/sharegroups,get-images-sharegroups-image,get_images_sharegroups_image,get,,Image sharing,image sharing,sharegroups,list_by_image,select,$.data,List share groups by image +linode.yaml,/linode/instances/{linodeId}/interfaces/history,get-linode-interface-history,get_linode_interface_history,get,,Linode interfaces,linode interfaces,interface_history,list,select,$.data,List a Linode's network interface history +maintenance.yaml,/maintenance/policies,get-maintenance-policies,get_maintenance_policies,get,,Maintenance policies,maintenance policies,policies,list,select,$.data,List maintenance policies diff --git a/provider-dev/config/service-config.json b/provider-dev/config/service-config.json new file mode 100644 index 0000000..e6074c0 --- /dev/null +++ b/provider-dev/config/service-config.json @@ -0,0 +1,17 @@ +{ + "pagination": { + "algorithm": "page_number", + "requestToken": { + "key": "page", + "location": "query" + }, + "responseToken": { + "key": "$.page", + "location": "body" + }, + "responseTerminator": { + "key": "$.pages", + "location": "body" + } + } +} diff --git a/provider-dev/docgen/provider-data/headerContent2.txt b/provider-dev/docgen/provider-data/headerContent2.txt index 0c337c1..16d15c9 100644 --- a/provider-dev/docgen/provider-data/headerContent2.txt +++ b/provider-dev/docgen/provider-data/headerContent2.txt @@ -1,42 +1,188 @@ -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 `linode` provider, run the following command: - -```bash -REGISTRY PULL linode; -``` -> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). - -## Authentication - -The following system environment variables are used for authentication by default: - -- - Linode API token (see How to Create a Linode API Token) - -These variables are sourced at runtime (from the local machine or as CI variables/secrets). - -
- -Using different environment variables - -To use different environment variables (instead of the defaults), use the `--auth` flag of the `stackql` program. For example: - -```bash - -AUTH='{ "linode": { "type": "bearer", "credentialsenvvar": "YOUR_LINODE_TOKEN_VAR" }}' -stackql shell --auth="${AUTH}" - -``` -or using PowerShell: - -```powershell - -$Auth = "{ 'linode': { 'type': 'bearer', 'credentialsenvvar': 'YOUR_LINODE_TOKEN_VAR' }}" -stackql.exe shell --auth=$Auth - -``` -
\ No newline at end of file +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 `linode` provider, run the following command: + +```bash +REGISTRY PULL linode; +``` +> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). + +## Authentication + +The following system environment variables are used for authentication by default: + +- - Linode API token (see How to Create a Linode API Token) + +These variables are sourced at runtime (from the local machine or as CI variables/secrets). + +
+ +Using different environment variables + +To use different environment variables (instead of the defaults), use the `--auth` flag of the `stackql` program. For example: + +```bash + +AUTH='{ "linode": { "type": "bearer", "credentialsenvvar": "YOUR_LINODE_TOKEN_VAR" }}' +stackql shell --auth="${AUTH}" + +``` +or using PowerShell: + +```powershell + +$Auth = "{ 'linode': { 'type': 'bearer', 'credentialsenvvar': 'YOUR_LINODE_TOKEN_VAR' }}" +stackql.exe shell --auth=$Auth + +``` +
+ +## Compute inventory + +All Linode instances on your account, with placement, plan and status: + +```sql +SELECT + id, + label, + region, + type, + status, + ipv4 +FROM linode.linode.instances; +``` + +## Find the right plan and region + +The plan catalog with pricing - `price` is an object, so project the hourly and monthly rates with `json_extract`: + +```sql +SELECT + id, + vcpus, + memory, + disk, + json_extract(price, '$.hourly') as hourly_price, + json_extract(price, '$.monthly') as monthly_price +FROM linode.linode.types +ORDER BY json_extract(price, '$.monthly') +LIMIT 5; +``` + +Regions filtered by capability (for example, only regions where you can run Kubernetes): + +```sql +SELECT + id, + label, + country +FROM linode.regions.regions +WHERE capabilities LIKE '%Kubernetes%'; +``` + +Available images from a given vendor: + +```sql +SELECT + id, + label, + vendor, + size +FROM linode.images.images +WHERE vendor = 'Debian'; +``` + +## Launch a Linode + +`INSERT` columns are the native Linode API body properties (no prefixes). This launches the smallest available plan running Debian 12: + +```sql +INSERT INTO linode.linode.instances ( + label, + region, + type, + image, + root_pass +) +SELECT + 'demo-vm', + 'us-ord', + 'g6-nanode-1', + 'linode/debian12', + ''; +``` + +Watch it come up and grab its address: + +```sql +SELECT id, label, status, ipv4 +FROM linode.linode.instances +WHERE label = 'demo-vm'; +``` + +Lifecycle operations (stop, start, reboot, resize and so on) are `EXEC` methods - named for the action, addressed by the Linode id: + +```sql +EXEC linode.linode.instances.shutdown @linodeId = '12345678'; + +EXEC linode.linode.instances.boot @linodeId = '12345678'; +``` + +Clean it up when you are done: + +```sql +DELETE FROM linode.linode.instances +WHERE linodeId = 12345678; +``` + +## Storage + +Block storage volumes and Object Storage buckets across the account: + +```sql +SELECT + id, + label, + size, + region, + status +FROM linode.volumes.volumes; +``` + +```sql +SELECT + label, + cluster, + size, + objects +FROM linode.object_storage.buckets; +``` + +## Kubernetes + +LKE clusters on the account: + +```sql +SELECT + id, + label, + region, + k8s_version +FROM linode.lke.clusters; +``` + +## Account and billing + +Your account standing at a glance: + +```sql +SELECT + company, + balance, + active_since +FROM linode.account.account; +``` diff --git a/provider-dev/downloaded/openapi.json b/provider-dev/downloaded/openapi.json index 2a87c17..454b834 100644 --- a/provider-dev/downloaded/openapi.json +++ b/provider-dev/downloaded/openapi.json @@ -54,9 +54,9 @@ } }, "eeuid": { - "description": "The child account to look up. You can run the [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) operation to find the applicable account and store its `euuid`.", + "description": "The child account to look up. You can run the [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) operation to find the applicable account and store its `euuid` as your `euuId`.", "in": "path", - "name": "euuid", + "name": "euuId", "required": true, "schema": { "type": "string" @@ -91,18 +91,6 @@ "file-path": "parameters/event-id-path-39255fcf.yaml" } }, - "id-path": { - "description": "The slug for the applicable data center. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the slug for each data center.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/id-path.yaml" - } - }, "invoice-id-path": { "description": "The ID of the Invoice.", "in": "path", @@ -198,6 +186,19 @@ "file-path": "parameters/payment-method-id-path-fb39a844.yaml" } }, + "region-id-path": { + "description": "The abbreviated value (\"slug\") for the applicable data center. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the slug for each data center.", + "in": "path", + "name": "regionId", + "required": true, + "schema": { + "example": "us-iad", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/region-id-path.yaml" + } + }, "token-path-f857f5a2": { "description": "The UUID of the Service Transfer.", "in": "path", @@ -235,6 +236,99 @@ "x-akamai": { "file-path": "parameters/username-path.yaml" } + }, + "x-filter-header": { + "description": "Specifies a JSON object to filter down the results. See [Filtering and sorting](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) for details.", + "in": "header", + "name": "X-Filter", + "required": false, + "schema": { + "description": "Specifies the `X-Filter` header JSON object's filtering and sort criteria.", + "oneOf": [ + { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + { + "additionalProperties": false, + "properties": { + "+and": { + "description": "All conditions need to be true.", + "items": { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + "type": "array" + }, + "+contains": { + "description": "The provided string needs to be in the value.", + "type": "string" + }, + "+gt": { + "description": "The value needs to be greater than the provided number.", + "type": "number" + }, + "+gte": { + "description": "The value needs to be greater than or equal to the provided number.", + "type": "number" + }, + "+lt": { + "description": "The value needs to be less than the provided number.", + "type": "number" + }, + "+lte": { + "description": "The value needs to be less than or equal to the provided number.", + "type": "number" + }, + "+neq": { + "description": "The provided string is left out of the results.", + "type": "string" + }, + "+or": { + "description": "At least one condition needs to be true.", + "items": { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + "type": "array" + }, + "+order": { + "default": "asc", + "description": "Sort in ascending (`asc`) or descending (`desc`) order. This defaults to `asc`. Requires `+order_by`.", + "enum": [ + "asc", + "desc" + ], + "type": "string" + }, + "+order_by": { + "description": "Order results based on the provided attribute. The attribute needs to be filterable.", + "type": "string" + } + }, + "title": "Filter and sort criteria", + "type": "object" + } + ], + "x-akamai": { + "file-path": "schemas/x-filter.yaml" + } + }, + "x-akamai": { + "file-path": "parameters/x-filter-header.yaml" + } } }, "responses": { @@ -726,6 +820,19 @@ "type": "string", "x-linode-cli-display": 2 }, + "maintenance_policy": { + "description": "__Beta__ Defines the default maintenance policy for new Linodes created on this account. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "status": "BETA" + }, + "x-linode-cli-display": 7 + }, "managed": { "description": "__Read-only__ Our 24/7 incident response service. This robust, multi-homed monitoring system distributes monitoring checks to ensure that your servers remain online and available at all times. Linode Managed can monitor any service or software stack reachable over TCP or HTTP. Once you add a service to Linode Managed, we'll monitor it for connectivity, response, and total request time.", "example": true, @@ -1683,7 +1790,7 @@ "description": "Account Invoice object.", "properties": { "billing_source": { - "description": "__Filterable__, __Read-only__ `akamai`: This Invoice was generated according to the terms of an agreement between the customer and Akamai.\n\n`linode`: This Invoice was generated according to the default terms, prices, and discounts.", + "description": "__Filterable__, __Read-only__ The source of service charges for this invoice. A value of `akamai` indicates an invoice generated according to the terms of an agreement between the customer and Akamai. A value of `linode` indicates an invoice was generated according to the default terms, prices, and discounts.", "enum": [ "akamai", "linode" @@ -1813,122 +1920,6 @@ "file-path": "schemas/added-get-invoices-200.yaml" } }, - "added-get-maintenance-200": { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "Information about maintenance affecting an entity.", - "properties": { - "entity": { - "additionalProperties": false, - "description": "The entity being affected by maintenance.", - "properties": { - "id": { - "description": "The id of the entity being affected by maintenance.", - "example": 1234, - "type": "number" - }, - "label": { - "description": "The label of the entity being affected by maintenance.", - "example": "demo-linode", - "type": "string" - }, - "type": { - "description": "The type of entity.", - "example": "Linode", - "type": "string" - }, - "url": { - "description": "The API endpoint prefix to use in combination with the entity id to find specific information about the entity.", - "example": "https://api.linode.com/v4/linode/instances/{linodeId}", - "type": "string" - } - }, - "type": "object" - }, - "reason": { - "description": "The reason maintenance is being performed.", - "example": "This maintenance will allow us to update the BIOS on the host's motherboard.", - "type": "string" - }, - "status": { - "description": "__Filterable__ The maintenance status.\n\nMaintenance progresses in the following sequence: pending, started, then completed.", - "enum": [ - "completed", - "pending", - "started" - ], - "example": "started", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "type": { - "description": "__Filterable__ The type of maintenance.", - "enum": [ - "reboot", - "cold_migration", - "live_migration" - ], - "example": "reboot", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "when": { - "description": "__Filterable__ When the maintenance will begin.\n\n[Filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) with the following parameters:\n\n- A single value in date-time string format (`%Y-%m-%dT%H:%M:%S`), which returns only matches to that value.\n\n- A dictionary containing pairs of inequality operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single date-time string format values (`%Y-%m-%dT%H:%M:%S`). `+or` accepts an array of values that may consist of single date-time strings or dictionaries of inequality operator pairs.", - "example": "2020-07-09T00:01:01", - "format": "date-time", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/maintenance.yaml" - } - }, - "type": "array" - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-get-maintenance-200.yaml" - } - }, "added-get-notifications-200": { "additionalProperties": false, "properties": { @@ -1938,15 +1929,15 @@ "description": "An important, often time-sensitive item related to your account.", "properties": { "body": { - "description": "__Read-only__ A full description of this notification, in markdown format. Not all notifications include a `body`.", + "description": "A full description of this notification, in markdown format. Not all notifications include a `body`. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`.", "example": null, "nullable": true, - "readOnly": true, "type": "string" }, "entity": { "additionalProperties": false, - "description": "__Read-only__ Detailed information about the notification.", + "description": "Detailed information about the notification. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`.", + "nullable": true, "properties": { "id": { "description": "The unique ID of the notification's entity, based on the entity type. Returns `null` for an `account` or `promotion` entity.", @@ -1955,13 +1946,13 @@ "type": "integer" }, "label": { - "description": "The current label for this notification's entity.\n\nReturns `null` for the following entity types:\n\n- `entity_transfer`\n- `promotion`\n- `region`", + "description": "The current name of this notification's entity. Returns `null` for the following `entity` types:\n\n- `entity_transfer`\n\n- `promotion`\n\n- `region`", "example": "Linode not booting.", "nullable": true, "type": "string" }, "type": { - "description": "The type of entity this is related to.", + "description": "__Filterable__ The type of entity this is related to. An entity can be product or service-specific, such as a `linode`, `loadbalancers`, or `nodebalancers`. It can apply to a specific component, such as your `account`, a specific `promotion` your participating in, a data center (`region`) where you're using services, a transfer from one component to another (an `entity_transfer`), a support `ticket` you've opened, or a `volume` on a specific Linode.", "enum": [ "account", "entity_transfer", @@ -1974,7 +1965,13 @@ "volume" ], "example": "ticket", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "url": { "description": "The URL where you can access the notification's object. The URL is relative to the domain where you retrieved the notification. This value is `null` for the `promotion` entity type.", @@ -1983,32 +1980,28 @@ "type": "string" } }, - "readOnly": true, "type": "object" }, "label": { - "description": "__Read-only__ A short description of this notification.", + "description": "A short description of this notification.", "example": "You have an important ticket open!", - "readOnly": true, "type": "string", "x-linode-cli-display": 1 }, "message": { - "description": "__Read-only__ A human-readable description of the notification.", + "description": "A human-readable description of the notification.", "example": "You have an important ticket open!", - "readOnly": true, "type": "string", "x-linode-cli-display": 2 }, "severity": { - "description": "__Read-only__ The severity of this notification. This field determines how prominently the notification is displayed and the color of the display text.", + "description": "The severity of this notification. This field determines how prominently the notification is displayed and the color of the display text.", "enum": [ "minor", "major", "critical" ], "example": "major", - "readOnly": true, "type": "string", "x-linode-cli-color": { "critical": "b", @@ -2018,7 +2011,7 @@ "x-linode-cli-display": 3 }, "type": { - "description": "__Read-only__ The type of notification.", + "description": "__Filterable__ The type of notification.\n\n> \ud83d\udcd8\n>\n> A `security_reboot_maintenance_scheduled` event is a global notice that a Linode needs to be rebooted for QEMU upgrade maintenance. Have a look at [this workflow](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance) for guidance on reboooting your Linodes for this maintenance.", "enum": [ "migration_scheduled", "migration_imminent", @@ -2030,19 +2023,25 @@ "ticket_abuse", "notice", "maintenance", + "maintenance_scheduled", "promotion", + "security_reboot_maintenance_scheduled", "tax_id_verifying" ], "example": "ticket_important", - "readOnly": true, - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "until": { - "description": "__Read-only__ If this notification has a duration, this is when the event or action will complete. For example, if there's scheduled maintenance for one of our systems, `until` represents the end of the maintenance window.", + "description": "If this notification has a duration, this is when the event or action will complete. For example, if there's scheduled maintenance for one of our systems, `until` represents the end of the maintenance window. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`.", "example": null, "format": "date-time", "nullable": true, - "readOnly": true, "type": "string", "x-linode-cli-color": { "None": "black", @@ -2051,11 +2050,10 @@ "x-linode-cli-display": 5 }, "when": { - "description": "__Read-only__ If this notification is for an event in the future, this specifies when the action occurs. For example, if a compute instance needs to migrate in response to a security advisory, this field sets the approximate time the compute instance will be taken offline for migration.", + "description": "If this notification is for an event in the future, this specifies when the action occurs. For example, if a compute instance needs to migrate in response to a security advisory, this field sets the approximate time the compute instance will be taken offline for migration. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`.", "example": null, "format": "date-time", "nullable": true, - "readOnly": true, "type": "string", "x-linode-cli-color": { "None": "black", @@ -2266,26 +2264,38 @@ "description": "Payment object response.", "properties": { "date": { - "description": "__Read-only__ When the Payment was made.", + "description": "__Filterable__, __Read-only__ When the payment was made.", "example": "2018-01-15T00:01:01", "format": "date-time", "readOnly": true, "type": "string", - "x-linode-cli-display": 2 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true }, "id": { - "description": "__Read-only__ The unique ID of the Payment.", + "description": "__Read-only__ The unique ID of the payment.", "example": 123, "readOnly": true, "type": "integer", "x-linode-cli-display": 1 }, "usd": { - "description": "__Read-only__ The amount, in US dollars, of the Payment.", + "description": "__Filterable__, __Read-only__ The amount, in US dollars, of the payment.", "example": "120.50", "readOnly": true, "type": "integer", - "x-linode-cli-display": 3 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true } }, "type": "object", @@ -2550,7 +2560,7 @@ "description": "The type of user on an account. Mostly applies to the use of the parent and child accounts for Akamai partners functionality.", "properties": { "user_type": { - "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractural relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", + "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractual relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", "enum": [ "parent", "child", @@ -2681,7 +2691,7 @@ "description": "The type of user on an account. Mostly applies to the use of the parent and child accounts for Akamai partners functionality.", "properties": { "user_type": { - "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractural relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", + "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractual relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", "enum": [ "parent", "child", @@ -3322,7 +3332,7 @@ "description": "The type of user on an account. Mostly applies to the use of the parent and child accounts for Akamai partners functionality.", "properties": { "user_type": { - "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractural relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", + "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractual relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", "enum": [ "parent", "child", @@ -3995,6 +4005,7 @@ "linode_migrate_datacenter_create", "linode_mutate", "linode_mutate_create", + "linode_poweroff_on", "linode_reboot", "linode_rebuild", "linode_resize", @@ -4110,6 +4121,58 @@ "type": "string", "x-linode-cli-display": 6 }, + "details": { + "additionalProperties": false, + "description": "__Beta__, __Read-only__ Maintenance details for this event, if any.", + "properties": { + "complete_time": { + "description": "The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string" + }, + "description": { + "description": "Differentiates between scheduled and emergency maintenance.", + "enum": [ + "Scheduled Maintenance", + "Emergency Maintenance" + ], + "example": "Scheduled Maintenance", + "type": "string" + }, + "maintenance_policy_set": { + "description": "The maintenance policy the user configures for this event.", + "example": "linode/migrate", + "type": "string" + }, + "not_before": { + "description": "The scheduled start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string" + }, + "source": { + "description": "The origin of the event. A `platform` source indicates that the event was initiated by Akamai. A `user` source indicates that the event was initiated by the user.", + "enum": [ + "platform", + "user" + ], + "example": "platform", + "type": "string" + }, + "start_time": { + "description": "The actual start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string" + } + }, + "readOnly": true, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "duration": { "description": "__Read-only__ The number of seconds that it takes for the event to complete.", "example": 300.56, @@ -4200,12 +4263,6 @@ "readOnly": true, "type": "string" }, - "read": { - "description": "__Read-only__ If a user on your account has [marked an event as read](https://techdocs.akamai.com/linode-api/reference/post-event-read).", - "example": true, - "readOnly": true, - "type": "boolean" - }, "secondary_entity": { "additionalProperties": false, "description": "__Read-only__ Detailed information about the event's secondary entity, if applicable.", @@ -4374,6 +4431,7 @@ "linode_migrate_datacenter_create", "linode_mutate", "linode_mutate_create", + "linode_poweroff_on", "linode_reboot", "linode_rebuild", "linode_resize", @@ -4499,6 +4557,93 @@ "x-linode-cli-display": 6, "x-linode-filterable": true }, + "details": { + "additionalProperties": false, + "description": "__Beta__ Maintenance details for this event, if any.", + "properties": { + "complete_time": { + "description": "__Filterable__ The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "description": { + "description": "__Filterable__ Differentiates between scheduled and emergency maintenance.", + "enum": [ + "Scheduled Maintenance", + "Emergency Maintenance" + ], + "example": "Scheduled Maintenance", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "maintenance_policy_set": { + "description": "__Filterable__ The maintenance policy the user configures for this event.", + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "not_before": { + "description": "__Filterable__ The scheduled start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "source": { + "description": "__Filterable__ The origin of the event. A `platform` source indicates that the event was initiated by Akamai. A `user` source indicates that the event was initiated by the user.", + "enum": [ + "platform", + "user" + ], + "example": "platform", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "start_time": { + "description": "__Filterable__ The actual start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + } + }, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "duration": { "description": "The number of seconds that it takes for the event to complete.", "example": 300.56, @@ -4601,17 +4746,6 @@ "nullable": true, "type": "string" }, - "read": { - "description": "__Filterable__ If a user on your account has [marked an event as read](https://techdocs.akamai.com/linode-api/reference/post-event-read).", - "example": true, - "type": "boolean", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, "secondary_entity": { "additionalProperties": false, "description": "Detailed information about the event's secondary entity, if applicable.", @@ -4647,17 +4781,21 @@ "status": { "description": "The current status of this event.", "enum": [ + "completed", "failed", "finished", + "in_progress", "notification", "scheduled", "started" ], "type": "string", "x-linode-cli-color": { + "completed": "green", "default_": "white", "failed": "red", "finished": "green", + "in_progress": "yellow", "started": "yellow" }, "x-linode-cli-display": 8 @@ -4701,6 +4839,202 @@ "file-path": "schemas/events.yaml" } }, + "get-maintenance-200": { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "description": "Information about maintenance affecting an entity.", + "properties": { + "complete_time": { + "description": "__Beta__, __Filterable__ The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ], + "status": "BETA" + }, + "x-linode-filterable": true + }, + "description": { + "description": "__Beta__ Differentiates between scheduled and emergency maintenance.", + "enum": [ + "Scheduled Maintenance", + "Emergency Maintenance" + ], + "example": "Scheduled Maintenance", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, + "entity": { + "additionalProperties": false, + "description": "The entity affected by the maintenance.", + "properties": { + "id": { + "description": "The unique identifier of the entity targeted by the maintenance.", + "example": 1234, + "type": "number" + }, + "label": { + "description": "The name of the entity targeted by the maintenance.", + "example": "demo-linode", + "type": "string" + }, + "type": { + "description": "The type of entity.", + "example": "Linode", + "type": "string" + }, + "url": { + "description": "A combination of the API operation prefix and the entity's `id` that can be used to review the entity.", + "example": "https://api.linode.com/v4/linode/instances/{linodeId}", + "type": "string" + } + }, + "type": "object" + }, + "maintenance_policy_set": { + "description": "__Beta__, __Filterable__ The maintenance policy configured by the user.", + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ], + "status": "BETA" + }, + "x-linode-filterable": true + }, + "not_before": { + "description": "__Beta__, __Filterable__ The earliest time when the maintenance can start. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ], + "status": "BETA" + }, + "x-linode-filterable": true + }, + "reason": { + "description": "The reason maintenance is being performed.", + "example": "This maintenance will allow us to update the BIOS on the host's motherboard.", + "type": "string" + }, + "source": { + "description": "__Beta__ The origin of the maintenance. A `platform` source indicates that the maintenance was initiated by Akamai. A `user` source indicates that the maintenance was initiated by the user.", + "enum": [ + "platform", + "user" + ], + "example": "platform", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, + "start_time": { + "description": "__Beta__, __Filterable__ The time the maintenance started. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ], + "status": "BETA" + }, + "x-linode-filterable": true + }, + "status": { + "description": "__Filterable__ The maintenance status. Maintenance progress follows the sequence `pending`, `scheduled`, `started`, and `completed`. A `scheduled` status is unique to Linodes that require a reboot for [QEMU maintenance](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance).", + "enum": [ + "pending", + "scheduled", + "started", + "in-progress", + "completed", + "canceled" + ], + "example": "started", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "type": { + "description": "__Filterable__ The type of maintenance.", + "enum": [ + "reboot", + "cold_migration", + "live_migration", + "migrate", + "power_off_on" + ], + "example": "reboot", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "when": { + "description": "__Filterable__ The start time for the maintenance. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (yyyy-mm-ddThh:mm:ss), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/maintenance.yaml" + } + }, + "type": "array" + }, + "page": { + "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "pages": { + "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "results": { + "description": "__Read-only__ The total number of results.", + "example": 1, + "readOnly": true, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/get-maintenance-200.yaml" + } + }, "google-pay-data": { "additionalProperties": false, "description": "Google Pay information.", @@ -5215,7 +5549,7 @@ "description": "Account Invoice object.", "properties": { "billing_source": { - "description": "__Filterable__, __Read-only__ `akamai`: This Invoice was generated according to the terms of an agreement between the customer and Akamai.\n\n`linode`: This Invoice was generated according to the default terms, prices, and discounts.", + "description": "__Filterable__, __Read-only__ The source of service charges for this invoice. A value of `akamai` indicates an invoice generated according to the terms of an agreement between the customer and Akamai. A value of `linode` indicates an invoice was generated according to the default terms, prices, and discounts.", "enum": [ "akamai", "linode" @@ -5484,17 +5818,42 @@ "additionalProperties": false, "description": "Information about maintenance affecting an entity.", "properties": { + "complete_time": { + "description": "__Beta__, __Filterable__ The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ], + "status": "BETA" + }, + "x-linode-filterable": true + }, + "description": { + "description": "__Beta__ Differentiates between scheduled and emergency maintenance.", + "enum": [ + "Scheduled Maintenance", + "Emergency Maintenance" + ], + "example": "Scheduled Maintenance", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, "entity": { "additionalProperties": false, - "description": "The entity being affected by maintenance.", + "description": "The entity affected by the maintenance.", "properties": { "id": { - "description": "The id of the entity being affected by maintenance.", + "description": "The unique identifier of the entity targeted by the maintenance.", "example": 1234, "type": "number" }, "label": { - "description": "The label of the entity being affected by maintenance.", + "description": "The name of the entity targeted by the maintenance.", "example": "demo-linode", "type": "string" }, @@ -5504,24 +5863,77 @@ "type": "string" }, "url": { - "description": "The API endpoint prefix to use in combination with the entity id to find specific information about the entity.", + "description": "A combination of the API operation prefix and the entity's `id` that can be used to review the entity.", "example": "https://api.linode.com/v4/linode/instances/{linodeId}", "type": "string" } }, "type": "object" }, + "maintenance_policy_set": { + "description": "__Beta__, __Filterable__ The maintenance policy configured by the user.", + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ], + "status": "BETA" + }, + "x-linode-filterable": true + }, + "not_before": { + "description": "__Beta__, __Filterable__ The earliest time when the maintenance can start. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ], + "status": "BETA" + }, + "x-linode-filterable": true + }, "reason": { "description": "The reason maintenance is being performed.", "example": "This maintenance will allow us to update the BIOS on the host's motherboard.", "type": "string" }, + "source": { + "description": "__Beta__ The origin of the maintenance. A `platform` source indicates that the maintenance was initiated by Akamai. A `user` source indicates that the maintenance was initiated by the user.", + "enum": [ + "platform", + "user" + ], + "example": "platform", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, + "start_time": { + "description": "__Beta__, __Filterable__ The time the maintenance started. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ], + "status": "BETA" + }, + "x-linode-filterable": true + }, "status": { - "description": "__Filterable__ The maintenance status.\n\nMaintenance progresses in the following sequence: pending, started, then completed.", + "description": "__Filterable__ The maintenance status. Maintenance progress follows the sequence `pending`, `scheduled`, `started`, and `completed`. A `scheduled` status is unique to Linodes that require a reboot for [QEMU maintenance](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance).", "enum": [ - "completed", "pending", - "started" + "scheduled", + "started", + "in-progress", + "completed", + "canceled" ], "example": "started", "type": "string", @@ -5537,7 +5949,9 @@ "enum": [ "reboot", "cold_migration", - "live_migration" + "live_migration", + "migrate", + "power_off_on" ], "example": "reboot", "type": "string", @@ -5549,7 +5963,7 @@ "x-linode-filterable": true }, "when": { - "description": "__Filterable__ When the maintenance will begin.\n\n[Filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) with the following parameters:\n\n- A single value in date-time string format (`%Y-%m-%dT%H:%M:%S`), which returns only matches to that value.\n\n- A dictionary containing pairs of inequality operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single date-time string format values (`%Y-%m-%dT%H:%M:%S`). `+or` accepts an array of values that may consist of single date-time strings or dictionaries of inequality operator pairs.", + "description": "__Filterable__ The start time for the maintenance. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (yyyy-mm-ddThh:mm:ss), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", "example": "2020-07-09T00:01:01", "format": "date-time", "type": "string", @@ -5571,15 +5985,15 @@ "description": "An important, often time-sensitive item related to your account.", "properties": { "body": { - "description": "__Read-only__ A full description of this notification, in markdown format. Not all notifications include a `body`.", + "description": "A full description of this notification, in markdown format. Not all notifications include a `body`. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`.", "example": null, "nullable": true, - "readOnly": true, "type": "string" }, "entity": { "additionalProperties": false, - "description": "__Read-only__ Detailed information about the notification.", + "description": "Detailed information about the notification. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`.", + "nullable": true, "properties": { "id": { "description": "The unique ID of the notification's entity, based on the entity type. Returns `null` for an `account` or `promotion` entity.", @@ -5588,13 +6002,13 @@ "type": "integer" }, "label": { - "description": "The current label for this notification's entity.\n\nReturns `null` for the following entity types:\n\n- `entity_transfer`\n- `promotion`\n- `region`", + "description": "The current name of this notification's entity. Returns `null` for the following `entity` types:\n\n- `entity_transfer`\n\n- `promotion`\n\n- `region`", "example": "Linode not booting.", "nullable": true, "type": "string" }, "type": { - "description": "The type of entity this is related to.", + "description": "__Filterable__ The type of entity this is related to. An entity can be product or service-specific, such as a `linode`, `loadbalancers`, or `nodebalancers`. It can apply to a specific component, such as your `account`, a specific `promotion` your participating in, a data center (`region`) where you're using services, a transfer from one component to another (an `entity_transfer`), a support `ticket` you've opened, or a `volume` on a specific Linode.", "enum": [ "account", "entity_transfer", @@ -5607,7 +6021,13 @@ "volume" ], "example": "ticket", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "url": { "description": "The URL where you can access the notification's object. The URL is relative to the domain where you retrieved the notification. This value is `null` for the `promotion` entity type.", @@ -5616,32 +6036,28 @@ "type": "string" } }, - "readOnly": true, "type": "object" }, "label": { - "description": "__Read-only__ A short description of this notification.", + "description": "A short description of this notification.", "example": "You have an important ticket open!", - "readOnly": true, "type": "string", "x-linode-cli-display": 1 }, "message": { - "description": "__Read-only__ A human-readable description of the notification.", + "description": "A human-readable description of the notification.", "example": "You have an important ticket open!", - "readOnly": true, "type": "string", "x-linode-cli-display": 2 }, "severity": { - "description": "__Read-only__ The severity of this notification. This field determines how prominently the notification is displayed and the color of the display text.", + "description": "The severity of this notification. This field determines how prominently the notification is displayed and the color of the display text.", "enum": [ "minor", "major", "critical" ], "example": "major", - "readOnly": true, "type": "string", "x-linode-cli-color": { "critical": "b", @@ -5651,7 +6067,7 @@ "x-linode-cli-display": 3 }, "type": { - "description": "__Read-only__ The type of notification.", + "description": "__Filterable__ The type of notification.\n\n> \ud83d\udcd8\n>\n> A `security_reboot_maintenance_scheduled` event is a global notice that a Linode needs to be rebooted for QEMU upgrade maintenance. Have a look at [this workflow](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance) for guidance on reboooting your Linodes for this maintenance.", "enum": [ "migration_scheduled", "migration_imminent", @@ -5663,19 +6079,25 @@ "ticket_abuse", "notice", "maintenance", + "maintenance_scheduled", "promotion", + "security_reboot_maintenance_scheduled", "tax_id_verifying" ], "example": "ticket_important", - "readOnly": true, - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "until": { - "description": "__Read-only__ If this notification has a duration, this is when the event or action will complete. For example, if there's scheduled maintenance for one of our systems, `until` represents the end of the maintenance window.", + "description": "If this notification has a duration, this is when the event or action will complete. For example, if there's scheduled maintenance for one of our systems, `until` represents the end of the maintenance window. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`.", "example": null, "format": "date-time", "nullable": true, - "readOnly": true, "type": "string", "x-linode-cli-color": { "None": "black", @@ -5684,11 +6106,10 @@ "x-linode-cli-display": 5 }, "when": { - "description": "__Read-only__ If this notification is for an event in the future, this specifies when the action occurs. For example, if a compute instance needs to migrate in response to a security advisory, this field sets the approximate time the compute instance will be taken offline for migration.", + "description": "If this notification is for an event in the future, this specifies when the action occurs. For example, if a compute instance needs to migrate in response to a security advisory, this field sets the approximate time the compute instance will be taken offline for migration. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`.", "example": null, "format": "date-time", "nullable": true, - "readOnly": true, "type": "string", "x-linode-cli-color": { "None": "black", @@ -5828,26 +6249,38 @@ "description": "Payment object response.", "properties": { "date": { - "description": "__Read-only__ When the Payment was made.", + "description": "__Filterable__, __Read-only__ When the payment was made.", "example": "2018-01-15T00:01:01", "format": "date-time", "readOnly": true, "type": "string", - "x-linode-cli-display": 2 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true }, "id": { - "description": "__Read-only__ The unique ID of the Payment.", + "description": "__Read-only__ The unique ID of the payment.", "example": 123, "readOnly": true, "type": "integer", "x-linode-cli-display": 1 }, "usd": { - "description": "__Read-only__ The amount, in US dollars, of the Payment.", + "description": "__Filterable__, __Read-only__ The amount, in US dollars, of the payment.", "example": "120.50", "readOnly": true, "type": "integer", - "x-linode-cli-display": 3 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true } }, "type": "object", @@ -6506,7 +6939,7 @@ "description": "The type of user on an account. Mostly applies to the use of the parent and child accounts for Akamai partners functionality.", "properties": { "user_type": { - "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractural relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", + "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractual relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", "enum": [ "parent", "child", @@ -6542,6 +6975,98 @@ "x-akamai": { "file-path": "schemas/warning-object.yaml" } + }, + "x-filter": { + "description": "Specifies the `X-Filter` header JSON object's filtering and sort criteria.", + "oneOf": [ + { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + { + "additionalProperties": false, + "properties": { + "+and": { + "description": "All conditions need to be true.", + "items": { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + "type": "array" + }, + "+contains": { + "description": "The provided string needs to be in the value.", + "type": "string" + }, + "+gt": { + "description": "The value needs to be greater than the provided number.", + "type": "number" + }, + "+gte": { + "description": "The value needs to be greater than or equal to the provided number.", + "type": "number" + }, + "+lt": { + "description": "The value needs to be less than the provided number.", + "type": "number" + }, + "+lte": { + "description": "The value needs to be less than or equal to the provided number.", + "type": "number" + }, + "+neq": { + "description": "The provided string is left out of the results.", + "type": "string" + }, + "+or": { + "description": "At least one condition needs to be true.", + "items": { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + "type": "array" + }, + "+order": { + "default": "asc", + "description": "Sort in ascending (`asc`) or descending (`desc`) order. This defaults to `asc`. Requires `+order_by`.", + "enum": [ + "asc", + "desc" + ], + "type": "string" + }, + "+order_by": { + "description": "Order results based on the provided attribute. The attribute needs to be filterable.", + "type": "string" + } + }, + "title": "Filter and sort criteria", + "type": "object" + } + ], + "x-akamai": { + "file-path": "schemas/x-filter.yaml" + } + }, + "x-filter-criteria": { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } } }, "securitySchemes": { @@ -6607,7 +7132,7 @@ "url": "https://www.apache.org/licenses/LICENSE-2.0.html" }, "title": "Akamai: Linode API", - "version": "4.208.1" + "version": "4.215.0" }, "openapi": "3.0.1", "paths": { @@ -8015,7 +8540,7 @@ }, "x-linode-cli-command": "account" }, - "/{apiVersion}/account/availability/{id}": { + "/{apiVersion}/account/availability/{regionId}": { "get": { "description": "View the available services for your account, in a specific region.\n\n> \ud83d\udcd8\n>\n> Only account users with _unrestricted_ access can run this operation.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli account get-account-availability us-east\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { @@ -8123,9 +8648,9 @@ ] } ], - "summary": "Get a region's service availability", + "summary": "Get available services for a region", "tags": [ - "Account" + "Account availability" ], "x-akamai": { "tabs": [ @@ -8163,22 +8688,23 @@ } }, { - "description": "The slug for the applicable data center. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the slug for each data center.", - "example": "{{id}}", + "description": "The abbreviated value (\"slug\") for the applicable data center. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the slug for each data center.", + "example": "{{regionId}}", "in": "path", - "name": "id", + "name": "regionId", "required": true, "schema": { + "example": "us-iad", "type": "string" }, "x-akamai": { - "file-path": "parameters/id-path.yaml" + "file-path": "parameters/region-id-path.yaml" } } ], "x-akamai": { "file-path": "paths/data-center.yaml", - "path-info": "/{apiVersion}/account/availability/{id}" + "path-info": "/{apiVersion}/account/availability/{regionId}" }, "x-linode-cli-command": "account" }, @@ -9414,9 +9940,9 @@ }, "x-linode-cli-command": "child-account" }, - "/{apiVersion}/account/child-accounts/{euuid}": { + "/{apiVersion}/account/child-accounts/{euuId}": { "get": { - "description": "View a specific child account based on its `euuid`. See [Parent and Child Accounts for Akamai Partners](https://www.linode.com/docs/guides/parent-child-accounts/) for details on these accounts.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by an unrestricted user, or restricted user with the `child_account_access` grant.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli child-account view A1BC2DEF-34GH-567I-J890KLMN12O34P56\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n child_account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "View a specific child account. See [Parent and Child Accounts for Akamai Partners](https://www.linode.com/docs/guides/parent-child-accounts/) for details on these accounts.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by an unrestricted user, or restricted user with the `child_account_access` grant.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli child-account view A1BC2DEF-34GH-567I-J890KLMN12O34P56\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n child_account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-child-account" @@ -9649,7 +10175,7 @@ } } }, - "description": "Returns the child-level account for a specified `euuid`." + "description": "Returns the specified child-level account." }, "default": { "content": { @@ -9740,10 +10266,10 @@ } }, { - "description": "The child account to look up. You can run the [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) operation to find the applicable account and store its `euuid`.", - "example": "{{euuid}}", + "description": "The child account to look up. You can run the [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) operation to find the applicable account and store its `euuid` as your `euuId`.", + "example": "{{euuId}}", "in": "path", - "name": "euuid", + "name": "euuId", "required": true, "schema": { "type": "string" @@ -9755,13 +10281,13 @@ ], "x-akamai": { "file-path": "paths/child-account.yaml", - "path-info": "/{apiVersion}/account/child-accounts/{euuid}" + "path-info": "/{apiVersion}/account/child-accounts/{euuId}" }, "x-linode-cli-command": "child-account" }, - "/{apiVersion}/account/child-accounts/{euuid}/token": { + "/{apiVersion}/account/child-accounts/{euuId}/token": { "post": { - "description": "Create a short-lived bearer token for a parent user on a child account, using the `euuid` of that child account. In the context of the API, a parent user on a child account is referred to as a \"proxy user.\" When Akamai provisions your parent-child account environment, a proxy user is automatically set in the child account. It follows a specific naming convention:\n\n _\n\n> \ud83d\udcd8\n>\n> These variables only use the first 15 and 16 characters of these values, respectively.\n\nThe token lets a parent account run API operations through the proxy user, as if they are a child user in the child account.\n\nThese points apply to the use of this operation:\n\n- To create a token, a parent account user needs the `child_account_access` grant. This lets them use the proxy user on the child account. You can run [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) on a parent account user to check its `child_account_access` setting. To add this access, you can [update](https://techdocs.akamai.com/linode-api/reference/put-user-grants) the parent account user.\n\n- The created token inherits the permissions of the proxy user. It will never have less.\n\n- The API returns the raw token in the response. You can't get it again, so be sure to store it.\n\nExample workflow:\n\n1. [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) and store the `euuid` for the applicable one.\n2. Run this operation and store the `token` that's created for the proxy user.\n3. As a parent account user with access to the proxy user in the child account, use this `token` to authenticate API operations, as if you were a child user.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli child-account create A1BC2DEF-34GH-567I-J890KLMN12O34P56\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n child_account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Create a short-lived bearer token for a parent user on a specific child account. In the context of the API, a parent user on a child account is referred to as a \"proxy user.\" When Akamai provisions your parent-child account environment, a proxy user is automatically set in the child account. It follows a specific naming convention:\n\n _\n\n> \ud83d\udcd8\n>\n> These variables only use the first 15 and 16 characters of these values, respectively.\n\nThe token lets a parent account run API operations through the proxy user, as if they are a child user in the child account.\n\nThese points apply to the use of this operation:\n\n- To create a token, a parent account user needs the `child_account_access` grant. This lets them use the proxy user on the child account. You can run [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) on a parent account user to check its `child_account_access` setting. To add this access, you can [update](https://techdocs.akamai.com/linode-api/reference/put-user-grants) the parent account user.\n\n- The created token inherits the permissions of the proxy user. It will never have less.\n\n- The API returns the raw token in the response. You can't get it again, so be sure to store it.\n\nExample workflow:\n\n1. [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) and store the `euuid` for the applicable one.\n2. Run this operation and store the `token` that's created for the proxy user.\n3. As a parent account user with access to the proxy user in the child account, use this `token` to authenticate API operations, as if you were a child user.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli child-account create A1BC2DEF-34GH-567I-J890KLMN12O34P56\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n child_account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-child-account-token" @@ -9935,10 +10461,10 @@ } }, { - "description": "The child account to look up. You can run the [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) operation to find the applicable account and store its `euuid`.", - "example": "{{euuid}}", + "description": "The child account to look up. You can run the [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) operation to find the applicable account and store its `euuid` as your `euuId`.", + "example": "{{euuId}}", "in": "path", - "name": "euuid", + "name": "euuId", "required": true, "schema": { "type": "string" @@ -9950,7 +10476,7 @@ ], "x-akamai": { "file-path": "paths/child-account-token.yaml", - "path-info": "/{apiVersion}/account/child-accounts/{euuid}/token" + "path-info": "/{apiVersion}/account/child-accounts/{euuId}/token" }, "x-linode-cli-command": "child-account" }, @@ -11077,6 +11603,100 @@ }, "operationId": "get-events", "parameters": [ + { + "description": "Specifies a JSON object to filter down the results. See [Filtering and sorting](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) for details.", + "example": "{{X-Filter}}", + "in": "header", + "name": "X-Filter", + "required": false, + "schema": { + "description": "Specifies the `X-Filter` header JSON object's filtering and sort criteria.", + "oneOf": [ + { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + { + "additionalProperties": false, + "properties": { + "+and": { + "description": "All conditions need to be true.", + "items": { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + "type": "array" + }, + "+contains": { + "description": "The provided string needs to be in the value.", + "type": "string" + }, + "+gt": { + "description": "The value needs to be greater than the provided number.", + "type": "number" + }, + "+gte": { + "description": "The value needs to be greater than or equal to the provided number.", + "type": "number" + }, + "+lt": { + "description": "The value needs to be less than the provided number.", + "type": "number" + }, + "+lte": { + "description": "The value needs to be less than or equal to the provided number.", + "type": "number" + }, + "+neq": { + "description": "The provided string is left out of the results.", + "type": "string" + }, + "+or": { + "description": "At least one condition needs to be true.", + "items": { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + "type": "array" + }, + "+order": { + "default": "asc", + "description": "Sort in ascending (`asc`) or descending (`desc`) order. This defaults to `asc`. Requires `+order_by`.", + "enum": [ + "asc", + "desc" + ], + "type": "string" + }, + "+order_by": { + "description": "Order results based on the provided attribute. The attribute needs to be filterable.", + "type": "string" + } + }, + "title": "Filter and sort criteria", + "type": "object" + } + ], + "x-akamai": { + "file-path": "schemas/x-filter.yaml" + } + }, + "x-akamai": { + "file-path": "parameters/x-filter-header.yaml" + } + }, { "description": "The page of a collection to return.", "example": "{{page}}", @@ -11130,7 +11750,6 @@ "message": "None", "percent_complete": null, "rate": null, - "read": true, "secondary_entity": { "id": "linode/debian9", "label": "linode1234", @@ -11240,6 +11859,7 @@ "linode_migrate_datacenter_create", "linode_mutate", "linode_mutate_create", + "linode_poweroff_on", "linode_reboot", "linode_rebuild", "linode_resize", @@ -11365,6 +11985,93 @@ "x-linode-cli-display": 6, "x-linode-filterable": true }, + "details": { + "additionalProperties": false, + "description": "__Beta__ Maintenance details for this event, if any.", + "properties": { + "complete_time": { + "description": "__Filterable__ The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "description": { + "description": "__Filterable__ Differentiates between scheduled and emergency maintenance.", + "enum": [ + "Scheduled Maintenance", + "Emergency Maintenance" + ], + "example": "Scheduled Maintenance", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "maintenance_policy_set": { + "description": "__Filterable__ The maintenance policy the user configures for this event.", + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "not_before": { + "description": "__Filterable__ The scheduled start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "source": { + "description": "__Filterable__ The origin of the event. A `platform` source indicates that the event was initiated by Akamai. A `user` source indicates that the event was initiated by the user.", + "enum": [ + "platform", + "user" + ], + "example": "platform", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "start_time": { + "description": "__Filterable__ The actual start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + } + }, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "duration": { "description": "The number of seconds that it takes for the event to complete.", "example": 300.56, @@ -11467,17 +12174,6 @@ "nullable": true, "type": "string" }, - "read": { - "description": "__Filterable__ If a user on your account has [marked an event as read](https://techdocs.akamai.com/linode-api/reference/post-event-read).", - "example": true, - "type": "boolean", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, "secondary_entity": { "additionalProperties": false, "description": "Detailed information about the event's secondary entity, if applicable.", @@ -11513,17 +12209,21 @@ "status": { "description": "The current status of this event.", "enum": [ + "completed", "failed", "finished", + "in_progress", "notification", "scheduled", "started" ], "type": "string", "x-linode-cli-color": { + "completed": "green", "default_": "white", "failed": "red", "finished": "green", + "in_progress": "yellow", "started": "yellow" }, "x-linode-cli-display": 8 @@ -11693,7 +12393,6 @@ "message": "None", "percent_complete": null, "rate": null, - "read": true, "secondary_entity": { "id": "linode/debian9", "label": "linode1234", @@ -11795,6 +12494,7 @@ "linode_migrate_datacenter_create", "linode_mutate", "linode_mutate_create", + "linode_poweroff_on", "linode_reboot", "linode_rebuild", "linode_resize", @@ -11910,6 +12610,58 @@ "type": "string", "x-linode-cli-display": 6 }, + "details": { + "additionalProperties": false, + "description": "__Beta__, __Read-only__ Maintenance details for this event, if any.", + "properties": { + "complete_time": { + "description": "The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string" + }, + "description": { + "description": "Differentiates between scheduled and emergency maintenance.", + "enum": [ + "Scheduled Maintenance", + "Emergency Maintenance" + ], + "example": "Scheduled Maintenance", + "type": "string" + }, + "maintenance_policy_set": { + "description": "The maintenance policy the user configures for this event.", + "example": "linode/migrate", + "type": "string" + }, + "not_before": { + "description": "The scheduled start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string" + }, + "source": { + "description": "The origin of the event. A `platform` source indicates that the event was initiated by Akamai. A `user` source indicates that the event was initiated by the user.", + "enum": [ + "platform", + "user" + ], + "example": "platform", + "type": "string" + }, + "start_time": { + "description": "The actual start time for the event. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and individual ISO 8601 timestamps. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string" + } + }, + "readOnly": true, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "duration": { "description": "__Read-only__ The number of seconds that it takes for the event to complete.", "example": 300.56, @@ -12000,12 +12752,6 @@ "readOnly": true, "type": "string" }, - "read": { - "description": "__Read-only__ If a user on your account has [marked an event as read](https://techdocs.akamai.com/linode-api/reference/post-event-read).", - "example": true, - "readOnly": true, - "type": "boolean" - }, "secondary_entity": { "additionalProperties": false, "description": "__Read-only__ Detailed information about the event's secondary entity, if applicable.", @@ -12328,13 +13074,107 @@ }, "/{apiVersion}/account/invoices": { "get": { - "description": "Returns a paginated list of Invoices against your Account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli account invoices-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of invoices against your account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli account invoices-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-invoices" }, "operationId": "get-invoices", "parameters": [ + { + "description": "Specifies a JSON object to filter down the results. See [Filtering and sorting](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) for details.", + "example": "{{X-Filter}}", + "in": "header", + "name": "X-Filter", + "required": false, + "schema": { + "description": "Specifies the `X-Filter` header JSON object's filtering and sort criteria.", + "oneOf": [ + { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + { + "additionalProperties": false, + "properties": { + "+and": { + "description": "All conditions need to be true.", + "items": { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + "type": "array" + }, + "+contains": { + "description": "The provided string needs to be in the value.", + "type": "string" + }, + "+gt": { + "description": "The value needs to be greater than the provided number.", + "type": "number" + }, + "+gte": { + "description": "The value needs to be greater than or equal to the provided number.", + "type": "number" + }, + "+lt": { + "description": "The value needs to be less than the provided number.", + "type": "number" + }, + "+lte": { + "description": "The value needs to be less than or equal to the provided number.", + "type": "number" + }, + "+neq": { + "description": "The provided string is left out of the results.", + "type": "string" + }, + "+or": { + "description": "At least one condition needs to be true.", + "items": { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + "type": "array" + }, + "+order": { + "default": "asc", + "description": "Sort in ascending (`asc`) or descending (`desc`) order. This defaults to `asc`. Requires `+order_by`.", + "enum": [ + "asc", + "desc" + ], + "type": "string" + }, + "+order_by": { + "description": "Order results based on the provided attribute. The attribute needs to be filterable.", + "type": "string" + } + }, + "title": "Filter and sort criteria", + "type": "object" + } + ], + "x-akamai": { + "file-path": "schemas/x-filter.yaml" + } + }, + "x-akamai": { + "file-path": "parameters/x-filter-header.yaml" + } + }, { "description": "The page of a collection to return.", "example": "{{page}}", @@ -12381,7 +13221,7 @@ "description": "Account Invoice object.", "properties": { "billing_source": { - "description": "__Filterable__, __Read-only__ `akamai`: This Invoice was generated according to the terms of an agreement between the customer and Akamai.\n\n`linode`: This Invoice was generated according to the default terms, prices, and discounts.", + "description": "__Filterable__, __Read-only__ The source of service charges for this invoice. A value of `akamai` indicates an invoice generated according to the terms of an agreement between the customer and Akamai. A value of `linode` indicates an invoice was generated according to the default terms, prices, and discounts.", "enum": [ "akamai", "linode" @@ -12628,7 +13468,7 @@ "description": "Account Invoice object.", "properties": { "billing_source": { - "description": "__Filterable__, __Read-only__ `akamai`: This Invoice was generated according to the terms of an agreement between the customer and Akamai.\n\n`linode`: This Invoice was generated according to the default terms, prices, and discounts.", + "description": "__Filterable__, __Read-only__ The source of service charges for this invoice. A value of `akamai` indicates an invoice generated according to the terms of an agreement between the customer and Akamai. A value of `linode` indicates an invoice was generated according to the default terms, prices, and discounts.", "enum": [ "akamai", "linode" @@ -13504,7 +14344,7 @@ }, "/{apiVersion}/account/maintenance": { "get": { - "description": "Returns a collection of Maintenance objects for any entity a user has permissions to view. Canceled Maintenance objects are not returned.\n\nCurrently, Linodes are the only entities available for viewing.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli account maintenance-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns maintenance information for any entity your user has permissions to view. If a maintenance object has been canceled, it's not returned.\n\n> \ud83d\udcd8\n>\n> Currently, only Linodes are included as entities for viewing.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli account maintenance-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-maintenance" @@ -13522,17 +14362,42 @@ "additionalProperties": false, "description": "Information about maintenance affecting an entity.", "properties": { + "complete_time": { + "description": "__Beta__, __Filterable__ The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ], + "status": "BETA" + }, + "x-linode-filterable": true + }, + "description": { + "description": "__Beta__ Differentiates between scheduled and emergency maintenance.", + "enum": [ + "Scheduled Maintenance", + "Emergency Maintenance" + ], + "example": "Scheduled Maintenance", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, "entity": { "additionalProperties": false, - "description": "The entity being affected by maintenance.", + "description": "The entity affected by the maintenance.", "properties": { "id": { - "description": "The id of the entity being affected by maintenance.", + "description": "The unique identifier of the entity targeted by the maintenance.", "example": 1234, "type": "number" }, "label": { - "description": "The label of the entity being affected by maintenance.", + "description": "The name of the entity targeted by the maintenance.", "example": "demo-linode", "type": "string" }, @@ -13542,24 +14407,77 @@ "type": "string" }, "url": { - "description": "The API endpoint prefix to use in combination with the entity id to find specific information about the entity.", + "description": "A combination of the API operation prefix and the entity's `id` that can be used to review the entity.", "example": "https://api.linode.com/v4/linode/instances/{linodeId}", "type": "string" } }, "type": "object" }, + "maintenance_policy_set": { + "description": "__Beta__, __Filterable__ The maintenance policy configured by the user.", + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ], + "status": "BETA" + }, + "x-linode-filterable": true + }, + "not_before": { + "description": "__Beta__, __Filterable__ The earliest time when the maintenance can start. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ], + "status": "BETA" + }, + "x-linode-filterable": true + }, "reason": { "description": "The reason maintenance is being performed.", "example": "This maintenance will allow us to update the BIOS on the host's motherboard.", "type": "string" }, + "source": { + "description": "__Beta__ The origin of the maintenance. A `platform` source indicates that the maintenance was initiated by Akamai. A `user` source indicates that the maintenance was initiated by the user.", + "enum": [ + "platform", + "user" + ], + "example": "platform", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, + "start_time": { + "description": "__Beta__, __Filterable__ The time the maintenance started. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", + "example": "2020-07-09T00:01:01", + "format": "date-time", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ], + "status": "BETA" + }, + "x-linode-filterable": true + }, "status": { - "description": "__Filterable__ The maintenance status.\n\nMaintenance progresses in the following sequence: pending, started, then completed.", + "description": "__Filterable__ The maintenance status. Maintenance progress follows the sequence `pending`, `scheduled`, `started`, and `completed`. A `scheduled` status is unique to Linodes that require a reboot for [QEMU maintenance](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance).", "enum": [ - "completed", "pending", - "started" + "scheduled", + "started", + "in-progress", + "completed", + "canceled" ], "example": "started", "type": "string", @@ -13575,7 +14493,9 @@ "enum": [ "reboot", "cold_migration", - "live_migration" + "live_migration", + "migrate", + "power_off_on" ], "example": "reboot", "type": "string", @@ -13587,7 +14507,7 @@ "x-linode-filterable": true }, "when": { - "description": "__Filterable__ When the maintenance will begin.\n\n[Filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) with the following parameters:\n\n- A single value in date-time string format (`%Y-%m-%dT%H:%M:%S`), which returns only matches to that value.\n\n- A dictionary containing pairs of inequality operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single date-time string format values (`%Y-%m-%dT%H:%M:%S`). `+or` accepts an array of values that may consist of single date-time strings or dictionaries of inequality operator pairs.", + "description": "__Filterable__ The start time for the maintenance. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters:\n\n- A single ISO 8601 timestamp (yyyy-mm-ddThh:mm:ss), which returns only matches for that value.\n\n- Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs.", "example": "2020-07-09T00:01:01", "format": "date-time", "type": "string", @@ -13627,7 +14547,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-maintenance-200.yaml" + "file-path": "schemas/get-maintenance-200.yaml" } }, "x-example": { @@ -13725,7 +14645,7 @@ }, "/{apiVersion}/account/notifications": { "get": { - "description": "Returns a collection of notification objects that represent important, often time-sensitive details about your account. You can't interact directly with notifications, and a notification disappears when the circumstances that caused it have been resolved. For example, if you have an important ticket open, you can respond to that ticket to dismiss its notification.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli account notifications-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns notifications that represent important, often time-sensitive details about your account. You can't interact directly with notifications, and a notification disappears when you've resolved its cause. For example, if you have an important ticket open, you can respond to that ticket to dismiss its notification.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli account notifications-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-notifications" @@ -13744,15 +14664,15 @@ "description": "An important, often time-sensitive item related to your account.", "properties": { "body": { - "description": "__Read-only__ A full description of this notification, in markdown format. Not all notifications include a `body`.", + "description": "A full description of this notification, in markdown format. Not all notifications include a `body`. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`.", "example": null, "nullable": true, - "readOnly": true, "type": "string" }, "entity": { "additionalProperties": false, - "description": "__Read-only__ Detailed information about the notification.", + "description": "Detailed information about the notification. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`.", + "nullable": true, "properties": { "id": { "description": "The unique ID of the notification's entity, based on the entity type. Returns `null` for an `account` or `promotion` entity.", @@ -13761,13 +14681,13 @@ "type": "integer" }, "label": { - "description": "The current label for this notification's entity.\n\nReturns `null` for the following entity types:\n\n- `entity_transfer`\n- `promotion`\n- `region`", + "description": "The current name of this notification's entity. Returns `null` for the following `entity` types:\n\n- `entity_transfer`\n\n- `promotion`\n\n- `region`", "example": "Linode not booting.", "nullable": true, "type": "string" }, "type": { - "description": "The type of entity this is related to.", + "description": "__Filterable__ The type of entity this is related to. An entity can be product or service-specific, such as a `linode`, `loadbalancers`, or `nodebalancers`. It can apply to a specific component, such as your `account`, a specific `promotion` your participating in, a data center (`region`) where you're using services, a transfer from one component to another (an `entity_transfer`), a support `ticket` you've opened, or a `volume` on a specific Linode.", "enum": [ "account", "entity_transfer", @@ -13780,7 +14700,13 @@ "volume" ], "example": "ticket", - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "url": { "description": "The URL where you can access the notification's object. The URL is relative to the domain where you retrieved the notification. This value is `null` for the `promotion` entity type.", @@ -13789,32 +14715,28 @@ "type": "string" } }, - "readOnly": true, "type": "object" }, "label": { - "description": "__Read-only__ A short description of this notification.", + "description": "A short description of this notification.", "example": "You have an important ticket open!", - "readOnly": true, "type": "string", "x-linode-cli-display": 1 }, "message": { - "description": "__Read-only__ A human-readable description of the notification.", + "description": "A human-readable description of the notification.", "example": "You have an important ticket open!", - "readOnly": true, "type": "string", "x-linode-cli-display": 2 }, "severity": { - "description": "__Read-only__ The severity of this notification. This field determines how prominently the notification is displayed and the color of the display text.", + "description": "The severity of this notification. This field determines how prominently the notification is displayed and the color of the display text.", "enum": [ "minor", "major", "critical" ], "example": "major", - "readOnly": true, "type": "string", "x-linode-cli-color": { "critical": "b", @@ -13824,7 +14746,7 @@ "x-linode-cli-display": 3 }, "type": { - "description": "__Read-only__ The type of notification.", + "description": "__Filterable__ The type of notification.\n\n> \ud83d\udcd8\n>\n> A `security_reboot_maintenance_scheduled` event is a global notice that a Linode needs to be rebooted for QEMU upgrade maintenance. Have a look at [this workflow](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance) for guidance on reboooting your Linodes for this maintenance.", "enum": [ "migration_scheduled", "migration_imminent", @@ -13836,19 +14758,25 @@ "ticket_abuse", "notice", "maintenance", + "maintenance_scheduled", "promotion", + "security_reboot_maintenance_scheduled", "tax_id_verifying" ], "example": "ticket_important", - "readOnly": true, - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "until": { - "description": "__Read-only__ If this notification has a duration, this is when the event or action will complete. For example, if there's scheduled maintenance for one of our systems, `until` represents the end of the maintenance window.", + "description": "If this notification has a duration, this is when the event or action will complete. For example, if there's scheduled maintenance for one of our systems, `until` represents the end of the maintenance window. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`.", "example": null, "format": "date-time", "nullable": true, - "readOnly": true, "type": "string", "x-linode-cli-color": { "None": "black", @@ -13857,11 +14785,10 @@ "x-linode-cli-display": 5 }, "when": { - "description": "__Read-only__ If this notification is for an event in the future, this specifies when the action occurs. For example, if a compute instance needs to migrate in response to a security advisory, this field sets the approximate time the compute instance will be taken offline for migration.", + "description": "If this notification is for an event in the future, this specifies when the action occurs. For example, if a compute instance needs to migrate in response to a security advisory, this field sets the approximate time the compute instance will be taken offline for migration. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`.", "example": null, "format": "date-time", "nullable": true, - "readOnly": true, "type": "string", "x-linode-cli-color": { "None": "black", @@ -15288,7 +16215,7 @@ }, "/{apiVersion}/account/oauth-clients/{clientId}/thumbnail": { "get": { - "description": "Returns the PNG thumbnail for this OAuth Client. This is a publicly viewable endpoint, and can be accessed without authentication.", + "description": "Returns the PNG thumbnail for this OAuth client. This is a publicly viewable operation, and you can access it without authentication.", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-client-thumbnail" @@ -15345,13 +16272,13 @@ }, "summary": "Get the OAuth client's thumbnail", "tags": [ - "Client thumbnail" + "OAuth client" ], "x-linode-cli-action": "client-thumbnail", "x-linode-cli-skip": true }, "put": { - "description": "Upload a thumbnail for a client you own. You must upload a PNG image file that will be returned when the thumbnail is retrieved. This image will be publicly viewable.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Upload a thumbnail for a client you own. You need to upload a PNG image file that the Linode API returns when the thumbnail is retrieved. This image is publicly viewable.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-client-thumbnail" @@ -15437,7 +16364,7 @@ ], "summary": "Update the OAuth client's thumbnail", "tags": [ - "Client thumbnail" + "OAuth client" ], "x-akamai": { "tabs": [ @@ -16471,7 +17398,7 @@ }, "/{apiVersion}/account/payments": { "post": { - "description": "Makes a Payment to your Account.\n\n- The requested amount is charged to the default Payment Method if no `payment_method_id` is specified.\n\n- A `payment_submitted` event is generated when a payment is successfully submitted.\n\n__Parent and child accounts__\n\nIn a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:\n\n- Child account users can't run this operation. These users don't have access to billing-related operations.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli account payment-create \\\n --usd 120.50 \\\n --payment_method_id 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Makes a payment to your account.\n\n- The requested amount is charged to the default payment method if no `payment_method_id` is specified.\n\n- A `payment_submitted` event is generated when a payment is successfully submitted.\n\n__Parent and child accounts__\n\nIn a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:\n\n- Child account users can't run this operation. These users don't have access to billing-related operations.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli account payment-create \\\n --usd 120.50 \\\n --payment_method_id 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-payment" @@ -16505,7 +17432,7 @@ } } }, - "description": "Information about the Payment you are making.", + "description": "Information about the payment you're making.", "required": true }, "responses": { @@ -16517,26 +17444,38 @@ "description": "Payment object response.", "properties": { "date": { - "description": "__Read-only__ When the Payment was made.", + "description": "__Filterable__, __Read-only__ When the payment was made.", "example": "2018-01-15T00:01:01", "format": "date-time", "readOnly": true, "type": "string", - "x-linode-cli-display": 2 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true }, "id": { - "description": "__Read-only__ The unique ID of the Payment.", + "description": "__Read-only__ The unique ID of the payment.", "example": 123, "readOnly": true, "type": "integer", "x-linode-cli-display": 1 }, "usd": { - "description": "__Read-only__ The amount, in US dollars, of the Payment.", + "description": "__Filterable__, __Read-only__ The amount, in US dollars, of the payment.", "example": "120.50", "readOnly": true, "type": "integer", - "x-linode-cli-display": 3 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true } }, "type": "object", @@ -16656,13 +17595,107 @@ "x-linode-grant": "read_write" }, "get": { - "description": "Returns a paginated list of Payments made on this Account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli account payments-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of payments made on this Account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli account payments-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-payments" }, "operationId": "get-payments", "parameters": [ + { + "description": "Specifies a JSON object to filter down the results. See [Filtering and sorting](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) for details.", + "example": "{{X-Filter}}", + "in": "header", + "name": "X-Filter", + "required": false, + "schema": { + "description": "Specifies the `X-Filter` header JSON object's filtering and sort criteria.", + "oneOf": [ + { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + { + "additionalProperties": false, + "properties": { + "+and": { + "description": "All conditions need to be true.", + "items": { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + "type": "array" + }, + "+contains": { + "description": "The provided string needs to be in the value.", + "type": "string" + }, + "+gt": { + "description": "The value needs to be greater than the provided number.", + "type": "number" + }, + "+gte": { + "description": "The value needs to be greater than or equal to the provided number.", + "type": "number" + }, + "+lt": { + "description": "The value needs to be less than the provided number.", + "type": "number" + }, + "+lte": { + "description": "The value needs to be less than or equal to the provided number.", + "type": "number" + }, + "+neq": { + "description": "The provided string is left out of the results.", + "type": "string" + }, + "+or": { + "description": "At least one condition needs to be true.", + "items": { + "description": "Specify the name of the data field and the accompanying value.", + "title": "Simple filter", + "type": "object", + "x-akamai": { + "file-path": "schemas/x-filter-criteria.yaml" + } + }, + "type": "array" + }, + "+order": { + "default": "asc", + "description": "Sort in ascending (`asc`) or descending (`desc`) order. This defaults to `asc`. Requires `+order_by`.", + "enum": [ + "asc", + "desc" + ], + "type": "string" + }, + "+order_by": { + "description": "Order results based on the provided attribute. The attribute needs to be filterable.", + "type": "string" + } + }, + "title": "Filter and sort criteria", + "type": "object" + } + ], + "x-akamai": { + "file-path": "schemas/x-filter.yaml" + } + }, + "x-akamai": { + "file-path": "parameters/x-filter-header.yaml" + } + }, { "description": "The page of a collection to return.", "example": "{{page}}", @@ -16709,26 +17742,38 @@ "description": "Payment object response.", "properties": { "date": { - "description": "__Read-only__ When the Payment was made.", + "description": "__Filterable__, __Read-only__ When the payment was made.", "example": "2018-01-15T00:01:01", "format": "date-time", "readOnly": true, "type": "string", - "x-linode-cli-display": 2 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true }, "id": { - "description": "__Read-only__ The unique ID of the Payment.", + "description": "__Read-only__ The unique ID of the payment.", "example": 123, "readOnly": true, "type": "integer", "x-linode-cli-display": 1 }, "usd": { - "description": "__Read-only__ The amount, in US dollars, of the Payment.", + "description": "__Filterable__, __Read-only__ The amount, in US dollars, of the payment.", "example": "120.50", "readOnly": true, "type": "integer", - "x-linode-cli-display": 3 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true } }, "type": "object", @@ -16767,7 +17812,7 @@ } } }, - "description": "Returns a paginated list of Payment objects." + "description": "Returns a paginated list of payment objects." }, "default": { "content": { @@ -17311,26 +18356,38 @@ "description": "Payment object response.", "properties": { "date": { - "description": "__Read-only__ When the Payment was made.", + "description": "__Filterable__, __Read-only__ When the payment was made.", "example": "2018-01-15T00:01:01", "format": "date-time", "readOnly": true, "type": "string", - "x-linode-cli-display": 2 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true }, "id": { - "description": "__Read-only__ The unique ID of the Payment.", + "description": "__Read-only__ The unique ID of the payment.", "example": 123, "readOnly": true, "type": "integer", "x-linode-cli-display": 1 }, "usd": { - "description": "__Read-only__ The amount, in US dollars, of the Payment.", + "description": "__Filterable__, __Read-only__ The amount, in US dollars, of the payment.", "example": "120.50", "readOnly": true, "type": "integer", - "x-linode-cli-display": 3 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true } }, "type": "object", @@ -18658,6 +19715,19 @@ "type": "string", "x-linode-cli-display": 2 }, + "maintenance_policy": { + "description": "__Beta__ Defines the default maintenance policy for new Linodes created on this account. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "status": "BETA" + }, + "x-linode-cli-display": 7 + }, "managed": { "description": "__Read-only__ Our 24/7 incident response service. This robust, multi-homed monitoring system distributes monitoring checks to ensure that your servers remain online and available at all times. Linode Managed can monitor any service or software stack reachable over TCP or HTTP. Once you add a service to Linode Managed, we'll monitor it for connectivity, response, and total request time.", "example": true, @@ -18807,6 +19877,19 @@ "type": "string", "x-linode-cli-display": 2 }, + "maintenance_policy": { + "description": "__Beta__ Defines the default maintenance policy for new Linodes created on this account. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "{{maintenance_policy}}", + "type": "string", + "x-akamai": { + "status": "BETA" + }, + "x-linode-cli-display": 7 + }, "managed": { "description": "__Read-only__ Our 24/7 incident response service. This robust, multi-homed monitoring system distributes monitoring checks to ensure that your servers remain online and available at all times. Linode Managed can monitor any service or software stack reachable over TCP or HTTP. Once you add a service to Linode Managed, we'll monitor it for connectivity, response, and total request time.", "example": "{{managed}}", @@ -18883,6 +19966,19 @@ "type": "string", "x-linode-cli-display": 2 }, + "maintenance_policy": { + "description": "__Beta__ Defines the default maintenance policy for new Linodes created on this account. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "status": "BETA" + }, + "x-linode-cli-display": 7 + }, "managed": { "description": "__Read-only__ Our 24/7 incident response service. This robust, multi-homed monitoring system distributes monitoring checks to ensure that your servers remain online and available at all times. Linode Managed can monitor any service or software stack reachable over TCP or HTTP. Once you add a service to Linode Managed, we'll monitor it for connectivity, response, and total request time.", "example": true, @@ -19091,7 +20187,7 @@ ], "summary": "Enable Linode Managed", "tags": [ - "Settings" + "Account settings" ], "x-akamai": { "tabs": [ @@ -19130,7 +20226,7 @@ } ], "x-akamai": { - "file-path": "paths/managed-enable.yaml", + "file-path": "paths/account-settings-managed-enable.yaml", "path-info": "/{apiVersion}/account/settings/managed-enable" }, "x-linode-cli-command": "account" @@ -19315,7 +20411,7 @@ }, "/{apiVersion}/account/users": { "post": { - "description": "Creates a user on your account. You determine the new user's account access by setting it to restricted or unrestricted and by defining its grants. After completion, the API sends a confirmation message containing password creation and login instructions to the user's `email` address.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access.\n\n__Parent and child accounts__\n\nIn a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:\n\n- A parent account user can create new parent account users.\n\n- A child account can [update](https://techdocs.akamai.com/linode-api/reference/put-user) the child account parent user (proxy user) to `unrestricted`. This gives the proxy user access to create new child account users.\n\n- A child account user can create new child account users.\n\n- You can't create a proxy user. The proxy user in a child account is predefined when you initially provision the parent-child relationship.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli users create \\\n --username example_user \\\n --email example_user@linode.com \\\n --restricted true\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Creates a user on your account. You determine the new user's account access by setting it to restricted or unrestricted and by defining its grants. After completion, the API sends a confirmation message containing password creation and login instructions to the user's `email` address.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.\n\n__Parent and child accounts__\n\nIn a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:\n\n- A parent account user can create new parent account users.\n\n- A child account can [update](https://techdocs.akamai.com/linode-api/reference/put-user) the child account parent user (proxy user) to `unrestricted`. This gives the proxy user access to create new child account users.\n\n- A child account user can create new child account users.\n\n- You can't create a proxy user. The proxy user in a child account is predefined when you initially provision the parent-child relationship.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli users create \\\n --username example_user \\\n --email example_user@linode.com \\\n --restricted true\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-user" @@ -19618,7 +20714,7 @@ "x-linode-grant": "unrestricted only" }, "get": { - "description": "Returns a paginated list of all users on your account.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access.\n\nA user can access all or part of an account based on their access status and grants:\n\n- __Unrestricted access__. These users can access everything on an account.\n\n- __Restricted access__. These users can only access entities or perform actions they've been given specific grants to.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli users list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of all users on your account.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.\n\nA user can access all or part of an account based on their access status and grants:\n\n- __Unrestricted access__. These users can access everything on an account.\n\n- __Restricted access__. These users can only access entities or perform actions they've been given specific grants to.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli users list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-users" @@ -19795,7 +20891,7 @@ "description": "The type of user on an account. Mostly applies to the use of the parent and child accounts for Akamai partners functionality.", "properties": { "user_type": { - "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractural relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", + "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractual relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", "enum": [ "parent", "child", @@ -19942,7 +21038,7 @@ }, "/{apiVersion}/account/users/{username}": { "get": { - "description": "Returns information about a single user on your account.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli users view example_user\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns information about a single user on your account.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli users view example_user\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-user" @@ -20060,7 +21156,7 @@ "description": "The type of user on an account. Mostly applies to the use of the parent and child accounts for Akamai partners functionality.", "properties": { "user_type": { - "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractural relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", + "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractual relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", "enum": [ "parent", "child", @@ -20155,7 +21251,7 @@ "x-linode-grant": "unrestricted only" }, "put": { - "description": "Update information about a user on your account, including its restricted status. When setting a user to `restricted`, the API sets no grants for it. You need to set grants so that user can access things on the account.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access.\n\n__Parent and child accounts__\n\nIn a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:\n\n- You can't edit the `username` or `email` values for the child account parent user (proxy user). These are predefined for the proxy user when you initially provision the parent-child relationship. Only a proxy user's `restricted` status can be modified. This can only be done by an unrestricted child account user.\n\n- A parent account using an unrestricted proxy user in a child account can modify the `username`, `email`, and `restricted` status for an existing child account user.\n\n- A restricted account user--parent or child--can't change their user to `unrestricted`.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli users update example_user \\\n --username example_user \\\n --email example@linode.com \\\n --restricted true\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Update information about a user on your account, including its restricted status. When setting a user to `restricted`, the API sets no grants for it. You need to set grants so that user can access things on the account.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.\n\n__Parent and child accounts__\n\nIn a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:\n\n- You can't edit the `username` or `email` values for the child account parent user (proxy user). These are predefined for the proxy user when you initially provision the parent-child relationship. Only a proxy user's `restricted` status can be modified. This can only be done by an unrestricted child account user.\n\n- A parent account using an unrestricted proxy user in a child account can modify the `username`, `email`, and `restricted` status for an existing child account user.\n\n- A restricted account user--parent or child--can't change their user to `unrestricted`.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli users update example_user \\\n --username example_user \\\n --email example@linode.com \\\n --restricted true\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-user" @@ -20395,7 +21491,7 @@ "description": "The type of user on an account. Mostly applies to the use of the parent and child accounts for Akamai partners functionality.", "properties": { "user_type": { - "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractural relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", + "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractual relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", "enum": [ "parent", "child", @@ -20490,7 +21586,7 @@ "x-linode-grant": "unrestricted only" }, "delete": { - "description": "Deletes a user. The API immediately logs the user out and removes all of its `grants`.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access.\n\n__Parent and child accounts__\n\nIn a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:\n\n- You can't delete a child account parent user (proxy user). The API returns a 403 error if you target a proxy user with this operation.\n\n- A parent account using an unrestricted proxy user can use this operation to delete a child account user.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli users delete example_user\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Deletes a user. The API immediately logs the user out and removes all of its `grants`.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.\n\n__Parent and child accounts__\n\nIn a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:\n\n- You can't delete a child account parent user (proxy user). The API returns a 403 error if you target a proxy user with this operation.\n\n- A parent account using an unrestricted proxy user can use this operation to delete a child account user.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli users delete example_user\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/delete-user" @@ -20626,7 +21722,7 @@ }, "/{apiVersion}/account/users/{username}/grants": { "get": { - "description": "Returns the full grants structure for an account username you specify. This includes all entities on the account, and the level of access this user has to each of them.\n\nThis doesn't apply to the account owner or the current authenticated user. You can run the [List grants](https://techdocs.akamai.com/linode-api/reference/get-profile-grants) operation to view those grants. However, this doesn't show the entities that they _don't_ have access to.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns the full grants structure for an account username you specify. This includes all entities on the account, and the level of access this user has to each of them.\n\nThis doesn't apply to the account owner or the current authenticated user. You can run the [List grants](https://techdocs.akamai.com/linode-api/reference/get-profile-grants) operation to view those grants. However, this doesn't show the entities that they _don't_ have access to.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-user-grants" @@ -21154,7 +22250,7 @@ "x-linode-grant": "unrestricted only" }, "put": { - "description": "Update the grants for a [restricted](https://techdocs.akamai.com/linode-api/reference/post-user) user. This can be used to give a user access to new entities or actions, or take access away. Omit a grant object from the request to keep its current setting.\n\n> \ud83d\udcd8\n>\n> - This operation can only be accessed by account users with _unrestricted_ access.\n>\n> - This operation only applies to _restricted_ users. An unrestricted user has access to everything and doesn't use grants.\n\n__Parent and child accounts__\n\nIn a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:\n\n- No child account user can modify the `account_access` grant for the child account parent user (proxy user).\n\n- An unrestricted child account user can configure all other grants for the proxy user, with the `global` object.\n\n- An unrestricted child account user can enable the `account_access` grant for other child account users. However, enabled child users are still subject to child user restrictions--they can't perform write operations for any billing or account information.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Update the grants for a [restricted](https://techdocs.akamai.com/linode-api/reference/post-user) user. This can be used to give a user access to new entities or actions, or take access away. Omit a grant object from the request to keep its current setting.\n\n> \ud83d\udcd8\n>\n> - This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.\n>\n> - This operation only applies to _restricted_ users. An unrestricted user has access to everything and doesn't use grants.\n\n__Parent and child accounts__\n\nIn a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:\n\n- No child account user can modify the `account_access` grant for the child account parent user (proxy user).\n\n- An unrestricted child account user can configure all other grants for the proxy user, with the `global` object.\n\n- An unrestricted child account user can enable the `account_access` grant for other child account users. However, enabled child users are still subject to child user restrictions--they can't perform write operations for any billing or account information.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-user-grants" @@ -23274,16 +24370,16 @@ }, "hosts": { "additionalProperties": false, - "description": "__Read-only__ The primary and secondary hosts for the Managed Database. These are assigned after provisioning is complete.", + "description": "__Read-only__ The primary hostname and secondary read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", "properties": { "primary": { - "description": "The primary host for the Managed Database.", + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns _publicly_ routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", "nullable": true, "type": "string" }, "secondary": { - "description": "The secondary/private network host for the Managed Database. A private network host and a private IP can only be used to access a database cluster from Linodes in the same data center and will not incur transfer costs.\n\n> \ud83d\udcd8\n>\n> The secondary hostname is publicly visible and accessible.", + "description": "The secondary, read-only hostname for the Managed Database. This can only be used to access a Managed Database cluster from Linodes in the same data center (region). Accessing the cluster through this hostname doesn't incur transfer costs.\n\n> \ud83d\udcd8\n>\n> - The secondary hostname is publicly visible and accessible.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC. You can also use this hostname for requests between clients within the same VPC to access the cluster over the private network, which avoids transfer costs.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", "nullable": true, "type": "string" @@ -23359,7 +24455,7 @@ "type": "integer" }, "region": { - "description": "__Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database.", + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", "example": "us-east", "type": "string", "x-akamai": { @@ -24787,7 +25883,7 @@ }, "/{apiVersion}/databases/mysql/instances": { "post": { - "description": "**Provision a MySQL Managed Database**\n\nUse this operation to create a new MySQL Managed Database.\n\n- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).\n\n- New instances can take 10 to 15 minutes to deploy.\n\n- When you create a new MySQL Managed Database, our partner [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption) automatically enables disk encryption on each cluster.\n\n- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.\n\n- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the MySQL Managed Database. Configure the maintenance window for these updates with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation.\n\n- If your database cluster is configured with a single node, downtime occurs during maintenance updates. You should adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n**Restore a MySQL Managed Database**\n\nInclude the `fork` object in the request to target a backed-up database. Your user needs `read_write` access to the target database and its status can be `active`, `degraded`, or `failed`.\n\n> \ud83d\udcd8\n>\n> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing.\n\n\n<>\n\n---\n\n\n- __CLI for create operation__.\n\n ```\n linode-cli databases mysql-create \\\n --label example-db1 \\\n --region us-east \\\n --type g6-dedicated-2 \\\n --cluster_size 3 \\\n --engine mysql/8.0.26 \\\n --engine_config.binlog_retention_period 60 \\\n --engine_config.mysql.connect_timeout 10 \\\n --engine_config.mysql.default_time_zone +03:00 \\\n --ssl_connection true \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n databases:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "**Provision a MySQL Managed Database**\n\nUse this operation to create a new MySQL Managed Database.\n\n- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).\n\n- New instances can take 10 to 15 minutes to deploy.\n\n- When you create a new MySQL Managed Database, our partner [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption) automatically enables disk encryption on each cluster.\n\n- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.\n\n- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the MySQL Managed Database. Configure the maintenance window for these updates with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation.\n\n- If your database cluster is configured with a single node, downtime occurs during maintenance updates. You should adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n**Beta** **Virtual Private Cloud (VPC) support**\n\nYou can create a MySQL Managed Database in a VPC using the `private_network` object in the request. Talk to your Akamai account team for more details.\n\n> \ud83d\udcd8\n>\n> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.\n\n**Restore a MySQL Managed Database**\n\nInclude the `fork` object in the request to target a backed-up database. Your user needs `read_write` access to the target database and its status can be `active`, `degraded`, or `failed`.\n\n> \ud83d\udcd8\n>\n> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing.\n\n\n<>\n\n---\n\n\n- __CLI for create operation__.\n\n ```\n linode-cli databases mysql-create \\\n --label example-db1 \\\n --region us-east \\\n --type g6-dedicated-2 \\\n --cluster_size 3 \\\n --engine mysql/8.0.26 \\\n --engine_config.binlog_retention_period 60 \\\n --engine_config.mysql.connect_timeout 10 \\\n --engine_config.mysql.default_time_zone +03:00 \\\n --ssl_connection true \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n databases:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances" @@ -24840,6 +25936,11 @@ "source": 176881 }, "label": "example-db", + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, "region": "us-east", "ssl_connection": true, "type": "g6-dedicated-2" @@ -25133,8 +26234,35 @@ "x-linode-cli-display": 2, "x-linode-filterable": true }, + "private_network": { + "additionalProperties": false, + "description": "__Beta__ Restricts access on a MySQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` to allow clients outside of the VPC to connect to the database using a public IP address. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "If the `vpc_id` includes multiple subnets, specify the `subnet_id` you want to use to control access to the database. Use the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation to find and store the `id` of the relevant subnet object.\n\n> \ud83d\udcd8\n>\n> A VPC needs at least one subnet to assign a Manage Database instance.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the applicable VPC.", + "example": 123, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "region": { - "description": "__Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database.", + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", "example": "{{region}}", "type": "string", "x-akamai": { @@ -25246,6 +26374,11 @@ "oldest_restore_time": "2025-01-01T00:01:01", "platform": "rdbms-default", "port": 3306, + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, "region": "us-east", "ssl_connection": true, "status": "active", @@ -25556,16 +26689,16 @@ }, "hosts": { "additionalProperties": false, - "description": "__Read-only__ The primary and secondary hosts for the Managed Database. These are assigned after provisioning is complete.", + "description": "__Read-only__ The primary hostname and secondary read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", "properties": { "primary": { - "description": "The primary host for the Managed Database.", + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns _publicly_ routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", "nullable": true, "type": "string" }, "secondary": { - "description": "The secondary/private network host for the Managed Database. A private network host and a private IP can only be used to access a database cluster from Linodes in the same data center and will not incur transfer costs.\n\n> \ud83d\udcd8\n>\n> The secondary hostname is publicly visible and accessible.", + "description": "The secondary, read-only hostname for the Managed Database. This can only be used to access a Managed Database cluster from Linodes in the same data center (region). Accessing the cluster through this hostname doesn't incur transfer costs.\n\n> \ud83d\udcd8\n>\n> - The secondary hostname is publicly visible and accessible.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC. You can also use this hostname for requests between clients within the same VPC to access the cluster over the private network, which avoids transfer costs.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", "nullable": true, "type": "string" @@ -25634,8 +26767,35 @@ "readOnly": true, "type": "integer" }, + "private_network": { + "additionalProperties": false, + "description": "__Beta__ Restricts access to a MySQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The unique identifier of a specific subnet, in the VPC (`vpc_id`) where the Managed Database can be accessed.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC where this database exists.", + "example": 123, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "region": { - "description": "__Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database.", + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", "example": "us-east", "type": "string", "x-akamai": { @@ -25982,6 +27142,11 @@ "oldest_restore_time": "2024-10-03T20:48:05", "platform": "rdbms-default", "port": 3306, + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, "region": "us-east", "ssl_connection": true, "status": "active", @@ -26330,16 +27495,16 @@ }, "hosts": { "additionalProperties": false, - "description": "__Read-only__ The primary and secondary hosts for the Managed Database. These are assigned after provisioning is complete.", + "description": "__Read-only__ The primary hostname and secondary read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", "properties": { "primary": { - "description": "The primary host for the Managed Database.", + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns _publicly_ routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", "nullable": true, "type": "string" }, "secondary": { - "description": "The secondary/private network host for the Managed Database. A private network host and a private IP can only be used to access a database cluster from Linodes in the same data center and will not incur transfer costs.\n\n> \ud83d\udcd8\n>\n> The secondary hostname is publicly visible and accessible.", + "description": "The secondary, read-only hostname for the Managed Database. This can only be used to access a Managed Database cluster from Linodes in the same data center (region). Accessing the cluster through this hostname doesn't incur transfer costs.\n\n> \ud83d\udcd8\n>\n> - The secondary hostname is publicly visible and accessible.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC. You can also use this hostname for requests between clients within the same VPC to access the cluster over the private network, which avoids transfer costs.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", "nullable": true, "type": "string" @@ -26408,8 +27573,35 @@ "readOnly": true, "type": "integer" }, + "private_network": { + "additionalProperties": false, + "description": "__Beta__ Restricts access to a MySQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The unique identifier of a specific subnet, in the VPC (`vpc_id`) where the Managed Database can be accessed.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC where this database exists.", + "example": 123, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "region": { - "description": "__Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database.", + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", "example": "us-east", "type": "string", "x-akamai": { @@ -26755,6 +27947,11 @@ "oldest_restore_time": "2024-10-03T20:48:05", "platform": "rdbms-default", "port": 3306, + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, "region": "us-east", "ssl_connection": true, "status": "active", @@ -27065,16 +28262,16 @@ }, "hosts": { "additionalProperties": false, - "description": "__Read-only__ The primary and secondary hosts for the Managed Database. These are assigned after provisioning is complete.", + "description": "__Read-only__ The primary hostname and secondary read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", "properties": { "primary": { - "description": "The primary host for the Managed Database.", + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns _publicly_ routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", "nullable": true, "type": "string" }, "secondary": { - "description": "The secondary/private network host for the Managed Database. A private network host and a private IP can only be used to access a database cluster from Linodes in the same data center and will not incur transfer costs.\n\n> \ud83d\udcd8\n>\n> The secondary hostname is publicly visible and accessible.", + "description": "The secondary, read-only hostname for the Managed Database. This can only be used to access a Managed Database cluster from Linodes in the same data center (region). Accessing the cluster through this hostname doesn't incur transfer costs.\n\n> \ud83d\udcd8\n>\n> - The secondary hostname is publicly visible and accessible.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC. You can also use this hostname for requests between clients within the same VPC to access the cluster over the private network, which avoids transfer costs.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", "nullable": true, "type": "string" @@ -27143,8 +28340,35 @@ "readOnly": true, "type": "integer" }, + "private_network": { + "additionalProperties": false, + "description": "__Beta__ Restricts access to a MySQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The unique identifier of a specific subnet, in the VPC (`vpc_id`) where the Managed Database can be accessed.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC where this database exists.", + "example": 123, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "region": { - "description": "__Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database.", + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", "example": "us-east", "type": "string", "x-akamai": { @@ -27386,7 +28610,7 @@ "x-linode-grant": "read_only" }, "put": { - "description": "Make changes to an existing MySQL Managed Database.\n\n- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.\n\n- The database's status needs to be `active`.\n\n- New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List MySQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation.\n\n- Updates to your `allow_list` may take a short time to complete, making this operation inappropriate for rapid successive updates.\n\n- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.\n\n- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed MySQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates.\n\n- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- You can't update `engine_config` advanced parameter settings for a suspended database. You'll need to [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-mysql-instance) it first.\n\n- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli databases mysql-update 123 \\\n --label example-db \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24 \\\n --type g6-standard-1 \\\n --engine_config.binlog_retention_period 60 \\\n --engine_config.mysql.connect_timeout 10 \\\n --engine_config.mysql.default_time_zone +03:00 \\\n --updates.frequency weekly \\\n --updates.duration 3 \\\n --updates.hour_of_day 12 \\\n --updates.day_of_week 4 \\\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n databases:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Make changes to an existing MySQL Managed Database.\n\n- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.\n\n- The database's status needs to be `active`.\n\n- New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List MySQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation.\n\n- Updates to your `allow_list` may take a short time to complete, making this operation inappropriate for rapid successive updates.\n\n- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.\n\n- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed MySQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates.\n\n- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- You can't update `engine_config` advanced parameter settings for a suspended database. You'll need to [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-mysql-instance) it first.\n\n- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n- **Beta**. You can update an existing MySQL Managed Database to move it to a Virtual Private Cloud (VPC) using the `private_network` object in the request. This support is in beta. Talk to your Akamai account team for more details.\n\n > \ud83d\udcd8\n >\n > Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli databases mysql-update 123 \\\n --label example-db \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24 \\\n --type g6-standard-1 \\\n --engine_config.binlog_retention_period 60 \\\n --engine_config.mysql.connect_timeout 10 \\\n --engine_config.mysql.default_time_zone +03:00 \\\n --updates.frequency weekly \\\n --updates.duration 3 \\\n --updates.hour_of_day 12 \\\n --updates.day_of_week 4 \\\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n databases:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance" @@ -27433,6 +28657,11 @@ } }, "label": "example-db", + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, "type": "g6-standard-1", "updates": { "day_of_week": 1, @@ -27690,6 +28919,33 @@ "x-linode-cli-display": 2, "x-linode-filterable": true }, + "private_network": { + "additionalProperties": false, + "description": "__Beta__ Restricts access on a MySQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` to allow clients outside of the VPC to connect to the database using a public IP address. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "If the `vpc_id` includes multiple subnets, specify the `subnet_id` you want to use to control access to the database. Use the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation to find and store the `id` of the relevant subnet object.\n\n> \ud83d\udcd8\n>\n> A VPC needs at least one subnet to assign a Manage Database instance.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the applicable VPC.", + "example": 123, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "type": { "description": "Request re-sizing of your cluster to a Linode Type with more disk space. For example, you could request a Linode Type that uses a higher plan.\n\n- Needs to be a Linode Type with more disk space than your current Linode.\n\n- Resizing to a larger Linode Type can accrue additional cost. Review the `price` output in the [List types](https://techdocs.akamai.com/linode-api/reference/get-linode-types) operation for more information.\n\n- You can't update the `allow_list` and set a new `type` in the same request.\n\n- Any active updates to your cluster need to complete before you can request a resize. The reverse is also true: An active resizing needs to complete before you can perform any other update.", "example": "{{type}}", @@ -27849,6 +29105,11 @@ "oldest_restore_time": "2024-10-03T20:48:05", "platform": "rdbms-default", "port": 3306, + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, "region": "us-east", "ssl_connection": true, "status": "active", @@ -28159,16 +29420,16 @@ }, "hosts": { "additionalProperties": false, - "description": "__Read-only__ The primary and secondary hosts for the Managed Database. These are assigned after provisioning is complete.", + "description": "__Read-only__ The primary hostname and secondary read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database.", "properties": { "primary": { - "description": "The primary host for the Managed Database.", + "description": "The primary hostname for the Managed Database.\n\n> \ud83d\udcd8\n>\n> - If you've configured the Managed Database to use a Virtual Private Cloud (VPC) via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns _publicly_ routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-mysql-primary.servers.linodedb.net", "nullable": true, "type": "string" }, "secondary": { - "description": "The secondary/private network host for the Managed Database. A private network host and a private IP can only be used to access a database cluster from Linodes in the same data center and will not incur transfer costs.\n\n> \ud83d\udcd8\n>\n> The secondary hostname is publicly visible and accessible.", + "description": "The secondary, read-only hostname for the Managed Database. This can only be used to access a Managed Database cluster from Linodes in the same data center (region). Accessing the cluster through this hostname doesn't incur transfer costs.\n\n> \ud83d\udcd8\n>\n> - The secondary hostname is publicly visible and accessible.\n>\n> - If you've configured the Managed Database to use a VPC via the `private_network` object ([MySQL](https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances) / [PostgreSQL](https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances)), this hostname resolves to a private IPv4 address within that VPC subnet's address range. Currently, IPv6 addresses aren't supported in a VPC. You can also use this hostname for requests between clients within the same VPC to access the cluster over the private network, which avoids transfer costs.\n>\n> - With `public_access` enabled in a `private_network`, a public version of this hostname is also available. Resolving this hostname returns publicly routable IPv4 and IPv6 addresses.", "example": "lin-123-456-mysql-primary-private.servers.linodedb.net", "nullable": true, "type": "string" @@ -28237,8 +29498,35 @@ "readOnly": true, "type": "integer" }, + "private_network": { + "additionalProperties": false, + "description": "__Beta__ Restricts access to a MySQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The unique identifier of a specific subnet, in the VPC (`vpc_id`) where the Managed Database can be accessed.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC where this database exists.", + "example": 123, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "region": { - "description": "__Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database.", + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", "example": "us-east", "type": "string", "x-akamai": { @@ -28895,7 +30183,7 @@ }, "/{apiVersion}/databases/mysql/instances/{instanceId}/patch": { "post": { - "description": "Apply security patches and updates to the underlying operating system of the MySQL Managed Database. This function runs during regular maintenance windows, which you can configure with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation.\n\n- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.\n\n- The database's status meeds to be `active`.\n\n- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_upgrade` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli databases mysql-patch 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n databases:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Apply security patches and updates to the underlying operating system of the MySQL Managed Database. This function runs during regular maintenance windows, which you can configure with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation.\n\n- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.\n\n- The database's status needs to be `active`.\n\n- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_upgrade` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli databases mysql-patch 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n databases:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instance-patch" @@ -31321,7 +32609,7 @@ }, "/{apiVersion}/databases/postgresql/instances": { "post": { - "description": "**Provision a PostgreSQL Managed Database**\n\nUse this operation to create a new PostgreSQL Managed Database.\n\n- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).\n\n- New instances can take 10 to 15 minutes to deploy.\n\n- When you create a new PostgreSQL Managed Database, our partner [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption) automatically enables disk encryption on each cluster.\n\n- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.\n\n- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the PostgreSQL Managed Database. Configure the maintenance window for these updates with the [Update a managed PostgreSQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance) operation.\n\n- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n**Restore a PostgreSQL Managed Database**\n\nInclude the `fork` object in the request to target a backed-up database. Your user needs `read_write` access to the target database and its status can be `active`, `degraded`, or `failed`.\n\n> \ud83d\udcd8\n>\n> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli databases postgresql-create \\\n --label example-db \\\n --region us-east \\\n --type g6-dedicated-2 \\\n --cluster_size 3 \\\n --engine postgresql/13.2 \\\n --engine_config.shared_buffers_percentage 41.5 \\\n --engine_config.pg.autovacuum_analyze_scale_factor 0.0 \\\n --engine_config.pg.autovacuum_vacuum_cost_delay 60 \\\n --engine_config.pg.pg_partman_bgw.interval 3600 \\\n --engine_config.pg.pg_partman_bgw.role myrolename \\\n --engine_config.pglookout.max_failover_replication_time_lag 60 \\\n --ssl_connection true \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n databases:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "**Provision a PostgreSQL Managed Database**\n\nUse this operation to create a new PostgreSQL Managed Database.\n\n- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).\n\n- New instances can take 10 to 15 minutes to deploy.\n\n- When you create a new PostgreSQL Managed Database, our partner [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption) automatically enables disk encryption on each cluster.\n\n- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.\n\n- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the PostgreSQL Managed Database. Configure the maintenance window for these updates with the [Update a managed PostgreSQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance) operation.\n\n- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n**Beta** **Virtual Private Cloud (VPC) support**\n\nYou can create a PostgreSQL Managed Database in a VPC using the `private_network` object in the request. Talk to your Akamai account team for more details.\n\n> \ud83d\udcd8\n>\n> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.\n\n**Restore a PostgreSQL Managed Database**\n\nInclude the `fork` object in the request to target a backed-up database. Your user needs `read_write` access to the target database and its status can be `active`, `degraded`, or `failed`.\n\n> \ud83d\udcd8\n>\n> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli databases postgresql-create \\\n --label example-db \\\n --region us-east \\\n --type g6-dedicated-2 \\\n --cluster_size 3 \\\n --engine postgresql/13.2 \\\n --engine_config.shared_buffers_percentage 41.5 \\\n --engine_config.pg.autovacuum_analyze_scale_factor 0.0 \\\n --engine_config.pg.autovacuum_vacuum_cost_delay 60 \\\n --engine_config.pg.pg_partman_bgw.interval 3600 \\\n --engine_config.pg.pg_partman_bgw.role myrolename \\\n --engine_config.pglookout.max_failover_replication_time_lag 60 \\\n --ssl_connection true \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n databases:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances" @@ -31395,6 +32683,11 @@ "source": 176881 }, "label": "example-db", + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, "region": "us-east", "ssl_connection": true, "type": "g6-dedicated-2" @@ -31677,7 +32970,7 @@ "type": "integer" }, "pg_partman_bgw.role": { - "description": "Controls which role to use for `pg_partman`` scheduled background tasks.", + "description": "Controls which role to use for `pg_partman` scheduled background tasks.", "example": "myrolename", "type": "string" }, @@ -31850,8 +33143,35 @@ "x-linode-cli-display": 2, "x-linode-filterable": true }, + "private_network": { + "additionalProperties": false, + "description": "__Beta__ Restricts access on a PostgreSQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` to allow clients outside of the VPC to connect to the database using a public IP address. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "If the `vpc_id` includes subnets, you can include the one you want to limit access to the database. From the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation, store the `id` for the applicable `subnets` object.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the applicable VPC.", + "example": 123, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "region": { - "description": "__Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database.", + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", "example": "{{region}}", "type": "string", "x-akamai": { @@ -31984,6 +33304,11 @@ "oldest_restore_time": "2025-01-01T00:01:01", "platform": "rdbms-default", "port": 3306, + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, "region": "us-east", "ssl_connection": true, "status": "active", @@ -32300,7 +33625,7 @@ "type": "integer" }, "pg_partman_bgw.role": { - "description": "Controls which role to use for `pg_partman`` scheduled background tasks.", + "description": "Controls which role to use for `pg_partman` scheduled background tasks.", "example": "myrolename", "type": "string" }, @@ -32528,7 +33853,7 @@ "type": "integer" }, "region": { - "description": "__Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database.", + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", "example": "us-east", "type": "string", "x-akamai": { @@ -32896,6 +34221,11 @@ "oldest_restore_time": "2024-10-03T20:48:05", "platform": "rdbms-default", "port": 3306, + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, "region": "us-east", "ssl_connection": true, "status": "active", @@ -33250,7 +34580,7 @@ "type": "integer" }, "pg_partman_bgw.role": { - "description": "Controls which role to use for `pg_partman`` scheduled background tasks.", + "description": "Controls which role to use for `pg_partman` scheduled background tasks.", "example": "myrolename", "type": "string" }, @@ -33484,8 +34814,35 @@ "readOnly": true, "type": "integer" }, + "private_network": { + "additionalProperties": false, + "description": "__Beta__ Restricts access to a PostgreSQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The specific subnet, in the VPC (`vpc_id`) where the Managed Database cluster can be accessed.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC where this database exists.", + "example": 123, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "region": { - "description": "__Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database.", + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", "example": "us-east", "type": "string", "x-akamai": { @@ -33852,6 +35209,11 @@ "oldest_restore_time": "2024-10-03T20:48:05", "platform": "rdbms-default", "port": 3306, + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, "region": "us-east", "ssl_connection": true, "status": "active", @@ -34168,7 +35530,7 @@ "type": "integer" }, "pg_partman_bgw.role": { - "description": "Controls which role to use for `pg_partman`` scheduled background tasks.", + "description": "Controls which role to use for `pg_partman` scheduled background tasks.", "example": "myrolename", "type": "string" }, @@ -34402,8 +35764,35 @@ "readOnly": true, "type": "integer" }, + "private_network": { + "additionalProperties": false, + "description": "__Beta__ Restricts access to a PostgreSQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The specific subnet, in the VPC (`vpc_id`) where the Managed Database cluster can be accessed.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC where this database exists.", + "example": 123, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "region": { - "description": "__Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database.", + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", "example": "us-east", "type": "string", "x-akamai": { @@ -34645,7 +36034,7 @@ "x-linode-grant": "read_only" }, "put": { - "description": "Make changes to an existing PostgreSQL Managed Database.\n\n- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.\n\n- The database's status needs to be `active`.\n\n- New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation.\n\n- Updates to your `allow_list` may take a short period of time to complete, making this operation inappropriate for rapid successive updates.\n\n- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.\n\n- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed PostgreSQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates.\n\n- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- You can't update `engine_config` advanced parameter settings for a suspended database. You'll need to [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-postgre-sql-instance) it first.\n\n- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli databases postgresql-update 123 \\\n --label example-db \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24 \\\n --type g6-standard-1 \\\n --updates.frequency weekly \\\n --updates.duration 3 \\\n --updates.hour_of_day 12 \\\n --updates.day_of_week 4 \\\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n databases:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Make changes to an existing PostgreSQL Managed Database.\n\n- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.\n\n- The database's status needs to be `active`.\n\n- New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation.\n\n- Updates to your `allow_list` may take a short period of time to complete, making this operation inappropriate for rapid successive updates.\n\n- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.\n\n- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed PostgreSQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates.\n\n- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n- You can't update `engine_config` advanced parameter settings for a suspended database. You'll need to [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-postgre-sql-instance) it first.\n\n- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n- **Beta**. You can update an existing PostgreSQL Managed Database to move it to a Virtual Private Cloud (VPC) using the `private_network` object in the request. This support is in beta. Talk to your Akamai account team for more details.\n\n > \ud83d\udcd8\n >\n > Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli databases postgresql-update 123 \\\n --label example-db \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24 \\\n --type g6-standard-1 \\\n --updates.frequency weekly \\\n --updates.duration 3 \\\n --updates.hour_of_day 12 \\\n --updates.day_of_week 4 \\\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n databases:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance" @@ -34713,6 +36102,11 @@ "work_mem": 4 }, "label": "example-db", + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, "type": "g6-standard-1", "updates": { "day_of_week": 1, @@ -34983,7 +36377,7 @@ "type": "integer" }, "pg_partman_bgw.role": { - "description": "Controls which role to use for `pg_partman`` scheduled background tasks.", + "description": "Controls which role to use for `pg_partman` scheduled background tasks.", "example": "myrolename", "type": "string" }, @@ -35132,6 +36526,33 @@ "x-linode-cli-display": 2, "x-linode-filterable": true }, + "private_network": { + "additionalProperties": false, + "description": "__Beta__ Restricts access on a PostgreSQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "Set to `true` to allow clients outside of the VPC to connect to the database using a public IP address. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "If the `vpc_id` includes subnets, you can include the one you want to limit access to the database. From the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation, store the `id` for the applicable `subnets` object.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC you want to use to enable private access to the Managed Database. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the applicable VPC.", + "example": 123, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "type": { "description": "Request re-sizing of your cluster to a Linode Type with more disk space. For example, you could request a Linode Type that uses a higher plan.\n\n- Needs to be a Linode Type with more disk space than your current Linode.\n\n- Resizing to a larger Linode Type can accrue additional cost. Review the `price` output from the [List types](https://techdocs.akamai.com/linode-api/reference/get-linode-types) operation for more information.\n\n- You can't update the `allow_list` and set a new `type` in the same request.\n\n- Any active updates to your cluster need to complete before you can request a resize. The reverse is also true: An active resizing needs to complete before you can perform any other update.", "example": "{{type}}", @@ -35312,6 +36733,11 @@ "oldest_restore_time": "2024-10-03T20:48:05", "platform": "rdbms-default", "port": 3306, + "private_network": { + "public_access": false, + "subnet_id": 456, + "vpc_id": 123 + }, "region": "us-east", "ssl_connection": true, "status": "active", @@ -35628,7 +37054,7 @@ "type": "integer" }, "pg_partman_bgw.role": { - "description": "Controls which role to use for `pg_partman`` scheduled background tasks.", + "description": "Controls which role to use for `pg_partman` scheduled background tasks.", "example": "myrolename", "type": "string" }, @@ -35862,8 +37288,35 @@ "readOnly": true, "type": "integer" }, + "private_network": { + "additionalProperties": false, + "description": "__Beta__ Restricts access to a PostgreSQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured.", + "nullable": true, + "properties": { + "public_access": { + "default": false, + "description": "When set to `true`, clients outside of the VPC can connect to the database. Defaults to `false`, where only nodes within the specified `vpc_id` can access the Managed Database cluster.\n\n> \ud83d\udcd8\n>\n> If your Managed Database is also configured using an `allow_list`, only IP addresses set in it can access that database, even if this object is set to `true`.", + "example": true, + "type": "boolean" + }, + "subnet_id": { + "description": "The specific subnet, in the VPC (`vpc_id`) where the Managed Database cluster can be accessed.", + "example": 456, + "type": "integer" + }, + "vpc_id": { + "description": "The unique identifier of the VPC where this database exists.", + "example": 123, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "status": "BETA" + } + }, "region": { - "description": "__Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database.", + "description": "__Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives.", "example": "us-east", "type": "string", "x-akamai": { @@ -37094,7 +38547,7 @@ "example": { "data": [ { - "class": "nanode", + "class": "dedicated", "deprecated": false, "disk": 25600, "engines": { @@ -37117,8 +38570,8 @@ } ] }, - "id": "g6-nanode-1", - "label": "DBaaS - Nanode 1GB", + "id": "g6-dedicated-1", + "label": "DBaaS - Dedicated 80GB", "memory": 1024, "vcpus": 1 } @@ -37165,8 +38618,13 @@ "description": "Managed Database plan type object.", "properties": { "class": { - "description": "The compute class category.", - "example": "nanode", + "description": "The Linode class category. This can be [dedicated](https://techdocs.akamai.com/cloud-computing/docs/dedicated-cpu-compute-instances), [shared](https://techdocs.akamai.com/cloud-computing/docs/shared-cpu-compute-instances), or [premium](https://techdocs.akamai.com/cloud-computing/docs/premium-compute-instances).\n\n> \ud83d\udcd8\n>\n> Premium plan Linodes are available in limited regions.", + "enum": [ + "dedicated", + "shared", + "premium" + ], + "example": "dedicated", "type": "string" }, "disk": { @@ -37472,7 +38930,7 @@ "content": { "application/json": { "example": { - "class": "nanode", + "class": "dedicated", "disk": 25600, "engines": { "mysql": [ @@ -37494,8 +38952,8 @@ } ] }, - "id": "g6-nanode-1", - "label": "DBaaS - Nanode 1GB", + "id": "g6-dedicated-1", + "label": "DBaaS - Dedicated 80GB", "memory": 1024, "vcpus": 1 }, @@ -37504,8 +38962,13 @@ "description": "Managed Database plan type object.", "properties": { "class": { - "description": "The compute class category.", - "example": "nanode", + "description": "The Linode class category. This can be [dedicated](https://techdocs.akamai.com/cloud-computing/docs/dedicated-cpu-compute-instances), [shared](https://techdocs.akamai.com/cloud-computing/docs/shared-cpu-compute-instances), or [premium](https://techdocs.akamai.com/cloud-computing/docs/premium-compute-instances).\n\n> \ud83d\udcd8\n>\n> Premium plan Linodes are available in limited regions.", + "enum": [ + "dedicated", + "shared", + "premium" + ], + "example": "dedicated", "type": "string" }, "disk": { @@ -41406,7 +42869,7 @@ }, "/{apiVersion}/images": { "post": { - "description": "Captures a private, gold-master image from a Linode disk.\n\n> \ud83d\udcd8\n>\n> - When you capture an image, we store it using our Object Storage service. The `region` where the target image exists determines where the [resulting image is stored](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-captured-custom-images).\n>\n> - When you create a new image, we automatically encrypt it for its protection. Images remain encrypted at rest, in storage, in caching, and in transit. When you deploy an image to a [new](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-a-new-compute-instance) or [existing](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-an-existing-compute-instance) Linode, we automatically decrypt it. If you've enabled encryption for a Linode you want to create an image of, we also encrypt the image. When you deploy that image, the image is decrypted and the resulting disk will be automatically encrypted.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli images create \\\n --label this_is_a_label \\\n --description \"A longer description \\\n of the image\" \\\n --disk_id 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\nlinodes:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Captures a private, gold-master image from a Linode disk and stores it for later use.\n\n> \ud83d\udc4d There's a tutorial\n>\n> This operation has specific requirements for use. Check out its [workflow](https://techdocs.akamai.com/linode-api/reference/capture-an-image) for details.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli images create \\\n --label this_is_a_label \\\n --description \"A longer description \\\n of the image\" \\\n --disk_id 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\nlinodes:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-image" @@ -41503,7 +42966,7 @@ "type": "string" }, "deprecated": { - "description": "__Filterable__, __Read-only__ Whether this image is deprecated. Only public images can be deprecated.", + "description": "__Filterable__, __Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated.", "example": false, "readOnly": true, "type": "boolean", @@ -41528,7 +42991,7 @@ "x-linode-cli-display": 4 }, "eol": { - "description": "__Read-only__ The date of the public image's planned removal from service. This is `null` for private images.", + "description": "__Read-only__ The time of the public image's planned removal from service. This is `null` for private images.", "example": "2026-07-01T04:00:00", "format": "date-time", "nullable": true, @@ -41545,14 +43008,117 @@ }, "id": { "description": "__Read-only__ The unique identifier for each image.", - "example": "linode/debian11", + "example": "private/15", "readOnly": true, "type": "string", "x-linode-cli-display": 1 }, + "image_sharing": { + "description": "Details about image sharing.", + "oneOf": [ + { + "additionalProperties": false, + "example": { + "shared_by": null, + "shared_with": { + "sharegroup_count": 0, + "sharegroup_list_url": "/images/private/15/sharegroups" + } + }, + "properties": { + "shared_by": { + "description": "This field is `null` in this case, meaning the image is not shared by any group. See the `shared_with` field for details on the image's share group.", + "nullable": true, + "type": "object" + }, + "shared_with": { + "additionalProperties": false, + "description": "Specifies the group that the image is shared with, including the number of share groups and a URL to view the share groups' list.", + "properties": { + "sharegroup_count": { + "description": "The number of share groups the image is shared with.", + "type": "integer" + }, + "sharegroup_list_url": { + "description": "A URL to view the list of share groups the image is shared with.", + "type": "string" + } + }, + "required": [ + "sharegroup_count", + "sharegroup_list_url" + ], + "type": "object" + } + }, + "required": [ + "shared_with", + "shared_by" + ], + "title": "shared_with", + "type": "object" + }, + { + "additionalProperties": false, + "example": { + "shared_by": { + "sharegroup_id": 3, + "sharegroup_label": "label", + "sharegroup_uuid": "8003abfe-6b03-41a1-9e4c-a234ae3060c8", + "source_image_id": null + }, + "shared_with": null + }, + "properties": { + "shared_by": { + "additionalProperties": false, + "description": "Specifies the details of the share group that is sharing the image.", + "properties": { + "sharegroup_id": { + "description": "The share group's identifier.", + "type": "integer" + }, + "sharegroup_label": { + "description": "The share group's descriptive name.", + "type": "string" + }, + "sharegroup_uuid": { + "description": "The share group's unique identifier.", + "format": "uuid", + "type": "string" + }, + "source_image_id": { + "description": "The source image's slug identifier. `null` if no specific source image is referenced.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "sharegroup_id", + "sharegroup_uuid", + "sharegroup_label", + "source_image_id" + ], + "type": "object" + }, + "shared_with": { + "description": "This field is `null` in this case, meaning the image is not shared with anyone. See the `shared_by` fields for additional details about this shared image.", + "nullable": true, + "type": "object" + } + }, + "required": [ + "shared_with", + "shared_by" + ], + "title": "shared_by", + "type": "object" + } + ] + }, "is_public": { - "description": "__Filterable__, __Read-only__ Revealed as `true` if the image is a public distribution image. Private, account-specific images are listed as `false`.", - "example": true, + "description": "__Filterable__, __Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images.", + "example": false, "readOnly": true, "type": "boolean", "x-akamai": { @@ -41563,6 +43129,24 @@ "x-linode-cli-display": 5, "x-linode-filterable": true }, + "is_shared": { + "description": "__Filterable__, __Read-only__ A `true` value for shared private images. `none` for images shared within a group.", + "enum": [ + true, + false, + "none" + ], + "example": false, + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 11, + "x-linode-filterable": true + }, "label": { "description": "__Filterable__ A short description of the image.", "example": "Debian 11", @@ -41666,10 +43250,11 @@ "x-linode-cli-display": 9 }, "type": { - "description": "__Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance.", + "description": "__Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image.", "enum": [ "manual", - "automatic" + "automatic", + "shared" ], "example": "manual", "readOnly": true, @@ -41707,6 +43292,28 @@ "x-linode-filterable": true } }, + "required": [ + "id", + "tags", + "type", + "description", + "label", + "created", + "updated", + "size", + "status", + "capabilities", + "is_public", + "is_shared", + "deprecated", + "regions", + "total_size", + "image_sharing", + "created_by", + "expiry", + "eol", + "vendor" + ], "type": "object", "x-akamai": { "file-path": "schemas/image.yaml" @@ -41789,7 +43396,7 @@ "x-linode-grant": "add_images" }, "get": { - "description": "Returns a paginated list of images. An image can be one of two types:\n\n- **Public image**. The `id` for these images begins with `linode/`. These images are generally available to all users. To limit the response to public images, don't include [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication) when calling this operation.\n\n- **Private image**. The `id` for these images begins with `private/`. These images are account-specific and only accessible to users with appropriate [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants). To view private images, you need to include authentication when calling this operation. The response includes both private and public images.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli images list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of images. An image can be one of two types:\n\n- **Public image**. The `id` for these images begins with `linode/`. These images are generally available to all users. To limit the response to public images, don't include [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication) when calling this operation.\n\n- **Private image**. The `id` for these images begins with `private/`. These images are account-specific and only accessible to users with appropriate [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants). To view private images, you need to include authentication when calling this operation. The response includes both private and public images.\n\n- **Shared image**. The `id` for these images begins with `shared/`. These are the images that are shared with the user.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli images list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-images" @@ -41868,7 +43475,7 @@ "type": "string" }, "deprecated": { - "description": "__Filterable__, __Read-only__ Whether this image is deprecated. Only public images can be deprecated.", + "description": "__Filterable__, __Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated.", "example": false, "readOnly": true, "type": "boolean", @@ -41893,7 +43500,7 @@ "x-linode-cli-display": 4 }, "eol": { - "description": "__Read-only__ The date of the public image's planned removal from service. This is `null` for private images.", + "description": "__Read-only__ The time of the public image's planned removal from service. This is `null` for private images.", "example": "2026-07-01T04:00:00", "format": "date-time", "nullable": true, @@ -41910,14 +43517,117 @@ }, "id": { "description": "__Read-only__ The unique identifier for each image.", - "example": "linode/debian11", + "example": "private/15", "readOnly": true, "type": "string", "x-linode-cli-display": 1 }, + "image_sharing": { + "description": "Details about image sharing.", + "oneOf": [ + { + "additionalProperties": false, + "example": { + "shared_by": null, + "shared_with": { + "sharegroup_count": 0, + "sharegroup_list_url": "/images/private/15/sharegroups" + } + }, + "properties": { + "shared_by": { + "description": "This field is `null` in this case, meaning the image is not shared by any group. See the `shared_with` field for details on the image's share group.", + "nullable": true, + "type": "object" + }, + "shared_with": { + "additionalProperties": false, + "description": "Specifies the group that the image is shared with, including the number of share groups and a URL to view the share groups' list.", + "properties": { + "sharegroup_count": { + "description": "The number of share groups the image is shared with.", + "type": "integer" + }, + "sharegroup_list_url": { + "description": "A URL to view the list of share groups the image is shared with.", + "type": "string" + } + }, + "required": [ + "sharegroup_count", + "sharegroup_list_url" + ], + "type": "object" + } + }, + "required": [ + "shared_with", + "shared_by" + ], + "title": "shared_with", + "type": "object" + }, + { + "additionalProperties": false, + "example": { + "shared_by": { + "sharegroup_id": 3, + "sharegroup_label": "label", + "sharegroup_uuid": "8003abfe-6b03-41a1-9e4c-a234ae3060c8", + "source_image_id": null + }, + "shared_with": null + }, + "properties": { + "shared_by": { + "additionalProperties": false, + "description": "Specifies the details of the share group that is sharing the image.", + "properties": { + "sharegroup_id": { + "description": "The share group's identifier.", + "type": "integer" + }, + "sharegroup_label": { + "description": "The share group's descriptive name.", + "type": "string" + }, + "sharegroup_uuid": { + "description": "The share group's unique identifier.", + "format": "uuid", + "type": "string" + }, + "source_image_id": { + "description": "The source image's slug identifier. `null` if no specific source image is referenced.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "sharegroup_id", + "sharegroup_uuid", + "sharegroup_label", + "source_image_id" + ], + "type": "object" + }, + "shared_with": { + "description": "This field is `null` in this case, meaning the image is not shared with anyone. See the `shared_by` fields for additional details about this shared image.", + "nullable": true, + "type": "object" + } + }, + "required": [ + "shared_with", + "shared_by" + ], + "title": "shared_by", + "type": "object" + } + ] + }, "is_public": { - "description": "__Filterable__, __Read-only__ Revealed as `true` if the image is a public distribution image. Private, account-specific images are listed as `false`.", - "example": true, + "description": "__Filterable__, __Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images.", + "example": false, "readOnly": true, "type": "boolean", "x-akamai": { @@ -41928,6 +43638,24 @@ "x-linode-cli-display": 5, "x-linode-filterable": true }, + "is_shared": { + "description": "__Filterable__, __Read-only__ A `true` value for shared private images. `none` for images shared within a group.", + "enum": [ + true, + false, + "none" + ], + "example": false, + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 11, + "x-linode-filterable": true + }, "label": { "description": "__Filterable__ A short description of the image.", "example": "Debian 11", @@ -42031,10 +43759,11 @@ "x-linode-cli-display": 9 }, "type": { - "description": "__Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance.", + "description": "__Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image.", "enum": [ "manual", - "automatic" + "automatic", + "shared" ], "example": "manual", "readOnly": true, @@ -42072,6 +43801,28 @@ "x-linode-filterable": true } }, + "required": [ + "id", + "tags", + "type", + "description", + "label", + "created", + "updated", + "size", + "status", + "capabilities", + "is_public", + "is_shared", + "deprecated", + "regions", + "total_size", + "image_sharing", + "created_by", + "expiry", + "eol", + "vendor" + ], "type": "object", "x-akamai": { "file-path": "schemas/image.yaml" @@ -42206,74 +43957,72 @@ }, "x-linode-cli-command": "images" }, - "/{apiVersion}/images/upload": { + "/{apiVersion}/images/sharegroups": { "post": { - "description": "Creates a new private image container and returns a URL as the `upload_to` object in the response. Use this URL to upload your own disk image to the container.\n\n1. Ensure the disk image is raw disk image (`.img`) format.\n\n2. Compress the disk image using gzip (`.gz`) format. Compressed, the file can be up to 5 GB and decompressed it can be up to 6 GB.\n\n3. Upload the file in a separate PUT request that includes the `Content-type: application/octet-stream` header:\n\n ```\n curl -v \\\n -H \"Content-Type: application/octet-stream\" \\\n --upload-file example.img.gz \\\n $UPLOAD_URL \\\n --progress-bar \\\n --output /dev/null\n ```\n\n> \ud83d\udcd8\n>\n> - You need to upload image data within 24 hours of creation or the API cancels the upload and deletes the image container.\n>\n> - Only core regions that support our [Object Storage](https://techdocs.akamai.com/cloud-computing/reference/how-to-choose-a-data-center#product-availability) service can store an uploaded image.\n>\n> - When you create a new image, we automatically encrypt it for its protection. Images remain encrypted at rest, in storage, in caching, and in transit. When you deploy an image to a [new](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-a-new-compute-instance) or [existing](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-an-existing-compute-instance) Linode, we automatically decrypt it. If you've enabled encryption for a Linode you want to create an image of, we also encrypt the image. When you deploy that image, the image is decrypted and the resulting disk will be automatically encrypted.\n>\n> - You can create a new image and upload image data using a single process through [Cloud Manager](https://www.linode.com/docs/products/tools/images/guides/upload-an-image/#uploading-an-image-file-through-the-cloud-manager) or the [Linode CLI](https://www.linode.com/docs/products/tools/images/guides/upload-an-image/#uploading-an-image-file-through-the-linode-cli).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n # Run the operation to just get the upload_to URL\nlinode-cli images upload \\\n --description \"Optional details about the Image\" \\\n --label \"Example Image\" \\\n --region us-east\n\n# Upload the image file in a single step\nlinode-cli image-upload \\\n --description \"Optional details about the Image\" \\\n --label \"Example Image\" \\\n --region us-east \\\n /path/to/image-file.img.gz\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Creates a group to share images with other users. \n\n- Include existing `images` in the request or [Add images to a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-images) later. Run the [Get an image](https://techdocs.akamai.com/linode-api/reference/get-image) operation to see the existing images' `id` values. If needed, [Create an image](https://techdocs.akamai.com/linode-api/reference/post-image) or [Upload an image](https://techdocs.akamai.com/linode-api/reference/post-upload-image).\n\n- You can set a `label` and `description` for the group and each image, visible to all group members. \n\n- If omitted, the shared image keeps the original `label` and `description`. Note that when you [Update the original image](https://techdocs.akamai.com/linode-api/reference/put-image), it has no effect on shared image's details within any groups.\n\n- Run the [Add members to a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-members) to include other users in the group. Use the group's `uuid` from the response to [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) for user authentication.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups create --label \"my_label\" --description \"my_description\" \\\n --images '[{\"id\": \"private/15\", \"label\": \"Linux Debian\", \"description\": \"Official Debian Linux image for server deployment\"}]'\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", - "url": "https://techdocs.akamai.com/linode-api/reference/post-upload-image" + "url": "https://techdocs.akamai.com/linode-api/reference/post-sharegroups" }, - "operationId": "post-upload-image", + "operationId": "post-sharegroups", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { - "cloud_init": { - "description": "Whether the uploaded Image supports cloud-init.", - "example": "{{cloud_init}}", - "type": "boolean" - }, "description": { - "description": "Description for the uploaded image.", + "description": "A detailed description of this share group.", "example": "{{description}}", "type": "string" }, - "label": { - "description": "Label for the uploaded image.", - "example": "{{label}}", - "type": "string" - }, - "region": { - "description": "The region to upload to. Once uploaded, the image can be used in any region.", - "example": "{{region}}", - "type": "string" - }, - "tags": { - "description": "Tags you can use to organize images. A tag can be from 3 to 100 characters long, and an image can have a maximum of 500 total tags.", - "example": [ - "repair-image", - "fix-1" - ], + "images": { + "description": "A list of image's details, including the ID, label, and description.", "items": { - "maxLength": 100, - "minLength": 3, - "type": "string" + "additionalProperties": false, + "properties": { + "description": { + "description": "The image's description within the share group.", + "example": "Official Debian Linux image for server deployment", + "type": "string" + }, + "id": { + "description": "The private image\u2019s unique slug identifier.", + "example": "private/7", + "type": "string" + }, + "label": { + "description": "The image's name within the share group.", + "example": "Linux Debian", + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" }, - "maxItems": 500, - "minItems": 0, "type": "array" + }, + "label": { + "description": "The share group's descriptive name.", + "example": "{{label}}", + "type": "string" } }, "required": [ - "label", - "region" + "label" ], "type": "object", "x-akamai": { - "file-path": "schemas/added-post-upload-image.yaml" + "file-path": "schemas/post-sharegroup.yaml" } }, "x-example": { - "x-ref": "../examples/post-upload-image.json" + "x-ref": "../examples/post-sharegroup.json" } } - }, - "description": "The uploaded image details.", - "x-linode-cli-allowed-defaults": [ - "region" - ] + } }, "responses": { "200": { @@ -42281,264 +44030,5388 @@ "application/json": { "schema": { "additionalProperties": false, + "description": "The share group's details.", "properties": { - "image": { - "additionalProperties": false, - "description": "Image object.", - "properties": { - "capabilities": { - "description": "__Read-only__ A list of the possible capabilities of this image.\n\n- `cloud-init`. The image supports the cloud-init multi-distribution method with our [Metadata service](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/#troubleshoot-metadata-and-cloud-init). This only applies to public images.\n\n- `distributed-sites`. Whether the image can be used in distributed compute regions. Compared to a core compute region, distributed compute regions offer limited functionality, but they're globally distributed. Your image can be geographically closer to you, potentially letting you deploy it quicker. See [Regions and images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images) for complete details.", - "example": [ - "cloud-init", - "distributed-sites" - ], - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array", - "x-linode-cli-display": 8 - }, - "created": { - "description": "__Read-only__ When this image was created.", - "example": "2021-08-14T22:44:02", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "created_by": { - "description": "__Read-only__ The name of the user who created this image, or `linode` for public images.", - "example": "linode", - "readOnly": true, - "type": "string" - }, - "deprecated": { - "description": "__Filterable__, __Read-only__ Whether this image is deprecated. Only public images can be deprecated.", - "example": false, - "readOnly": true, - "type": "boolean", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "description": { - "description": "A detailed description of this image.", - "example": "Example image description.", - "maxLength": 65000, - "minLength": 1, - "nullable": true, - "type": "string", - "x-linode-cli-color": { - "None": "black", - "default_": "white" - }, - "x-linode-cli-display": 4 - }, - "eol": { - "description": "__Read-only__ The date of the public image's planned removal from service. This is `null` for private images.", - "example": "2026-07-01T04:00:00", - "format": "date-time", - "nullable": true, - "readOnly": true, - "type": "string" - }, - "expiry": { - "description": "__Read-only__ Only images created automatically from a deleted compute instance (type=automatic) expire. This is `null` for private images.", - "example": null, - "format": "date-time", - "nullable": true, - "readOnly": true, - "type": "string" - }, - "id": { - "description": "__Read-only__ The unique identifier for each image.", - "example": "linode/debian11", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 1 - }, - "is_public": { - "description": "__Filterable__, __Read-only__ Revealed as `true` if the image is a public distribution image. Private, account-specific images are listed as `false`.", - "example": true, - "readOnly": true, - "type": "boolean", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 5, - "x-linode-filterable": true - }, - "label": { - "description": "__Filterable__ A short description of the image.", - "example": "Debian 11", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "regions": { - "description": "__Read-only__ Details on the regions where this image is stored. See [Regions and images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images) for full details on support for `regions`.", - "items": { - "additionalProperties": false, - "properties": { - "region": { - "description": "The unique identifier for the core compute region where this image is stored.", - "example": "us-iad", - "type": "string" - }, - "status": { - "description": "The status of the image in this `region`. Possible values are `available`, `creating`, `pending`, `pending deletion`, `pending replication`, or `replicating`.", - "enum": [ - "available", - "creating", - "pending", - "pending deletion", - "pending replication", - "replicating" - ], - "example": "available", - "type": "string" - } - }, - "type": "object" - }, - "readOnly": true, - "type": "array", - "x-linode-cli-format": "json" - }, - "size": { - "description": "__Filterable__, __Read-only__ The minimum size in MB this image needs to deploy.", - "example": 2500, - "readOnly": true, - "type": "integer", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 6, - "x-linode-filterable": true - }, - "status": { - "description": "__Filterable__, __Read-only__ The current status of the image. Possible values are `available`, `creating`, and `pending_upload`.\n\n> \ud83d\udcd8\n>\n> The `+order_by` and `+order` operators are not available when [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) on this key.", - "enum": [ - "creating", - "pending_upload", - "available" - ], - "example": "available", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 7, - "x-linode-filterable": true - }, - "tags": { - "description": "__Filterable__ Tags used for organizational purposes. A tag can be from 3 to 100 characters long, and an image can have a maximum of 500 total tags.", - "example": [ - "repair-image", - "fix-1" - ], - "items": { - "maxLength": 100, - "minLength": 3, - "type": "string" - }, - "maxItems": 500, - "minItems": 0, - "type": "array", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 10, - "x-linode-filterable": true - }, - "total_size": { - "description": "__Read-only__ The total size in bytes of all instances of this image, in all `regions`.\n\n> \ud83d\udcd8\n>\n> This object is empty for existing images. It's intended for use with future functionality.", - "example": 1234567, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 9 - }, - "type": { - "description": "__Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance.", - "enum": [ - "manual", - "automatic" - ], - "example": "manual", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "updated": { - "description": "__Read-only__ When this image was last updated.", - "example": "2021-08-14T22:44:02", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "vendor": { - "description": "__Filterable__, __Read-only__ The upstream distribution vendor. This is `null` for private images.", - "example": "Debian", - "nullable": true, - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-color": { - "None": "black", - "default_": "white" - }, - "x-linode-cli-display": 3, - "x-linode-filterable": true - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/image.yaml" - } + "created": { + "description": "__Read-only__ When this share group was created.", + "example": "2025-04-14T22:44:02", + "format": "date-time", + "readOnly": true, + "type": "string" }, - "upload_to": { - "description": "The URL to upload the Image to.", + "description": { + "description": "A detailed description of this share group.", + "example": "Group of base operating system images and engineers used for CI/CD pipelines and infrastructure automation", + "nullable": true, "type": "string", + "x-linode-cli-display": 4 + }, + "expiry": { + "description": "__Read-only__ When the share group expires.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "id": { + "description": "__Read-only__ The share group's numeric identifier, used primarily as path parameters in URLs.", + "example": 1, + "readOnly": true, + "type": "integer", "x-linode-cli-display": 1 + }, + "images_count": { + "description": "__Read-only__ The total number of images currently belonging to the share group.", + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 6 + }, + "is_suspended": { + "description": "__Read-only__ If `true`, the share group is currently suspended.", + "example": false, + "readOnly": true, + "type": "boolean", + "x-linode-cli-display": 5 + }, + "label": { + "description": "The share group's descriptive name.", + "example": "DevOps Base Images", + "type": "string", + "x-linode-cli-display": 2 + }, + "members_count": { + "description": "__Read-only__ The number of users with access to the share group.", + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 7 + }, + "updated": { + "description": "__Read-only__ When this share group was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "uuid": { + "description": "__Read-only__ The share group's unique identifier used for membership token management.", + "example": "1533863e-16a4-47b5-b829-ac0f35c13278", + "format": "uuid", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 3 } }, + "required": [ + "id", + "uuid", + "label", + "description", + "is_suspended", + "created", + "updated", + "expiry", + "images_count", + "members_count" + ], "type": "object", "x-akamai": { - "file-path": "schemas/added-post-upload-image-200.yaml" + "file-path": "schemas/sharegroup.yaml" } }, "x-example": { - "x-ref": "../examples/post-upload-image-200.json" + "x-ref": "../examples/post-sharegroup-200.json" } } }, - "description": "Image Upload object including the upload URL and image object." + "description": "New share group created successfully." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_write" + ] + } + ], + "summary": "Create a share group", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups create --label \"my_label\" --description \"my_description\" \\\n --images '[{\"id\": \"private/15\", \"label\": \"Linux Debian\", \"description\": \"Official Debian Linux image for server deployment\"}]'", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_write", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "create" + }, + "get": { + "description": "Lists all owned groups with shared images.\n\n> \ud83d\udcd8\n>\n> This operation doesn't list groups you're a member of. Run [Get a token's share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-by-token) to find these share groups using your membership token.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/get-sharegroups" + }, + "operationId": "get-sharegroups", + "parameters": [ + { + "description": "The page of a collection to return.", + "example": "{{page}}", + "in": "query", + "name": "page", + "required": false, + "schema": { + "default": 1, + "example": 6, + "minimum": 1, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/page-offset.yaml" + } + }, + { + "description": "The number of items to return per page.", + "example": "{{page_size}}", + "in": "query", + "name": "page_size", + "schema": { + "default": 100, + "example": 50, + "maximum": 500, + "minimum": 25, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/page-size.yaml" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "description": "The share group's details.", + "properties": { + "created": { + "description": "__Read-only__ When this share group was created.", + "example": "2025-04-14T22:44:02", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "The share group's detailed description.", + "example": "Group of base operating system images and engineers used for CI/CD pipelines and infrastructure automation", + "nullable": true, + "type": "string", + "x-linode-cli-display": 4 + }, + "expiry": { + "description": "__Read-only__ When the share group expires.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "id": { + "description": "The share group's numeric identifier, used primarily as path parameters in URLs.", + "example": 1, + "type": "integer", + "x-linode-cli-display": 1 + }, + "images_count": { + "description": "__Read-only__ The total number of images currently belonging to the share group.", + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 6 + }, + "is_suspended": { + "description": "__Read-only__ Indicates whether the share group is currently suspended.", + "example": false, + "readOnly": true, + "type": "boolean", + "x-linode-cli-display": 5 + }, + "label": { + "description": "__Filterable__ The share group's descriptive name.", + "example": "DevOps Base Images", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "members_count": { + "description": "__Read-only__ The number of users with access to the share group.", + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 7 + }, + "updated": { + "description": "__Read-only__ When this share group was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "uuid": { + "description": "The share group's unique identifier used for membership token management.", + "example": "1533863e-16a4-47b5-b829-ac0f35c13278", + "format": "uuid", + "type": "string", + "x-linode-cli-display": 3 + } + }, + "required": [ + "id", + "uuid", + "label", + "description", + "is_suspended", + "created", + "updated", + "expiry", + "images_count", + "members_count" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/sharegroups.yaml" + } + }, + "type": "array" + }, + "page": { + "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "pages": { + "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "results": { + "description": "__Read-only__ The total number of results.", + "example": 1, + "readOnly": true, + "type": "integer" + } + }, + "required": [ + "data", + "page", + "pages", + "results" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/get-sharegroups-200.yaml" + } + }, + "x-example": { + "x-ref": "../examples/post-sharegroup-images-200.json" + } + } + }, + "description": "A paginated list of sharegroups." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_only" + ] + } + ], + "summary": "List share groups", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups list", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_only", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": [ + "list", + "ls" + ], + "x-linode-redoc-load-ids": true + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/images-sharegroups.yaml", + "path-info": "/{apiVersion}/images/sharegroups", + "status": "BETA" + }, + "x-linode-cli-command": "image-sharegroups" + }, + "/{apiVersion}/images/sharegroups/tokens": { + "post": { + "description": "Creates a single-use membership token for users who want to join a share group with custom images.\n\n- Before creating a token, get the share group's UUID from its owner. The owner can run [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) or [Get a share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup) to get the group's UUID. If needed, [Create a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroups) and share the UUID with the user.\n\n- Share the `token` from the response with the share group owner. The owner can later use the token to [Add members to a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-members) and manage the users' membership within the group.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups token-create --label \"my_token\" --valid_for_sharegroup_uuid \"abc123\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens" + }, + "operationId": "post-sharegroup-tokens", + "requestBody": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "label": { + "description": "The token's descriptive name.", + "example": "{{label}}", + "type": "string" + }, + "valid_for_sharegroup_uuid": { + "description": "The unique identifier of the share group you want to create a token for.", + "example": "{{valid_for_sharegroup_uuid}}", + "type": "string" + } + }, + "required": [ + "valid_for_sharegroup_uuid" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/post-sharegroup-token.yaml" + } + }, + "x-example": { + "x-ref": "../examples/post-sharegroup-tokens.json" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "The share group membership token's details.", + "properties": { + "created": { + "description": "__Read-only__ When the token was created.", + "example": "2025-08-04T10:09:09", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "expiry": { + "description": "__Read-only__ When this token expires.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "label": { + "description": "The token's descriptive name.", + "example": "Backend Services - Engineering", + "nullable": true, + "type": "string", + "x-linode-cli-display": 2 + }, + "sharegroup_label": { + "description": "__Read-only__ The share group's descriptive name.", + "example": "DevOps Base Images", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 6 + }, + "sharegroup_uuid": { + "description": "__Read-only__ The share group's unique identifier.", + "example": "e1d0e58b-f89f-4237-84ab-b82077342359", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 5 + }, + "status": { + "description": "__Read-only__ The membership token's status:\n\n- `pending`: The token has been created but is not yet active.\n- `active`: The token is currently active and usable.\n- `revoked`: The token has been deleted and is no longer valid.\n- `expired`: The token has passed its validity period and is no longer usable.", + "enum": [ + "pending", + "active", + "revoked", + "expired" + ], + "example": "active", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 3 + }, + "token": { + "description": "__Read-only__ The single-use JWT membership token encoded as a string. It consists of three parts: header, payload, and signature. Shared image groups owners can use it to [Add members to a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-members).", + "example": "eyJhbGciOiJIUzI1 ... VNKDTt2yEiJVGSos", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 7 + }, + "token_uuid": { + "description": "__Read-only__ The membership token's unique identifier.", + "example": "13428362-5458-4dad-b14b-8d0d4d648f8c", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 1 + }, + "updated": { + "description": "__Read-only__ When the token was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "valid_for_sharegroup_uuid": { + "description": "__Read-only__ The unique identifier of the share group you created a token for.", + "example": "e1d0e58b-f89f-4237-84ab-b82077342359", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 4 + } + }, + "required": [ + "token", + "token_uuid", + "status", + "label", + "created", + "updated", + "expiry", + "valid_for_sharegroup_uuid", + "sharegroup_uuid", + "sharegroup_label" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/post-sharegroup-token-200.yaml" + } + }, + "x-example": { + "x-ref": "../examples/post-sharegroup-tokens-200.json" + } + } + }, + "description": "Token generated successfully." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_write" + ] + } + ], + "summary": "Create a token", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups token-create --label \"my_token\" --valid_for_sharegroup_uuid \"abc123\"", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_write", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "token-create", + "x-linode-redoc-load-ids": true + }, + "get": { + "description": "Get details about all the user's tokens.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups tokens-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/get-user-tokens" + }, + "operationId": "get-user-tokens", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "description": "ImageShareGroupMemberTokens object.", + "properties": { + "created": { + "description": "__Read-only__ The creation time of this token.", + "example": "2025-08-04T10:09:09", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "expiry": { + "description": "__Read-only__ The time when this token expires.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "label": { + "description": "__Filterable__ A short description of the token.", + "example": "Backend Services - Engineering", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "sharegroup_label": { + "description": "__Filterable__, __Read-only__ Associated share group label.", + "example": "DevOps Base Images", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 6, + "x-linode-filterable": true + }, + "sharegroup_uuid": { + "description": "__Filterable__, __Read-only__ The unique identifier of the share group you created a token for.", + "example": "e1d0e58b-f89f-4237-84ab-b82077342359", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 5, + "x-linode-filterable": true + }, + "status": { + "description": "__Filterable__, __Read-only__ Represents the current token status.\n\n- `pending`: The token has been created but is not yet active.\n- `active`: The token is currently active and usable.\n- `revoked`: The token has been deleted and is no longer valid.\n- `expired`: The token has passed its validity period and is no longer usable.", + "enum": [ + "pending", + "active", + "revoked", + "expired" + ], + "example": "active", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true + }, + "token_uuid": { + "description": "__Read-only__ A unique identifier for the token, used to reference it after creation.", + "example": "13428362-5458-4dad-b14b-8d0d4d648f8c", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 1 + }, + "updated": { + "description": "__Read-only__ The time when this token was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "valid_for_sharegroup_uuid": { + "description": "__Filterable__, __Read-only__ UUID identifying the associated share group.", + "example": "e1d0e58b-f89f-4237-84ab-b82077342359", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 4, + "x-linode-filterable": true + } + }, + "required": [ + "token_uuid", + "status", + "label", + "created", + "updated", + "expiry", + "valid_for_sharegroup_uuid", + "sharegroup_uuid", + "sharegroup_label" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/tokens.yaml" + } + }, + "type": "array" + }, + "page": { + "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "pages": { + "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "results": { + "description": "__Read-only__ The total number of results.", + "example": 1, + "readOnly": true, + "type": "integer" + } + }, + "required": [ + "data", + "page", + "pages", + "results" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/get-sharegroup-tokens-200.yaml" + } + }, + "x-example": { + "x-ref": "../examples/get-sharegroup-tokens-200.json" + } + } + }, + "description": "Returns a paginated list of the tokens." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_only" + ] + } + ], + "summary": "List a user's tokens", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups tokens-list", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_only", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "tokens-list", + "x-linode-redoc-load-ids": true + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/images-sharegroup-tokens.yaml", + "path-info": "/{apiVersion}/images/sharegroups/tokens", + "status": "BETA" + }, + "x-linode-cli-command": "image-sharegroups" + }, + "/{apiVersion}/images/sharegroups/tokens/{tokenUuid}": { + "get": { + "description": "Get details about a membership token as a share group member. Run this operation to check the `status` of a pending membership request or your current group membership.\n\n- To get the `token_uuid`, run the [List tokens](https://techdocs.akamai.com/linode-api/reference/get-user-tokens) or [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) operation to generate one for the share group you want to join.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups token-view abc123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/get-sharegroup-token" + }, + "operationId": "get-sharegroup-token", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "ImageShareGroupMemberTokens object.", + "properties": { + "created": { + "description": "__Read-only__ When this token was created.", + "example": "2025-08-04T10:09:09", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "expiry": { + "description": "__Read-only__ When this token expires.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "label": { + "description": "A short description of the token.", + "example": "Backend Services - Engineering", + "type": "string", + "x-linode-cli-display": 2 + }, + "sharegroup_label": { + "description": "__Read-only__ The share group's descriptive name.", + "example": "DevOps Base Images", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 6 + }, + "sharegroup_uuid": { + "description": "__Read-only__ The share group's unique identifier.", + "example": "e1d0e58b-f89f-4237-84ab-b82077342359", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 5 + }, + "status": { + "description": "__Read-only__ Represents the current token status.\n\n- `pending`: The token has been created but is not yet active.\n- `active`: The token is currently active and usable.\n- `revoked`: The token has been deleted and is no longer valid.\n- `expired`: The token has passed its validity period and is no longer usable.", + "enum": [ + "pending", + "active", + "revoked", + "expired" + ], + "example": "active", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 3 + }, + "token_uuid": { + "description": "__Read-only__ A unique identifier for the token, used to reference it after creation.", + "example": "13428362-5458-4dad-b14b-8d0d4d648f8c", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 1 + }, + "updated": { + "description": "__Read-only__ When this token was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "valid_for_sharegroup_uuid": { + "description": "__Read-only__ The unique identifier of the share group you created a token for.", + "example": "e1d0e58b-f89f-4237-84ab-b82077342359", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 4 + } + }, + "required": [ + "token_uuid", + "status", + "label", + "created", + "updated", + "expiry", + "valid_for_sharegroup_uuid", + "sharegroup_uuid", + "sharegroup_label" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/token.yaml" + } + }, + "x-example": { + "x-ref": "../examples/get-sharegroup-token-200.json" + } + } + }, + "description": "A single token object." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_only" + ] + } + ], + "summary": "Get a token", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups token-view abc123", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_only", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "token-view", + "x-linode-redoc-load-ids": true + }, + "put": { + "description": "Updates the `label` of an existing membership token for a share group member or a pending membership.\n\nTo get the `token_uuid`, run the [List tokens](https://techdocs.akamai.com/linode-api/reference/get-user-tokens) or [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) operation to generate one for the share group you want to join.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups token-update abc123 --label \"new_label\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/put-sharegroup-token" + }, + "operationId": "put-sharegroup-token", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The membership token's details to update.", + "properties": { + "label": { + "description": "The descriptive name of the token.", + "example": "{{label}}", + "type": "string" + } + }, + "required": [ + "label" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/put-sharegroup-token.yaml" + } + }, + "x-example": { + "x-ref": "../examples/put-sharegroup-token.json" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "ImageShareGroupMemberTokens object.", + "properties": { + "created": { + "description": "__Read-only__ When this token was created.", + "example": "2025-08-04T10:09:09", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "expiry": { + "description": "__Read-only__ When this token expires.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "label": { + "description": "A short description of the token.", + "example": "Backend Services - Engineering", + "type": "string", + "x-linode-cli-display": 2 + }, + "sharegroup_label": { + "description": "__Read-only__ The share group's descriptive name.", + "example": "DevOps Base Images", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 6 + }, + "sharegroup_uuid": { + "description": "__Read-only__ The share group's unique identifier.", + "example": "e1d0e58b-f89f-4237-84ab-b82077342359", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 5 + }, + "status": { + "description": "__Read-only__ Represents the current token status.\n\n- `pending`: The token has been created but is not yet active.\n- `active`: The token is currently active and usable.\n- `revoked`: The token has been deleted and is no longer valid.\n- `expired`: The token has passed its validity period and is no longer usable.", + "enum": [ + "pending", + "active", + "revoked", + "expired" + ], + "example": "active", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 3 + }, + "token_uuid": { + "description": "__Read-only__ A unique identifier for the token, used to reference it after creation.", + "example": "13428362-5458-4dad-b14b-8d0d4d648f8c", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 1 + }, + "updated": { + "description": "__Read-only__ When this token was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "valid_for_sharegroup_uuid": { + "description": "__Read-only__ The unique identifier of the share group you created a token for.", + "example": "e1d0e58b-f89f-4237-84ab-b82077342359", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 4 + } + }, + "required": [ + "token_uuid", + "status", + "label", + "created", + "updated", + "expiry", + "valid_for_sharegroup_uuid", + "sharegroup_uuid", + "sharegroup_label" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/token.yaml" + } + }, + "x-example": { + "x-ref": "../examples/put-sharegroup-token-200.json" + } + } + }, + "description": "Token updated successfully." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_write" + ] + } + ], + "summary": "Update a token", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups token-update abc123 --label \"new_label\"", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_write", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "token-update", + "x-linode-redoc-load-ids": true + }, + "delete": { + "description": "Removes an existing membership token for a share group member or a pending membership.\n\n- To get the `token_uuid`, run the [List tokens](https://techdocs.akamai.com/linode-api/reference/get-user-tokens) operation.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups token-delete abc123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/delete-sharegroup-token" + }, + "operationId": "delete-sharegroup-token", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "description": "The API responds with an empty object.", + "maxProperties": 0, + "type": "object", + "x-akamai": { + "file-path": "schemas/added-empty-obj.yaml" + } + }, + "x-example": { + "x-ref": "../examples/delete-sharegroup-token-200.json" + } + } + }, + "description": "Token deleted successfully." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_write" + ] + } + ], + "summary": "Delete a token", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups token-delete abc123", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_write", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "token-delete", + "x-linode-grant": "read_write" + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "A unique identifier for the token, used to reference it after creation.", + "example": "{{tokenUuid}}", + "in": "path", + "name": "tokenUuid", + "required": true, + "schema": { + "example": "13428362-5458-4dad-b14b-8d0d4d648f8c", + "format": "uuid", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/token-uuid-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/images-sharegroups-tokens-id.yaml", + "path-info": "/{apiVersion}/images/sharegroups/tokens/{tokenUuid}", + "status": "BETA" + }, + "x-linode-cli-command": "image-sharegroups" + }, + "/{apiVersion}/images/sharegroups/tokens/{tokenUuid}/sharegroup": { + "get": { + "description": "Gets details about a share group you're a member of. \n\nTo get the `token_uuid`, run the [Get a token](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-token) or [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) for the share group you want to join and share it with the group owner. You have to be accepted as a share group member before running this operation.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups view-by-token abc123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/get-sharegroup-by-token" + }, + "operationId": "get-sharegroup-by-token", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "The share group's details.", + "properties": { + "created": { + "description": "__Read-only__ When this share group was created.", + "example": "2025-04-14T22:44:02", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A detailed description of this share group.", + "example": "Group of base operating system images and engineers used for CI/CD pipelines and infrastructure automation", + "nullable": true, + "type": "string", + "x-linode-cli-display": 4 + }, + "id": { + "description": "__Read-only__ The share group's numeric identifier, used primarily as path parameters in URLs.", + "example": 1, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 1 + }, + "is_suspended": { + "description": "__Read-only__ If `true`, the share group is currently suspended.", + "example": false, + "readOnly": true, + "type": "boolean", + "x-linode-cli-display": 5 + }, + "label": { + "description": "The share group's descriptive name.", + "example": "DevOps Base Images", + "type": "string", + "x-linode-cli-display": 2 + }, + "updated": { + "description": "__Read-only__ When this share group was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "uuid": { + "description": "__Read-only__ The share group's unique identifier used for membership token management.", + "example": "1533863e-16a4-47b5-b829-ac0f35c13278", + "format": "uuid", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 3 + } + }, + "required": [ + "id", + "uuid", + "label", + "description", + "is_suspended", + "created", + "updated" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/get-sharegroup.yaml" + } + }, + "x-example": { + "x-ref": "../examples/get-sharegroup-200.json" + } + } + }, + "description": "A single share group object." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_only" + ] + } + ], + "summary": "Get a token's share group", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups view-by-token abc123", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_only", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "view-by-token", + "x-linode-redoc-load-ids": true + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "A unique identifier for the token, used to reference it after creation.", + "example": "{{tokenUuid}}", + "in": "path", + "name": "tokenUuid", + "required": true, + "schema": { + "example": "13428362-5458-4dad-b14b-8d0d4d648f8c", + "format": "uuid", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/token-uuid-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/images-sharegroups-tokens-id-sharegroup.yaml", + "path-info": "/{apiVersion}/images/sharegroups/tokens/{tokenUuid}/sharegroup", + "status": "BETA" + }, + "x-linode-cli-command": "image-sharegroups" + }, + "/{apiVersion}/images/sharegroups/tokens/{tokenUuid}/sharegroup/images": { + "get": { + "description": "Lists all the shared images a member can access within a share group, using a membership token. To get the `token_uuid`, run the [Get a token](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-token) operation.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups images-list-by-token abc123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/get-sharegroup-images-by-token" + }, + "operationId": "get-sharegroup-images-by-token", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "description": "The shared image's details.", + "properties": { + "capabilities": { + "description": "__Read-only__ A list of the possible capabilities of this image.", + "example": [ + "cloud-init", + "distributed-sites" + ], + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-linode-cli-display": 7 + }, + "created": { + "description": "__Read-only__ When this image share was created.", + "example": "2025-08-04T10:07:59", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "created_by": { + "description": "__Read-only__ The shared image creator's username.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "deprecated": { + "description": "__Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated.", + "readOnly": true, + "type": "boolean" + }, + "description": { + "description": "The shared image's detailed description.", + "example": "Official Debian Linux image for server deployment", + "type": "string", + "x-linode-cli-display": 3 + }, + "eol": { + "description": "__Read-only__ The time of the public image's planned removal from service. `null` for private images.", + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "expiry": { + "description": "__Read-only__ Only images created automatically from a deleted compute instance (`type=automatic`) expire, `null` for private images.", + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "id": { + "description": "__Read-only__ The shared image's unique idenfifier.", + "example": "shared/1", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 1 + }, + "image_sharing": { + "additionalProperties": false, + "description": "__Read-only__ Sharing information for the image, including who it was shared by and with.", + "properties": { + "shared_by": { + "properties": { + "sharegroup_id": { + "description": "__Read-only__ The share group's numeric identifier, used primarily as path parameters in URLs.", + "example": 3, + "readOnly": true, + "type": "integer" + }, + "sharegroup_label": { + "description": "The share group's descriptive name.", + "example": "DevOps Base Images", + "type": "string" + }, + "sharegroup_uuid": { + "description": "__Read-only__ The share group's unique identifier used for membership token management.", + "example": "8d64b99e-92f7-4c7b-a616-8f622fffb94c", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "source_image_id": { + "description": "__Read-only__ The source image's slug identifier.", + "example": "private/15", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "sharegroup_id", + "sharegroup_uuid", + "sharegroup_label", + "source_image_id" + ], + "type": "object" + }, + "shared_with": { + "description": "Details about who this image was shared with.", + "example": null, + "nullable": true, + "type": "object" + } + }, + "readOnly": true, + "type": "object" + }, + "is_public": { + "description": "__Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images.", + "example": true, + "readOnly": true, + "type": "boolean", + "x-linode-cli-display": 8 + }, + "is_shared": { + "description": "__Read-only__ A `true` value for shared private images. `none` for images shared within a group.", + "enum": [ + true, + false, + "none" + ], + "example": "none", + "nullable": true, + "readOnly": true, + "type": "string", + "x-linode-cli-display": 9 + }, + "label": { + "description": "__Filterable__ The shared image's name.", + "example": "Linux Debian", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "regions": { + "description": "__Filterable__, __Read-only__ Details on the regions where this image is stored. See [Regions and images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images) for full details on support for `regions`.", + "items": { + "additionalProperties": false, + "properties": { + "region": { + "description": "The unique identifier for the core compute region where this image is stored.", + "example": "us-iad", + "type": "string" + }, + "status": { + "description": "The status of the image in this `region`. Possible values are `available`, `creating`, `pending`, `pending deletion`, `pending replication`, or `replicating`.", + "enum": [ + "available", + "creating", + "pending", + "pending deletion", + "pending replication", + "replicating" + ], + "example": "available", + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array", + "x-akamai": { + "labels": [ + "Filterable" + ] + } + }, + "size": { + "description": "__Read-only__ The minimum size in MB this image needs to deploy.", + "example": 256, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 4 + }, + "status": { + "description": "__Read-only__ The current status of the image. Possible values are `available`, `creating`, and `pending_upload`.", + "enum": [ + "creating", + "pending_upload", + "available" + ], + "example": "available", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 6 + }, + "tags": { + "description": "__Filterable__, __Read-only__ The shared image's organizational tags. A tag can be from 3 to 100 characters long, and each image can include up to 500 tags.", + "example": [ + "repair-image", + "fix-1" + ], + "items": { + "maxLength": 100, + "minLength": 3, + "type": "string" + }, + "maxItems": 500, + "minItems": 0, + "readOnly": true, + "type": "array", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 10, + "x-linode-filterable": true + }, + "total_size": { + "description": "__Read-only__ The total size in bytes of all instances of this image, in all `regions`.", + "example": 256, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 5 + }, + "type": { + "description": "__Filterable__, __Read-only__ Indicates how the image was created. It's always `shared` for images in a shared group. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image.", + "enum": [ + "manual", + "automatic", + "shared" + ], + "example": "shared", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "updated": { + "description": "__Read-only__ When this image share was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "vendor": { + "description": "__Read-only__ The upstream distribution vendor, `null` for private and shared images.", + "nullable": true, + "readOnly": true, + "type": "string" + } + }, + "required": [ + "id", + "tags", + "type", + "description", + "label", + "created", + "updated", + "size", + "status", + "capabilities", + "is_public", + "is_shared", + "deprecated", + "regions", + "total_size", + "image_sharing", + "created_by", + "expiry", + "eol", + "vendor" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/imageshares.yaml" + } + }, + "type": "array" + }, + "page": { + "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "pages": { + "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "results": { + "description": "__Read-only__ The total number of results.", + "example": 1, + "readOnly": true, + "type": "integer" + } + }, + "required": [ + "data", + "page", + "pages", + "results" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/get-sharegroup-token-images-200.yaml" + } + }, + "x-example": { + "x-ref": "../examples/get-sharegroup-token-images-200.json" + } + } + }, + "description": "A paginated list of shared images in a share group." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_only" + ] + } + ], + "summary": "List images by token", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups images-list-by-token abc123", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_only", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "images-list-by-token", + "x-linode-redoc-load-ids": true + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "A unique identifier for the token, used to reference it after creation.", + "example": "{{tokenUuid}}", + "in": "path", + "name": "tokenUuid", + "required": true, + "schema": { + "example": "13428362-5458-4dad-b14b-8d0d4d648f8c", + "format": "uuid", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/token-uuid-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/images-sharegroups-tokens-id-sharegroup-images.yaml", + "path-info": "/{apiVersion}/images/sharegroups/tokens/{tokenUuid}/sharegroup/images", + "status": "BETA" + }, + "x-linode-cli-command": "image-sharegroups" + }, + "/{apiVersion}/images/sharegroups/{sharegroupId}": { + "get": { + "description": "Get information about an owned share group. Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.\n\n- If the `sharegroupId` in the request body belongs to a group you don't own, calling this API will result in a 404 error.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups view 1234\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/get-sharegroup" + }, + "operationId": "get-sharegroup", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "The share group's details.", + "properties": { + "created": { + "description": "__Read-only__ When this share group was created.", + "example": "2025-04-14T22:44:02", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A detailed description of this share group.", + "example": "Group of base operating system images and engineers used for CI/CD pipelines and infrastructure automation", + "nullable": true, + "type": "string", + "x-linode-cli-display": 4 + }, + "expiry": { + "description": "__Read-only__ When the share group expires.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "id": { + "description": "__Read-only__ The share group's numeric identifier, used primarily as path parameters in URLs.", + "example": 1, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 1 + }, + "images_count": { + "description": "__Read-only__ The total number of images currently belonging to the share group.", + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 6 + }, + "is_suspended": { + "description": "__Read-only__ If `true`, the share group is currently suspended.", + "example": false, + "readOnly": true, + "type": "boolean", + "x-linode-cli-display": 5 + }, + "label": { + "description": "The share group's descriptive name.", + "example": "DevOps Base Images", + "type": "string", + "x-linode-cli-display": 2 + }, + "members_count": { + "description": "__Read-only__ The number of users with access to the share group.", + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 7 + }, + "updated": { + "description": "__Read-only__ When this share group was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "uuid": { + "description": "__Read-only__ The share group's unique identifier used for membership token management.", + "example": "1533863e-16a4-47b5-b829-ac0f35c13278", + "format": "uuid", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 3 + } + }, + "required": [ + "id", + "uuid", + "label", + "description", + "is_suspended", + "created", + "updated", + "expiry", + "images_count", + "members_count" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/sharegroup.yaml" + } + }, + "x-example": { + "x-ref": "../examples/get-sharegroup-200.json" + } + } + }, + "description": "A single share group object." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_only" + ] + } + ], + "summary": "Get a share group", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups view 1234", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_only", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "view", + "x-linode-redoc-load-ids": true + }, + "put": { + "description": "Updates the details of a share group you own. Run this operation to edit the `label` or `description` of a particular sharegroup.\n\n- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.\n\n- You can update either of the fields, but when you provide a new `label`, make sure that it's not an empty string.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups update 1234 --label \"new_label\" --description \"A new description.\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/put-sharegroup" + }, + "operationId": "put-sharegroup", + "requestBody": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "The share group's details to update.", + "properties": { + "description": { + "description": "A detailed description of this share group.", + "example": "{{description}}", + "type": "string" + }, + "label": { + "description": "The share group's descriptive name.", + "example": "{{label}}", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/put-sharegroup.yaml" + } + }, + "x-example": { + "x-ref": "../examples/put-sharegroup-200.json" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "The share group's details.", + "properties": { + "created": { + "description": "__Read-only__ When this share group was created.", + "example": "2025-04-14T22:44:02", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A detailed description of this share group.", + "example": "Group of base operating system images and engineers used for CI/CD pipelines and infrastructure automation", + "nullable": true, + "type": "string", + "x-linode-cli-display": 4 + }, + "expiry": { + "description": "__Read-only__ When the share group expires.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "id": { + "description": "__Read-only__ The share group's numeric identifier, used primarily as path parameters in URLs.", + "example": 1, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 1 + }, + "images_count": { + "description": "__Read-only__ The total number of images currently belonging to the share group.", + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 6 + }, + "is_suspended": { + "description": "__Read-only__ If `true`, the share group is currently suspended.", + "example": false, + "readOnly": true, + "type": "boolean", + "x-linode-cli-display": 5 + }, + "label": { + "description": "The share group's descriptive name.", + "example": "DevOps Base Images", + "type": "string", + "x-linode-cli-display": 2 + }, + "members_count": { + "description": "__Read-only__ The number of users with access to the share group.", + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 7 + }, + "updated": { + "description": "__Read-only__ When this share group was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "uuid": { + "description": "__Read-only__ The share group's unique identifier used for membership token management.", + "example": "1533863e-16a4-47b5-b829-ac0f35c13278", + "format": "uuid", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 3 + } + }, + "required": [ + "id", + "uuid", + "label", + "description", + "is_suspended", + "created", + "updated", + "expiry", + "images_count", + "members_count" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/sharegroup.yaml" + } + }, + "x-example": { + "x-ref": "../examples/put-sharegroup-200.json" + } + } + }, + "description": "The updated share group." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_write" + ] + } + ], + "summary": "Update a share group", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups update 1234 --label \"new_label\" --description \"A new description.\"", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_write", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "update", + "x-linode-grant": "read_write" + }, + "delete": { + "description": "Deletes an owned share group. All shared group members lose access to the images within the group upon deletion.\n\n- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups delete 1234\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/delete-sharegroup" + }, + "operationId": "delete-sharegroup", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "description": "The API responds with an empty object.", + "maxProperties": 0, + "type": "object", + "x-akamai": { + "file-path": "schemas/added-empty-obj.yaml" + } + }, + "x-example": { + "x-ref": "../examples/delete-sharegroup-200.json" + } + } + }, + "description": "Share group delete successfully." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_write" + ] + } + ], + "summary": "Delete a share group", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups delete 1234", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_write", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": [ + "delete", + "rm" + ], + "x-linode-grant": "read_write" + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "The share group's unique identifier assigned after creating it. Not to be confused with the group's `uuid`.", + "example": "{{sharegroupId}}", + "in": "path", + "name": "sharegroupId", + "required": true, + "schema": { + "example": 54321, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/sharegroup-id-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/images-sharegroup-id.yaml", + "path-info": "/{apiVersion}/images/sharegroups/{sharegroupId}", + "status": "BETA" + }, + "x-linode-cli-command": "image-sharegroups" + }, + "/{apiVersion}/images/sharegroups/{sharegroupId}/images": { + "post": { + "description": "Adds images to an existing group where you can share them with other members.\n\n- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.\n\n- Run the [Get an image](https://techdocs.akamai.com/linode-api/reference/get-image) operation to see the existing images' `id` values. If needed, [Create an image](https://techdocs.akamai.com/linode-api/reference/post-image) or [Upload an image](https://techdocs.akamai.com/linode-api/reference/post-upload-image).\n\n- You can set a `label` and `description` for each image, visible to all group members. If omitted, the shared image keeps the original image's details. Note that when you [Update the original image](https://techdocs.akamai.com/linode-api/reference/put-image), it has no effect on a shared image's details within any groups.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups image-add 123 \\\n --images '[{\"id\": \"private/15\", \"label\": \"Linux Debian\", \"description\": \"Official Debian Linux image for server deployment\"}]'\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/post-sharegroup-images" + }, + "operationId": "post-sharegroup-images", + "requestBody": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "images": { + "items": { + "additionalProperties": false, + "properties": { + "description": { + "description": "The image's description within the share group.", + "example": "Official Debian Linux image for server deployment", + "type": "string" + }, + "id": { + "description": "The private image\u2019s unique slug identifier.", + "example": "private/15", + "type": "string" + }, + "label": { + "description": "The image's name within the share group.", + "example": "Linux Debian", + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "images" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/post-sharegroup-images.yaml" + } + }, + "x-example": { + "x-ref": "../examples/post-sharegroup-images.json" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "The shared image's details.", + "properties": { + "capabilities": { + "description": "__Read-only__ A list of the possible capabilities of this image.", + "example": [ + "cloud-init", + "distributed-sites" + ], + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-linode-cli-display": 7 + }, + "created": { + "description": "__Read-only__ When this image was shared.", + "example": "2025-08-04T10:07:59", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "created_by": { + "description": "__Read-only__ The shared image creator's username.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "deprecated": { + "description": "__Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated.", + "readOnly": true, + "type": "boolean" + }, + "description": { + "description": "The shared image's detailed description.", + "example": "Official Debian Linux image for server deployment", + "type": "string", + "x-linode-cli-display": 3 + }, + "eol": { + "description": "__Read-only__ The time of the public image's planned removal from service. `null` for private images.", + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "expiry": { + "description": "__Read-only__ Only images created automatically from a deleted compute instance (`type=automatic`) expire, `null` for private images.", + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "id": { + "description": "__Read-only__ The shared image\u2019s unique slug identifier.", + "example": "shared/1", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 1 + }, + "image_sharing": { + "additionalProperties": false, + "description": "__Read-only__ The image's sharing details, including the share group and source image data. ", + "properties": { + "shared_by": { + "properties": { + "sharegroup_id": { + "description": "__Read-only__ The share group's numeric identifier, used primarily as path parameters in URLs.", + "example": 3, + "readOnly": true, + "type": "integer" + }, + "sharegroup_label": { + "description": "The share group's descriptive name.", + "example": "DevOps Base Images", + "type": "string" + }, + "sharegroup_uuid": { + "description": "__Read-only__ The share group's unique identifier used for membership token management.", + "example": "8d64b99e-92f7-4c7b-a616-8f622fffb94c", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "source_image_id": { + "description": "__Read-only__ The source image's slug identifier.", + "example": "private/15", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "sharegroup_id", + "sharegroup_uuid", + "sharegroup_label", + "source_image_id" + ], + "type": "object" + }, + "shared_with": { + "description": "The share group's and source image details.", + "example": null, + "nullable": true, + "type": "object" + } + }, + "readOnly": true, + "type": "object" + }, + "is_public": { + "description": "__Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images.", + "example": true, + "readOnly": true, + "type": "boolean", + "x-linode-cli-display": 8 + }, + "is_shared": { + "description": "__Read-only__ A `true` value for shared private images. `none` for images shared within a group.", + "enum": [ + true, + false, + "none" + ], + "example": "none", + "nullable": true, + "readOnly": true, + "type": "string", + "x-linode-cli-display": 9 + }, + "label": { + "description": "The shared image's name.", + "example": "Linux Debian", + "type": "string", + "x-linode-cli-display": 2 + }, + "regions": { + "description": "__Read-only__ Details on the regions where this image is stored. See [Regions and images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images) for full details on support for `regions`.", + "items": { + "additionalProperties": false, + "properties": { + "region": { + "description": "The unique identifier for the core compute region where this image is stored.", + "example": "us-iad", + "type": "string" + }, + "status": { + "description": "The status of the image in this `region`. Possible values are `available`, `creating`, `pending`, `pending deletion`, `pending replication`, or `replicating`.", + "enum": [ + "available", + "creating", + "pending", + "pending deletion", + "pending replication", + "replicating" + ], + "example": "available", + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "size": { + "description": "__Read-only__ The minimum size in MB this image needs to deploy.", + "example": 256, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 4 + }, + "status": { + "description": "__Read-only__ The current status of the image. Possible values are `available`, `creating`, and `pending_upload`.", + "enum": [ + "creating", + "pending_upload", + "available" + ], + "example": "available", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 6 + }, + "tags": { + "description": "__Read-only__ The shared image's organizational tags. A tag can be from 3 to 100 characters long, and each image can include up to 500 tags.", + "example": [ + "repair-image", + "fix-1" + ], + "items": { + "maxLength": 100, + "minLength": 3, + "type": "string" + }, + "maxItems": 500, + "minItems": 0, + "readOnly": true, + "type": "array", + "x-linode-cli-display": 10 + }, + "total_size": { + "description": "__Read-only__ The total size in bytes of all instances of this image, in all `regions`.", + "example": 256, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 5 + }, + "type": { + "description": "__Read-only__ Indicates how the image was created. It's always `shared` for images in a shared group. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image.", + "enum": [ + "manual", + "automatic", + "shared" + ], + "example": "shared", + "readOnly": true, + "type": "string" + }, + "updated": { + "description": "__Read-only__ When this shared image was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "vendor": { + "description": "__Read-only__ The upstream distribution vendor, `null` for private and shared images.", + "nullable": true, + "readOnly": true, + "type": "string" + } + }, + "required": [ + "id", + "tags", + "type", + "description", + "label", + "created", + "updated", + "size", + "status", + "capabilities", + "is_public", + "is_shared", + "deprecated", + "regions", + "total_size", + "image_sharing", + "created_by", + "expiry", + "eol", + "vendor" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/imageshare.yaml" + } + }, + "x-example": { + "x-ref": "../examples/post-sharegroup-images-200.json" + } + } + }, + "description": "Image added successfully." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_write" + ] + } + ], + "summary": "Add images to a share group", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups image-add 123 \\\n --images '[{\"id\": \"private/15\", \"label\": \"Linux Debian\", \"description\": \"Official Debian Linux image for server deployment\"}]'", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_write", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "image-add", + "x-linode-redoc-load-ids": true + }, + "get": { + "description": "Get the details about images shared in a particular group you own.\n\n- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups images-list 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/get-sharegroup-images" + }, + "operationId": "get-sharegroup-images", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "description": "The shared image's details.", + "properties": { + "capabilities": { + "description": "__Read-only__ A list of the possible capabilities of this image.", + "example": [ + "cloud-init", + "distributed-sites" + ], + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-linode-cli-display": 7 + }, + "created": { + "description": "__Read-only__ When this image share was created.", + "example": "2025-08-04T10:07:59", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "created_by": { + "description": "__Read-only__ The shared image creator's username.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "deprecated": { + "description": "__Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated.", + "readOnly": true, + "type": "boolean" + }, + "description": { + "description": "The shared image's detailed description.", + "example": "Official Debian Linux image for server deployment", + "type": "string", + "x-linode-cli-display": 3 + }, + "eol": { + "description": "__Read-only__ The time of the public image's planned removal from service. `null` for private images.", + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "expiry": { + "description": "__Read-only__ Only images created automatically from a deleted compute instance (`type=automatic`) expire, `null` for private images.", + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "id": { + "description": "__Read-only__ The shared image's unique idenfifier.", + "example": "shared/1", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 1 + }, + "image_sharing": { + "additionalProperties": false, + "description": "__Read-only__ Sharing information for the image, including who it was shared by and with.", + "properties": { + "shared_by": { + "properties": { + "sharegroup_id": { + "description": "__Read-only__ The share group's numeric identifier, used primarily as path parameters in URLs.", + "example": 3, + "readOnly": true, + "type": "integer" + }, + "sharegroup_label": { + "description": "The share group's descriptive name.", + "example": "DevOps Base Images", + "type": "string" + }, + "sharegroup_uuid": { + "description": "__Read-only__ The share group's unique identifier used for membership token management.", + "example": "8d64b99e-92f7-4c7b-a616-8f622fffb94c", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "source_image_id": { + "description": "__Read-only__ The source image's slug identifier.", + "example": "private/15", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "sharegroup_id", + "sharegroup_uuid", + "sharegroup_label", + "source_image_id" + ], + "type": "object" + }, + "shared_with": { + "description": "Details about who this image was shared with.", + "example": null, + "nullable": true, + "type": "object" + } + }, + "readOnly": true, + "type": "object" + }, + "is_public": { + "description": "__Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images.", + "example": true, + "readOnly": true, + "type": "boolean", + "x-linode-cli-display": 8 + }, + "is_shared": { + "description": "__Read-only__ A `true` value for shared private images. `none` for images shared within a group.", + "enum": [ + true, + false, + "none" + ], + "example": "none", + "nullable": true, + "readOnly": true, + "type": "string", + "x-linode-cli-display": 9 + }, + "label": { + "description": "__Filterable__ The shared image's name.", + "example": "Linux Debian", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "regions": { + "description": "__Filterable__, __Read-only__ Details on the regions where this image is stored. See [Regions and images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images) for full details on support for `regions`.", + "items": { + "additionalProperties": false, + "properties": { + "region": { + "description": "The unique identifier for the core compute region where this image is stored.", + "example": "us-iad", + "type": "string" + }, + "status": { + "description": "The status of the image in this `region`. Possible values are `available`, `creating`, `pending`, `pending deletion`, `pending replication`, or `replicating`.", + "enum": [ + "available", + "creating", + "pending", + "pending deletion", + "pending replication", + "replicating" + ], + "example": "available", + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array", + "x-akamai": { + "labels": [ + "Filterable" + ] + } + }, + "size": { + "description": "__Read-only__ The minimum size in MB this image needs to deploy.", + "example": 256, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 4 + }, + "status": { + "description": "__Read-only__ The current status of the image. Possible values are `available`, `creating`, and `pending_upload`.", + "enum": [ + "creating", + "pending_upload", + "available" + ], + "example": "available", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 6 + }, + "tags": { + "description": "__Filterable__, __Read-only__ The shared image's organizational tags. A tag can be from 3 to 100 characters long, and each image can include up to 500 tags.", + "example": [ + "repair-image", + "fix-1" + ], + "items": { + "maxLength": 100, + "minLength": 3, + "type": "string" + }, + "maxItems": 500, + "minItems": 0, + "readOnly": true, + "type": "array", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 10, + "x-linode-filterable": true + }, + "total_size": { + "description": "__Read-only__ The total size in bytes of all instances of this image, in all `regions`.", + "example": 256, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 5 + }, + "type": { + "description": "__Filterable__, __Read-only__ Indicates how the image was created. It's always `shared` for images in a shared group. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image.", + "enum": [ + "manual", + "automatic", + "shared" + ], + "example": "shared", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "updated": { + "description": "__Read-only__ When this image share was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "vendor": { + "description": "__Read-only__ The upstream distribution vendor, `null` for private and shared images.", + "nullable": true, + "readOnly": true, + "type": "string" + } + }, + "required": [ + "id", + "tags", + "type", + "description", + "label", + "created", + "updated", + "size", + "status", + "capabilities", + "is_public", + "is_shared", + "deprecated", + "regions", + "total_size", + "image_sharing", + "created_by", + "expiry", + "eol", + "vendor" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/imageshares.yaml" + } + }, + "type": "array" + }, + "page": { + "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "pages": { + "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "results": { + "description": "__Read-only__ The total number of results.", + "example": 1, + "readOnly": true, + "type": "integer" + } + }, + "required": [ + "data", + "page", + "pages", + "results" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/get-sharegroups-images-200.yaml" + } + }, + "x-example": { + "x-ref": "../examples/get-sharegroup-images-200.json" + } + } + }, + "description": "Returns a paginated list of shared images within a given group." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_only" + ] + } + ], + "summary": "List shared images by group", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups images-list 123", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_only", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "images-list", + "x-linode-redoc-load-ids": true + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "The share group's unique identifier assigned after creating it. Not to be confused with the group's `uuid`.", + "example": "{{sharegroupId}}", + "in": "path", + "name": "sharegroupId", + "required": true, + "schema": { + "example": 54321, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/sharegroup-id-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/images-sharegroup-id-images.yaml", + "path-info": "/{apiVersion}/images/sharegroups/{sharegroupId}/images", + "status": "BETA" + }, + "x-linode-cli-command": "image-sharegroups" + }, + "/{apiVersion}/images/sharegroups/{sharegroupId}/images/{imageId}": { + "put": { + "description": "Updates the details of an image shared within a share group. Run this operation to edit the `label` and `description` of a particular shared image.\n\n- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group. To get the `imageID`, run the [List shared images by group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-images) operation.\n\n- You can update either of the fields, but when you provide a new `label`, make sure that it's not an empty string.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups image-update 123 1234 --label \"new_label\" --description \"A new description.\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/put-sharegroup-imageshare" + }, + "operationId": "put-sharegroup-imageshare", + "requestBody": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "The shared image's details you want to update.", + "properties": { + "description": { + "description": "A detailed description of this image share.", + "example": "{{description}}", + "type": "string" + }, + "label": { + "description": "The shared image's descriptive name.", + "example": "{{label}}", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/put-sharegroup-imageshare.yaml" + } + }, + "x-example": { + "x-ref": "../examples/put-sharegroup-imageshare-200.json" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "The shared image's details.", + "properties": { + "capabilities": { + "description": "__Read-only__ A list of the possible capabilities of this image.", + "example": [ + "cloud-init", + "distributed-sites" + ], + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-linode-cli-display": 7 + }, + "created": { + "description": "__Read-only__ When this image was shared.", + "example": "2025-08-04T10:07:59", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "created_by": { + "description": "__Read-only__ The shared image creator's username.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "deprecated": { + "description": "__Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated.", + "readOnly": true, + "type": "boolean" + }, + "description": { + "description": "The shared image's detailed description.", + "example": "Official Debian Linux image for server deployment", + "type": "string", + "x-linode-cli-display": 3 + }, + "eol": { + "description": "__Read-only__ The time of the public image's planned removal from service. `null` for private images.", + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "expiry": { + "description": "__Read-only__ Only images created automatically from a deleted compute instance (`type=automatic`) expire, `null` for private images.", + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "id": { + "description": "__Read-only__ The shared image\u2019s unique slug identifier.", + "example": "shared/1", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 1 + }, + "image_sharing": { + "additionalProperties": false, + "description": "__Read-only__ The image's sharing details, including the share group and source image data. ", + "properties": { + "shared_by": { + "properties": { + "sharegroup_id": { + "description": "__Read-only__ The share group's numeric identifier, used primarily as path parameters in URLs.", + "example": 3, + "readOnly": true, + "type": "integer" + }, + "sharegroup_label": { + "description": "The share group's descriptive name.", + "example": "DevOps Base Images", + "type": "string" + }, + "sharegroup_uuid": { + "description": "__Read-only__ The share group's unique identifier used for membership token management.", + "example": "8d64b99e-92f7-4c7b-a616-8f622fffb94c", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "source_image_id": { + "description": "__Read-only__ The source image's slug identifier.", + "example": "private/15", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "sharegroup_id", + "sharegroup_uuid", + "sharegroup_label", + "source_image_id" + ], + "type": "object" + }, + "shared_with": { + "description": "The share group's and source image details.", + "example": null, + "nullable": true, + "type": "object" + } + }, + "readOnly": true, + "type": "object" + }, + "is_public": { + "description": "__Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images.", + "example": true, + "readOnly": true, + "type": "boolean", + "x-linode-cli-display": 8 + }, + "is_shared": { + "description": "__Read-only__ A `true` value for shared private images. `none` for images shared within a group.", + "enum": [ + true, + false, + "none" + ], + "example": "none", + "nullable": true, + "readOnly": true, + "type": "string", + "x-linode-cli-display": 9 + }, + "label": { + "description": "The shared image's name.", + "example": "Linux Debian", + "type": "string", + "x-linode-cli-display": 2 + }, + "regions": { + "description": "__Read-only__ Details on the regions where this image is stored. See [Regions and images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images) for full details on support for `regions`.", + "items": { + "additionalProperties": false, + "properties": { + "region": { + "description": "The unique identifier for the core compute region where this image is stored.", + "example": "us-iad", + "type": "string" + }, + "status": { + "description": "The status of the image in this `region`. Possible values are `available`, `creating`, `pending`, `pending deletion`, `pending replication`, or `replicating`.", + "enum": [ + "available", + "creating", + "pending", + "pending deletion", + "pending replication", + "replicating" + ], + "example": "available", + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "size": { + "description": "__Read-only__ The minimum size in MB this image needs to deploy.", + "example": 256, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 4 + }, + "status": { + "description": "__Read-only__ The current status of the image. Possible values are `available`, `creating`, and `pending_upload`.", + "enum": [ + "creating", + "pending_upload", + "available" + ], + "example": "available", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 6 + }, + "tags": { + "description": "__Read-only__ The shared image's organizational tags. A tag can be from 3 to 100 characters long, and each image can include up to 500 tags.", + "example": [ + "repair-image", + "fix-1" + ], + "items": { + "maxLength": 100, + "minLength": 3, + "type": "string" + }, + "maxItems": 500, + "minItems": 0, + "readOnly": true, + "type": "array", + "x-linode-cli-display": 10 + }, + "total_size": { + "description": "__Read-only__ The total size in bytes of all instances of this image, in all `regions`.", + "example": 256, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 5 + }, + "type": { + "description": "__Read-only__ Indicates how the image was created. It's always `shared` for images in a shared group. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image.", + "enum": [ + "manual", + "automatic", + "shared" + ], + "example": "shared", + "readOnly": true, + "type": "string" + }, + "updated": { + "description": "__Read-only__ When this shared image was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "vendor": { + "description": "__Read-only__ The upstream distribution vendor, `null` for private and shared images.", + "nullable": true, + "readOnly": true, + "type": "string" + } + }, + "required": [ + "id", + "tags", + "type", + "description", + "label", + "created", + "updated", + "size", + "status", + "capabilities", + "is_public", + "is_shared", + "deprecated", + "regions", + "total_size", + "image_sharing", + "created_by", + "expiry", + "eol", + "vendor" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/imageshare.yaml" + } + }, + "x-example": { + "x-ref": "../examples/put-sharegroup-imageshare-200.json" + }, + "x-linode-cli-subtables": [ + "regions" + ] + } + }, + "description": "The shared image's updated details." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_write" + ] + } + ], + "summary": "Update a shared image", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups image-update 123 1234 --label \"new_label\" --description \"A new description.\"", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_write", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "image-update", + "x-linode-grant": "read_write" + }, + "delete": { + "description": "Revokes access to a shared image within an owned group for all members.\n\n- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group. To get the `imageID`, run the [List shared images by group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-images) operation.\n\n- To add a private image back to a share group, run the [Add images to a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-images).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups image-remove 123 1234\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/delete-sharegroup-imageshare" + }, + "operationId": "delete-sharegroup-imageshare", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "description": "The API responds with an empty object.", + "maxProperties": 0, + "type": "object", + "x-akamai": { + "file-path": "schemas/added-empty-obj.yaml" + } + }, + "x-example": { + "x-ref": "../examples/delete-sharegroup-imageshare-200.json" + } + } + }, + "description": "Image access deleted successfully from share group." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_write" + ] + } + ], + "summary": "Revoke access to a shared image", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups image-remove 123 1234", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_write", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "image-remove", + "x-linode-grant": "read_write" + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "The share group's unique identifier assigned after creating it. Not to be confused with the group's `uuid`.", + "example": "{{sharegroupId}}", + "in": "path", + "name": "sharegroupId", + "required": true, + "schema": { + "example": 54321, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/sharegroup-id-path.yaml" + } + }, + { + "description": "Slug identifier assigned to the shared image upon sharing.", + "example": "{{imageId}}", + "in": "path", + "name": "imageId", + "required": true, + "schema": { + "example": "shared/7", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/image-id-path-w-shared-slug.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/images-sharegroups-id-images-id.yaml", + "path-info": "/{apiVersion}/images/sharegroups/{sharegroupId}/images/{imageId}", + "status": "BETA" + }, + "x-linode-cli-command": "image-sharegroups" + }, + "/{apiVersion}/images/sharegroups/{sharegroupId}/members": { + "post": { + "description": "Adds users to existing shared private image groups as a group owner.\n\n- Adding new members to share groups requires a single-use token. The user who wants to join a share group should run [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) and share the `token` from the response with the group owner.\n\n- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups member-add 123 --token \"abc123\" --label \"my_sharegroup_member\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/post-sharegroup-members" + }, + "operationId": "post-sharegroup-members", + "requestBody": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "label": { + "description": "The share group member's descriptive name.", + "example": "{{label}}", + "type": "string" + }, + "token": { + "description": "The single-use JWT membership token encoded as a string. It consists of three parts: header, payload, and signature. If needed, the user should [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) and share it with the group owner before joining.", + "example": "{{token}}", + "type": "string" + } + }, + "required": [ + "token", + "label" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/post-sharegroup-members.yaml" + } + }, + "x-example": { + "x-ref": "../examples/post-sharegroup-members.json" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "The shared group membership's details.", + "properties": { + "created": { + "description": "__Read-only__ When the user became the share group's member.", + "example": "2025-08-04T10:07:59", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "expiry": { + "description": "__Read-only__ When the user's share group membership expires.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "label": { + "description": "The share group member's descriptive name.", + "example": "Engineering - Backend", + "type": "string", + "x-linode-cli-display": 2 + }, + "status": { + "description": "__Read-only__ The current membership status. Share group members can be `active` or `revoked`. Revoked members' data remains available for two weeks after they left a share group.", + "enum": [ + "active", + "revoked" + ], + "example": "active", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 3 + }, + "token_uuid": { + "description": "__Read-only__ The membership token's unique identifier. Not to be confused with the `token` needed to add a member to the share group.", + "example": "4591075e-4ba8-43c9-a521-928c3d4a135d", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 1 + }, + "updated": { + "description": "__Read-only__ When the user's share group membership was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + } + }, + "required": [ + "token_uuid", + "status", + "label", + "created", + "updated", + "expiry" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/membership.yaml" + } + }, + "x-example": { + "x-ref": "../examples/post-sharegroup-members-200.json" + } + } + }, + "description": "Member added successfully." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_write" + ] + } + ], + "summary": "Add members to a share group", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups member-add 123 --token \"abc123\" --label \"my_sharegroup_member\"", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_write", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "member-add", + "x-linode-redoc-load-ids": true + }, + "get": { + "description": "Get the details about all members in a particular share group you own.\n\n- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups members-list 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/get-sharegroup-members" + }, + "operationId": "get-sharegroup-members", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "description": "The shared group membership's details.", + "properties": { + "created": { + "description": "__Read-only__ When the user became the share group's member.", + "example": "2025-08-04T10:07:59", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "expiry": { + "description": "__Read-only__ When the user's share group membership expires.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "label": { + "description": "__Filterable__ The share group member's descriptive name.", + "example": "Engineering - Backend", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "status": { + "description": "__Filterable__, __Read-only__ The current membership status. Share group members can be `active` or `revoked`. Revoked members' data remains available for two weeks after they left a share group.", + "enum": [ + "active", + "revoked" + ], + "example": "active", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true + }, + "token_uuid": { + "description": "__Filterable__, __Read-only__ The membership token's unique identifier. Not to be confused with the `token` needed to add a member to the share group.", + "example": "4591075e-4ba8-43c9-a521-928c3d4a135d", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 1, + "x-linode-filterable": true + }, + "updated": { + "description": "__Read-only__ When the user's share group membership was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + } + }, + "required": [ + "token_uuid", + "status", + "label", + "created", + "updated", + "expiry" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/memberships.yaml" + } + }, + "type": "array" + }, + "page": { + "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "pages": { + "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "results": { + "description": "__Read-only__ The total number of results.", + "example": 1, + "readOnly": true, + "type": "integer" + } + }, + "required": [ + "data", + "page", + "pages", + "results" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/get-sharegroups-members-200.yaml" + } + }, + "x-example": { + "x-ref": "../examples/get-sharegroup-members-200.json" + } + } + }, + "description": "Returns a paginated list of the current members linked to the targeted share group." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_only" + ] + } + ], + "summary": "List members by share group", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups members-list 123", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_only", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "members-list", + "x-linode-redoc-load-ids": true + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "The share group's unique identifier assigned after creating it. Not to be confused with the group's `uuid`.", + "example": "{{sharegroupId}}", + "in": "path", + "name": "sharegroupId", + "required": true, + "schema": { + "example": 54321, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/sharegroup-id-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/images-sharegroup-id-members.yaml", + "path-info": "/{apiVersion}/images/sharegroups/{sharegroupId}/members", + "status": "BETA" + }, + "x-linode-cli-command": "image-sharegroups" + }, + "/{apiVersion}/images/sharegroups/{sharegroupId}/members/{tokenUuid}": { + "get": { + "description": "Get details about a membership token as a share group owner. Run this operation to check the `status` of a pending membership request or a current group member.\n\n- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.\n\n- Get the `token_uuid` from the user who wants to join your share group or run the [List members by share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-members) operation for details on current group members.\n\n- To get details about a token as a current or pending group member, run the [Get a token](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-token) operation.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups member-view 123 abc123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/get-sharegroup-member-token" + }, + "operationId": "get-sharegroup-member-token", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "The shared group membership's details.", + "properties": { + "created": { + "description": "__Read-only__ When the user became the share group's member.", + "example": "2025-08-04T10:07:59", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "expiry": { + "description": "__Read-only__ When the user's share group membership expires.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "label": { + "description": "The share group member's descriptive name.", + "example": "Engineering - Backend", + "type": "string", + "x-linode-cli-display": 2 + }, + "status": { + "description": "__Read-only__ The current membership status. Share group members can be `active` or `revoked`. Revoked members' data remains available for two weeks after they left a share group.", + "enum": [ + "active", + "revoked" + ], + "example": "active", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 3 + }, + "token_uuid": { + "description": "__Read-only__ The membership token's unique identifier. Not to be confused with the `token` needed to add a member to the share group.", + "example": "4591075e-4ba8-43c9-a521-928c3d4a135d", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 1 + }, + "updated": { + "description": "__Read-only__ When the user's share group membership was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + } + }, + "required": [ + "token_uuid", + "status", + "label", + "created", + "updated", + "expiry" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/membership.yaml" + } + }, + "x-example": { + "x-ref": "../examples/get-sharegroup-member-token-200.json" + } + } + }, + "description": "A single token object." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_only" + ] + } + ], + "summary": "Get a membership token", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups member-view 123 abc123", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_only", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "member-view", + "x-linode-redoc-load-ids": true + }, + "put": { + "description": "Updates an existing membership token for a group owner. You can change each token's `label` that will be visible only to you, such as when you [Get members by share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-members).\n\n- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.\n\n- Run the [List members by share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-members) operation to get the `token_uuid` for a current group member.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups member-update 123 abc123 --label \"new_label\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/put-sharegroup-member-token" + }, + "operationId": "put-sharegroup-member-token", + "requestBody": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "The updated membership token's details.", + "properties": { + "label": { + "description": "The membership token's descriptive name.", + "example": "{{label}}", + "type": "string" + } + }, + "required": [ + "label" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/put-sharegroup-member-token.yaml" + } + }, + "x-example": { + "x-ref": "../examples/put-sharegroup-member-token-200.json" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "description": "The shared group membership's details.", + "properties": { + "created": { + "description": "__Read-only__ When the user became the share group's member.", + "example": "2025-08-04T10:07:59", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "expiry": { + "description": "__Read-only__ When the user's share group membership expires.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "label": { + "description": "The share group member's descriptive name.", + "example": "Engineering - Backend", + "type": "string", + "x-linode-cli-display": 2 + }, + "status": { + "description": "__Read-only__ The current membership status. Share group members can be `active` or `revoked`. Revoked members' data remains available for two weeks after they left a share group.", + "enum": [ + "active", + "revoked" + ], + "example": "active", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 3 + }, + "token_uuid": { + "description": "__Read-only__ The membership token's unique identifier. Not to be confused with the `token` needed to add a member to the share group.", + "example": "4591075e-4ba8-43c9-a521-928c3d4a135d", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 1 + }, + "updated": { + "description": "__Read-only__ When the user's share group membership was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + } + }, + "required": [ + "token_uuid", + "status", + "label", + "created", + "updated", + "expiry" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/membership.yaml" + } + }, + "x-example": { + "x-ref": "../examples/put-sharegroup-member-token-200.json" + } + } + }, + "description": "The updated membership token's details." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_write" + ] + } + ], + "summary": "Update a membership token", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups member-update 123 abc123 --label \"new_label\"", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_write", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "member-update", + "x-linode-grant": "read_write" + }, + "delete": { + "description": "Revokes a membership token accepted into a share group. Members with `revoked` status immediately lose access to shared images, and can't deploy them anymore.\n\n- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.\n\n- Run the [List members by share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-members) operation to get the `token_uuid` for a current group member. After revoking a membership, you can run this operation to check its status.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli image-sharegroups member-delete 123 abc123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/delete-sharegroup-member-token" + }, + "operationId": "delete-sharegroup-member-token", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "description": "The API responds with an empty object.", + "maxProperties": 0, + "type": "object", + "x-akamai": { + "file-path": "schemas/added-empty-obj.yaml" + } + }, + "x-example": { + "x-ref": "../examples/delete-sharegroup-member-token-200.json" + } + } + }, + "description": "Token revoked successfully." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_write" + ] + } + ], + "summary": "Revoke a membership token", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli image-sharegroups member-delete 123 abc123", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_write", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "member-delete", + "x-linode-grant": "read_write" + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "The share group's unique identifier assigned after creating it. Not to be confused with the group's `uuid`.", + "example": "{{sharegroupId}}", + "in": "path", + "name": "sharegroupId", + "required": true, + "schema": { + "example": 54321, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/sharegroup-id-path.yaml" + } + }, + { + "description": "A unique identifier for the token, used to reference it after creation.", + "example": "{{tokenUuid}}", + "in": "path", + "name": "tokenUuid", + "required": true, + "schema": { + "example": "13428362-5458-4dad-b14b-8d0d4d648f8c", + "format": "uuid", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/token-uuid-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/images-sharegroups-id-members-id.yaml", + "path-info": "/{apiVersion}/images/sharegroups/{sharegroupId}/members/{tokenUuid}", + "status": "BETA" + }, + "x-linode-cli-command": "image-sharegroups" + }, + "/{apiVersion}/images/upload": { + "post": { + "description": "Creates a new private image container and returns a URL as the `upload_to` object in the response. Use this URL to upload your own disk image to the container.\n\n> \ud83d\udc4d There's a tutorial\n>\n> This operation has specific requirements for use. Check out its [workflow](https://techdocs.akamai.com/linode-api/reference/upload-an-image) for details.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n # Run the operation to just get the upload_to URL\nlinode-cli images upload \\\n --description \"Optional details about the Image\" \\\n --label \"Example Image\" \\\n --region us-east\n\n# Upload the image file in a single step\nlinode-cli image-upload \\\n --description \"Optional details about the Image\" \\\n --label \"Example Image\" \\\n --region us-east \\\n /path/to/image-file.img.gz\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/post-upload-image" + }, + "operationId": "post-upload-image", + "requestBody": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "cloud_init": { + "description": "Whether the uploaded Image supports cloud-init.", + "example": "{{cloud_init}}", + "type": "boolean" + }, + "description": { + "description": "Description for the uploaded image.", + "example": "{{description}}", + "type": "string" + }, + "label": { + "description": "Label for the uploaded image.", + "example": "{{label}}", + "type": "string" + }, + "region": { + "description": "The region to upload to. Once uploaded, the image can be used in any region.\n\n> \ud83d\udcd8\n>\n> Only core regions that support our [Object Storage](https://techdocs.akamai.com/cloud-computing/reference/how-to-choose-a-data-center#product-availability) service can store an uploaded image.", + "example": "{{region}}", + "type": "string" + }, + "tags": { + "description": "Tags you can use to organize images. A tag can be from 3 to 100 characters long, and an image can have a maximum of 500 total tags.", + "example": [ + "repair-image", + "fix-1" + ], + "items": { + "maxLength": 100, + "minLength": 3, + "type": "string" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "label", + "region" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/added-post-upload-image.yaml" + } + }, + "x-example": { + "x-ref": "../examples/post-upload-image.json" + } + } + }, + "description": "The uploaded image details.", + "x-linode-cli-allowed-defaults": [ + "region" + ] + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "image": { + "additionalProperties": false, + "description": "Image object.", + "properties": { + "capabilities": { + "description": "__Read-only__ A list of the possible capabilities of this image.\n\n- `cloud-init`. The image supports the cloud-init multi-distribution method with our [Metadata service](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/#troubleshoot-metadata-and-cloud-init). This only applies to public images.\n\n- `distributed-sites`. Whether the image can be used in distributed compute regions. Compared to a core compute region, distributed compute regions offer limited functionality, but they're globally distributed. Your image can be geographically closer to you, potentially letting you deploy it quicker. See [Regions and images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images) for complete details.", + "example": [ + "cloud-init", + "distributed-sites" + ], + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-linode-cli-display": 8 + }, + "created": { + "description": "__Read-only__ When this image was created.", + "example": "2021-08-14T22:44:02", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "created_by": { + "description": "__Read-only__ The name of the user who created this image, or `linode` for public images.", + "example": "linode", + "readOnly": true, + "type": "string" + }, + "deprecated": { + "description": "__Filterable__, __Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated.", + "example": false, + "readOnly": true, + "type": "boolean", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "description": { + "description": "A detailed description of this image.", + "example": "Example image description.", + "maxLength": 65000, + "minLength": 1, + "nullable": true, + "type": "string", + "x-linode-cli-color": { + "None": "black", + "default_": "white" + }, + "x-linode-cli-display": 4 + }, + "eol": { + "description": "__Read-only__ The time of the public image's planned removal from service. This is `null` for private images.", + "example": "2026-07-01T04:00:00", + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "expiry": { + "description": "__Read-only__ Only images created automatically from a deleted compute instance (type=automatic) expire. This is `null` for private images.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "id": { + "description": "__Read-only__ The unique identifier for each image.", + "example": "private/15", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 1 + }, + "image_sharing": { + "description": "Details about image sharing.", + "oneOf": [ + { + "additionalProperties": false, + "example": { + "shared_by": null, + "shared_with": { + "sharegroup_count": 0, + "sharegroup_list_url": "/images/private/15/sharegroups" + } + }, + "properties": { + "shared_by": { + "description": "This field is `null` in this case, meaning the image is not shared by any group. See the `shared_with` field for details on the image's share group.", + "nullable": true, + "type": "object" + }, + "shared_with": { + "additionalProperties": false, + "description": "Specifies the group that the image is shared with, including the number of share groups and a URL to view the share groups' list.", + "properties": { + "sharegroup_count": { + "description": "The number of share groups the image is shared with.", + "type": "integer" + }, + "sharegroup_list_url": { + "description": "A URL to view the list of share groups the image is shared with.", + "type": "string" + } + }, + "required": [ + "sharegroup_count", + "sharegroup_list_url" + ], + "type": "object" + } + }, + "required": [ + "shared_with", + "shared_by" + ], + "title": "shared_with", + "type": "object" + }, + { + "additionalProperties": false, + "example": { + "shared_by": { + "sharegroup_id": 3, + "sharegroup_label": "label", + "sharegroup_uuid": "8003abfe-6b03-41a1-9e4c-a234ae3060c8", + "source_image_id": null + }, + "shared_with": null + }, + "properties": { + "shared_by": { + "additionalProperties": false, + "description": "Specifies the details of the share group that is sharing the image.", + "properties": { + "sharegroup_id": { + "description": "The share group's identifier.", + "type": "integer" + }, + "sharegroup_label": { + "description": "The share group's descriptive name.", + "type": "string" + }, + "sharegroup_uuid": { + "description": "The share group's unique identifier.", + "format": "uuid", + "type": "string" + }, + "source_image_id": { + "description": "The source image's slug identifier. `null` if no specific source image is referenced.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "sharegroup_id", + "sharegroup_uuid", + "sharegroup_label", + "source_image_id" + ], + "type": "object" + }, + "shared_with": { + "description": "This field is `null` in this case, meaning the image is not shared with anyone. See the `shared_by` fields for additional details about this shared image.", + "nullable": true, + "type": "object" + } + }, + "required": [ + "shared_with", + "shared_by" + ], + "title": "shared_by", + "type": "object" + } + ] + }, + "is_public": { + "description": "__Filterable__, __Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images.", + "example": false, + "readOnly": true, + "type": "boolean", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 5, + "x-linode-filterable": true + }, + "is_shared": { + "description": "__Filterable__, __Read-only__ A `true` value for shared private images. `none` for images shared within a group.", + "enum": [ + true, + false, + "none" + ], + "example": false, + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 11, + "x-linode-filterable": true + }, + "label": { + "description": "__Filterable__ A short description of the image.", + "example": "Debian 11", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "regions": { + "description": "__Read-only__ Details on the regions where this image is stored. See [Regions and images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images) for full details on support for `regions`.", + "items": { + "additionalProperties": false, + "properties": { + "region": { + "description": "The unique identifier for the core compute region where this image is stored.", + "example": "us-iad", + "type": "string" + }, + "status": { + "description": "The status of the image in this `region`. Possible values are `available`, `creating`, `pending`, `pending deletion`, `pending replication`, or `replicating`.", + "enum": [ + "available", + "creating", + "pending", + "pending deletion", + "pending replication", + "replicating" + ], + "example": "available", + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array", + "x-linode-cli-format": "json" + }, + "size": { + "description": "__Filterable__, __Read-only__ The minimum size in MB this image needs to deploy.", + "example": 2500, + "readOnly": true, + "type": "integer", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 6, + "x-linode-filterable": true + }, + "status": { + "description": "__Filterable__, __Read-only__ The current status of the image. Possible values are `available`, `creating`, and `pending_upload`.\n\n> \ud83d\udcd8\n>\n> The `+order_by` and `+order` operators are not available when [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) on this key.", + "enum": [ + "creating", + "pending_upload", + "available" + ], + "example": "available", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 7, + "x-linode-filterable": true + }, + "tags": { + "description": "__Filterable__ Tags used for organizational purposes. A tag can be from 3 to 100 characters long, and an image can have a maximum of 500 total tags.", + "example": [ + "repair-image", + "fix-1" + ], + "items": { + "maxLength": 100, + "minLength": 3, + "type": "string" + }, + "maxItems": 500, + "minItems": 0, + "type": "array", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 10, + "x-linode-filterable": true + }, + "total_size": { + "description": "__Read-only__ The total size in bytes of all instances of this image, in all `regions`.\n\n> \ud83d\udcd8\n>\n> This object is empty for existing images. It's intended for use with future functionality.", + "example": 1234567, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 9 + }, + "type": { + "description": "__Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image.", + "enum": [ + "manual", + "automatic", + "shared" + ], + "example": "manual", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "updated": { + "description": "__Read-only__ When this image was last updated.", + "example": "2021-08-14T22:44:02", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "vendor": { + "description": "__Filterable__, __Read-only__ The upstream distribution vendor. This is `null` for private images.", + "example": "Debian", + "nullable": true, + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-color": { + "None": "black", + "default_": "white" + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true + } + }, + "required": [ + "id", + "tags", + "type", + "description", + "label", + "created", + "updated", + "size", + "status", + "capabilities", + "is_public", + "is_shared", + "deprecated", + "regions", + "total_size", + "image_sharing", + "created_by", + "expiry", + "eol", + "vendor" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/image.yaml" + } + }, + "upload_to": { + "description": "The URL to upload the Image to.", + "type": "string", + "x-linode-cli-display": 1 + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/added-post-upload-image-200.yaml" + } + }, + "x-example": { + "x-ref": "../examples/post-upload-image-200.json" + } + } + }, + "description": "Image Upload object including the upload URL and image object." }, "default": { "content": { @@ -42635,7 +49508,7 @@ }, "/{apiVersion}/images/{imageId}": { "get": { - "description": "Get information about a single image. An image can be one of two types:\n\n- **Public image**. The `id` for these images begins with `linode/`. These images are generally available to all users. To limit the response to public images, don't include [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication) when calling this operation.\n\n- **Private image**. The `id` for these images begins with `private/`. These images are account-specific and only accessible to users with appropriate [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants). To view private images, you need to include authentication when calling this operation. The response will also include public images.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli images view linode/debian9\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Get information about a single image. An image can be one of two types:\n\n- **Public image**. The `id` for these images begins with `linode/`. These images are generally available to all users. To limit the response to public images, don't include [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication) when calling this operation.\n\n- **Private image**. The `id` for these images begins with `private/`. These images are account-specific and only accessible to users with appropriate [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants). To view private images, you need to include authentication when calling this operation. The response will also include public images.\n\n- **Shared image**. The `id` for these images begins with `shared/`. These are the images that are shared with the user.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli images view linode/debian9\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-image" @@ -42676,7 +49549,7 @@ "type": "string" }, "deprecated": { - "description": "__Filterable__, __Read-only__ Whether this image is deprecated. Only public images can be deprecated.", + "description": "__Filterable__, __Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated.", "example": false, "readOnly": true, "type": "boolean", @@ -42701,7 +49574,7 @@ "x-linode-cli-display": 4 }, "eol": { - "description": "__Read-only__ The date of the public image's planned removal from service. This is `null` for private images.", + "description": "__Read-only__ The time of the public image's planned removal from service. This is `null` for private images.", "example": "2026-07-01T04:00:00", "format": "date-time", "nullable": true, @@ -42718,14 +49591,117 @@ }, "id": { "description": "__Read-only__ The unique identifier for each image.", - "example": "linode/debian11", + "example": "private/15", "readOnly": true, "type": "string", "x-linode-cli-display": 1 }, + "image_sharing": { + "description": "Details about image sharing.", + "oneOf": [ + { + "additionalProperties": false, + "example": { + "shared_by": null, + "shared_with": { + "sharegroup_count": 0, + "sharegroup_list_url": "/images/private/15/sharegroups" + } + }, + "properties": { + "shared_by": { + "description": "This field is `null` in this case, meaning the image is not shared by any group. See the `shared_with` field for details on the image's share group.", + "nullable": true, + "type": "object" + }, + "shared_with": { + "additionalProperties": false, + "description": "Specifies the group that the image is shared with, including the number of share groups and a URL to view the share groups' list.", + "properties": { + "sharegroup_count": { + "description": "The number of share groups the image is shared with.", + "type": "integer" + }, + "sharegroup_list_url": { + "description": "A URL to view the list of share groups the image is shared with.", + "type": "string" + } + }, + "required": [ + "sharegroup_count", + "sharegroup_list_url" + ], + "type": "object" + } + }, + "required": [ + "shared_with", + "shared_by" + ], + "title": "shared_with", + "type": "object" + }, + { + "additionalProperties": false, + "example": { + "shared_by": { + "sharegroup_id": 3, + "sharegroup_label": "label", + "sharegroup_uuid": "8003abfe-6b03-41a1-9e4c-a234ae3060c8", + "source_image_id": null + }, + "shared_with": null + }, + "properties": { + "shared_by": { + "additionalProperties": false, + "description": "Specifies the details of the share group that is sharing the image.", + "properties": { + "sharegroup_id": { + "description": "The share group's identifier.", + "type": "integer" + }, + "sharegroup_label": { + "description": "The share group's descriptive name.", + "type": "string" + }, + "sharegroup_uuid": { + "description": "The share group's unique identifier.", + "format": "uuid", + "type": "string" + }, + "source_image_id": { + "description": "The source image's slug identifier. `null` if no specific source image is referenced.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "sharegroup_id", + "sharegroup_uuid", + "sharegroup_label", + "source_image_id" + ], + "type": "object" + }, + "shared_with": { + "description": "This field is `null` in this case, meaning the image is not shared with anyone. See the `shared_by` fields for additional details about this shared image.", + "nullable": true, + "type": "object" + } + }, + "required": [ + "shared_with", + "shared_by" + ], + "title": "shared_by", + "type": "object" + } + ] + }, "is_public": { - "description": "__Filterable__, __Read-only__ Revealed as `true` if the image is a public distribution image. Private, account-specific images are listed as `false`.", - "example": true, + "description": "__Filterable__, __Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images.", + "example": false, "readOnly": true, "type": "boolean", "x-akamai": { @@ -42736,6 +49712,24 @@ "x-linode-cli-display": 5, "x-linode-filterable": true }, + "is_shared": { + "description": "__Filterable__, __Read-only__ A `true` value for shared private images. `none` for images shared within a group.", + "enum": [ + true, + false, + "none" + ], + "example": false, + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 11, + "x-linode-filterable": true + }, "label": { "description": "__Filterable__ A short description of the image.", "example": "Debian 11", @@ -42839,10 +49833,11 @@ "x-linode-cli-display": 9 }, "type": { - "description": "__Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance.", + "description": "__Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image.", "enum": [ "manual", - "automatic" + "automatic", + "shared" ], "example": "manual", "readOnly": true, @@ -42880,6 +49875,28 @@ "x-linode-filterable": true } }, + "required": [ + "id", + "tags", + "type", + "description", + "label", + "created", + "updated", + "size", + "status", + "capabilities", + "is_public", + "is_shared", + "deprecated", + "regions", + "total_size", + "image_sharing", + "created_by", + "expiry", + "eol", + "vendor" + ], "type": "object", "x-akamai": { "file-path": "schemas/image.yaml" @@ -42974,7 +49991,6 @@ "application/json": { "schema": { "additionalProperties": false, - "description": "Image object.", "properties": { "capabilities": { "description": "__Read-only__ A list of the possible capabilities of this image.\n\n- `cloud-init`. The image supports the cloud-init multi-distribution method with our [Metadata service](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/#troubleshoot-metadata-and-cloud-init). This only applies to public images.\n\n- `distributed-sites`. Whether the image can be used in distributed compute regions. Compared to a core compute region, distributed compute regions offer limited functionality, but they're globally distributed. Your image can be geographically closer to you, potentially letting you deploy it quicker. See [Regions and images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images) for complete details.", @@ -43003,7 +50019,7 @@ "type": "string" }, "deprecated": { - "description": "__Filterable__, __Read-only__ Whether this image is deprecated. Only public images can be deprecated.", + "description": "__Filterable__, __Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated.", "example": "{{deprecated}}", "readOnly": true, "type": "boolean", @@ -43028,7 +50044,7 @@ "x-linode-cli-display": 4 }, "eol": { - "description": "__Read-only__ The date of the public image's planned removal from service. This is `null` for private images.", + "description": "__Read-only__ The time of the public image's planned removal from service. This is `null` for private images.", "example": "{{eol}}", "format": "date-time", "nullable": true, @@ -43051,7 +50067,7 @@ "x-linode-cli-display": 1 }, "is_public": { - "description": "__Filterable__, __Read-only__ Revealed as `true` if the image is a public distribution image. Private, account-specific images are listed as `false`.", + "description": "__Filterable__, __Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images.", "example": "{{is_public}}", "readOnly": true, "type": "boolean", @@ -43063,6 +50079,23 @@ "x-linode-cli-display": 5, "x-linode-filterable": true }, + "is_shared": { + "description": "__Filterable__, __Read-only__ A `true` value for shared private images. `none` for images shared within a group.", + "enum": [ + true, + false, + "none" + ], + "example": "{{is_shared}}", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, "label": { "description": "__Filterable__ A short description of the image.", "example": "{{label}}", @@ -43209,7 +50242,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/image.yaml" + "file-path": "schemas/put-image.yaml" } }, "x-example": { @@ -43254,7 +50287,7 @@ "type": "string" }, "deprecated": { - "description": "__Filterable__, __Read-only__ Whether this image is deprecated. Only public images can be deprecated.", + "description": "__Filterable__, __Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated.", "example": false, "readOnly": true, "type": "boolean", @@ -43279,7 +50312,7 @@ "x-linode-cli-display": 4 }, "eol": { - "description": "__Read-only__ The date of the public image's planned removal from service. This is `null` for private images.", + "description": "__Read-only__ The time of the public image's planned removal from service. This is `null` for private images.", "example": "2026-07-01T04:00:00", "format": "date-time", "nullable": true, @@ -43296,14 +50329,117 @@ }, "id": { "description": "__Read-only__ The unique identifier for each image.", - "example": "linode/debian11", + "example": "private/15", "readOnly": true, "type": "string", "x-linode-cli-display": 1 }, + "image_sharing": { + "description": "Details about image sharing.", + "oneOf": [ + { + "additionalProperties": false, + "example": { + "shared_by": null, + "shared_with": { + "sharegroup_count": 0, + "sharegroup_list_url": "/images/private/15/sharegroups" + } + }, + "properties": { + "shared_by": { + "description": "This field is `null` in this case, meaning the image is not shared by any group. See the `shared_with` field for details on the image's share group.", + "nullable": true, + "type": "object" + }, + "shared_with": { + "additionalProperties": false, + "description": "Specifies the group that the image is shared with, including the number of share groups and a URL to view the share groups' list.", + "properties": { + "sharegroup_count": { + "description": "The number of share groups the image is shared with.", + "type": "integer" + }, + "sharegroup_list_url": { + "description": "A URL to view the list of share groups the image is shared with.", + "type": "string" + } + }, + "required": [ + "sharegroup_count", + "sharegroup_list_url" + ], + "type": "object" + } + }, + "required": [ + "shared_with", + "shared_by" + ], + "title": "shared_with", + "type": "object" + }, + { + "additionalProperties": false, + "example": { + "shared_by": { + "sharegroup_id": 3, + "sharegroup_label": "label", + "sharegroup_uuid": "8003abfe-6b03-41a1-9e4c-a234ae3060c8", + "source_image_id": null + }, + "shared_with": null + }, + "properties": { + "shared_by": { + "additionalProperties": false, + "description": "Specifies the details of the share group that is sharing the image.", + "properties": { + "sharegroup_id": { + "description": "The share group's identifier.", + "type": "integer" + }, + "sharegroup_label": { + "description": "The share group's descriptive name.", + "type": "string" + }, + "sharegroup_uuid": { + "description": "The share group's unique identifier.", + "format": "uuid", + "type": "string" + }, + "source_image_id": { + "description": "The source image's slug identifier. `null` if no specific source image is referenced.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "sharegroup_id", + "sharegroup_uuid", + "sharegroup_label", + "source_image_id" + ], + "type": "object" + }, + "shared_with": { + "description": "This field is `null` in this case, meaning the image is not shared with anyone. See the `shared_by` fields for additional details about this shared image.", + "nullable": true, + "type": "object" + } + }, + "required": [ + "shared_with", + "shared_by" + ], + "title": "shared_by", + "type": "object" + } + ] + }, "is_public": { - "description": "__Filterable__, __Read-only__ Revealed as `true` if the image is a public distribution image. Private, account-specific images are listed as `false`.", - "example": true, + "description": "__Filterable__, __Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images.", + "example": false, "readOnly": true, "type": "boolean", "x-akamai": { @@ -43314,6 +50450,24 @@ "x-linode-cli-display": 5, "x-linode-filterable": true }, + "is_shared": { + "description": "__Filterable__, __Read-only__ A `true` value for shared private images. `none` for images shared within a group.", + "enum": [ + true, + false, + "none" + ], + "example": false, + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 11, + "x-linode-filterable": true + }, "label": { "description": "__Filterable__ A short description of the image.", "example": "Debian 11", @@ -43417,10 +50571,11 @@ "x-linode-cli-display": 9 }, "type": { - "description": "__Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance.", + "description": "__Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image.", "enum": [ "manual", - "automatic" + "automatic", + "shared" ], "example": "manual", "readOnly": true, @@ -43458,13 +50613,35 @@ "x-linode-filterable": true } }, + "required": [ + "id", + "tags", + "type", + "description", + "label", + "created", + "updated", + "size", + "status", + "capabilities", + "is_public", + "is_shared", + "deprecated", + "regions", + "total_size", + "image_sharing", + "created_by", + "expiry", + "eol", + "vendor" + ], "type": "object", "x-akamai": { "file-path": "schemas/image.yaml" } }, "x-example": { - "x-ref": "../examples/get-image-200.json" + "x-ref": "../examples/put-image-200.json" }, "x-linode-cli-subtables": [ "regions" @@ -43751,7 +50928,7 @@ "type": "string" }, "deprecated": { - "description": "__Filterable__, __Read-only__ Whether this image is deprecated. Only public images can be deprecated.", + "description": "__Filterable__, __Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated.", "example": false, "readOnly": true, "type": "boolean", @@ -43776,7 +50953,7 @@ "x-linode-cli-display": 4 }, "eol": { - "description": "__Read-only__ The date of the public image's planned removal from service. This is `null` for private images.", + "description": "__Read-only__ The time of the public image's planned removal from service. This is `null` for private images.", "example": "2026-07-01T04:00:00", "format": "date-time", "nullable": true, @@ -43793,14 +50970,117 @@ }, "id": { "description": "__Read-only__ The unique identifier for each image.", - "example": "linode/debian11", + "example": "private/15", "readOnly": true, "type": "string", "x-linode-cli-display": 1 }, + "image_sharing": { + "description": "Details about image sharing.", + "oneOf": [ + { + "additionalProperties": false, + "example": { + "shared_by": null, + "shared_with": { + "sharegroup_count": 0, + "sharegroup_list_url": "/images/private/15/sharegroups" + } + }, + "properties": { + "shared_by": { + "description": "This field is `null` in this case, meaning the image is not shared by any group. See the `shared_with` field for details on the image's share group.", + "nullable": true, + "type": "object" + }, + "shared_with": { + "additionalProperties": false, + "description": "Specifies the group that the image is shared with, including the number of share groups and a URL to view the share groups' list.", + "properties": { + "sharegroup_count": { + "description": "The number of share groups the image is shared with.", + "type": "integer" + }, + "sharegroup_list_url": { + "description": "A URL to view the list of share groups the image is shared with.", + "type": "string" + } + }, + "required": [ + "sharegroup_count", + "sharegroup_list_url" + ], + "type": "object" + } + }, + "required": [ + "shared_with", + "shared_by" + ], + "title": "shared_with", + "type": "object" + }, + { + "additionalProperties": false, + "example": { + "shared_by": { + "sharegroup_id": 3, + "sharegroup_label": "label", + "sharegroup_uuid": "8003abfe-6b03-41a1-9e4c-a234ae3060c8", + "source_image_id": null + }, + "shared_with": null + }, + "properties": { + "shared_by": { + "additionalProperties": false, + "description": "Specifies the details of the share group that is sharing the image.", + "properties": { + "sharegroup_id": { + "description": "The share group's identifier.", + "type": "integer" + }, + "sharegroup_label": { + "description": "The share group's descriptive name.", + "type": "string" + }, + "sharegroup_uuid": { + "description": "The share group's unique identifier.", + "format": "uuid", + "type": "string" + }, + "source_image_id": { + "description": "The source image's slug identifier. `null` if no specific source image is referenced.", + "nullable": true, + "type": "string" + } + }, + "required": [ + "sharegroup_id", + "sharegroup_uuid", + "sharegroup_label", + "source_image_id" + ], + "type": "object" + }, + "shared_with": { + "description": "This field is `null` in this case, meaning the image is not shared with anyone. See the `shared_by` fields for additional details about this shared image.", + "nullable": true, + "type": "object" + } + }, + "required": [ + "shared_with", + "shared_by" + ], + "title": "shared_by", + "type": "object" + } + ] + }, "is_public": { - "description": "__Filterable__, __Read-only__ Revealed as `true` if the image is a public distribution image. Private, account-specific images are listed as `false`.", - "example": true, + "description": "__Filterable__, __Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images.", + "example": false, "readOnly": true, "type": "boolean", "x-akamai": { @@ -43811,6 +51091,24 @@ "x-linode-cli-display": 5, "x-linode-filterable": true }, + "is_shared": { + "description": "__Filterable__, __Read-only__ A `true` value for shared private images. `none` for images shared within a group.", + "enum": [ + true, + false, + "none" + ], + "example": false, + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 11, + "x-linode-filterable": true + }, "label": { "description": "__Filterable__ A short description of the image.", "example": "Debian 11", @@ -43914,10 +51212,11 @@ "x-linode-cli-display": 9 }, "type": { - "description": "__Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance.", + "description": "__Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image.", "enum": [ "manual", - "automatic" + "automatic", + "shared" ], "example": "manual", "readOnly": true, @@ -43955,6 +51254,28 @@ "x-linode-filterable": true } }, + "required": [ + "id", + "tags", + "type", + "description", + "label", + "created", + "updated", + "size", + "status", + "capabilities", + "is_public", + "is_shared", + "deprecated", + "regions", + "total_size", + "image_sharing", + "created_by", + "expiry", + "eol", + "vendor" + ], "type": "object", "x-akamai": { "file-path": "schemas/image.yaml" @@ -44074,6 +51395,266 @@ }, "x-linode-cli-command": "images" }, + "/{apiVersion}/images/{imageId}/sharegroups": { + "get": { + "description": "Lists all owned share groups where a given private image is currently shared. Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation. Store the `id` for the target image as your `{imageId}`, for use in this operation's URL path.\n\n> \ud83d\udcd8\n>\n> This operation returns an empty list for shared and distribution image IDs.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli images sharegroups-list private/12345\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n images:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/get-images-sharegroups-image" + }, + "operationId": "get-images-sharegroups-image", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "description": "The share group's details.", + "properties": { + "created": { + "description": "__Read-only__ When this share group was created.", + "example": "2025-04-14T22:44:02", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "The share group's detailed description.", + "example": "Group of base operating system images and engineers used for CI/CD pipelines and infrastructure automation", + "nullable": true, + "type": "string", + "x-linode-cli-display": 4 + }, + "expiry": { + "description": "__Read-only__ When the share group expires.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "id": { + "description": "The share group's numeric identifier, used primarily as path parameters in URLs.", + "example": 1, + "type": "integer", + "x-linode-cli-display": 1 + }, + "images_count": { + "description": "__Read-only__ The total number of images currently belonging to the share group.", + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 6 + }, + "is_suspended": { + "description": "__Read-only__ Indicates whether the share group is currently suspended.", + "example": false, + "readOnly": true, + "type": "boolean", + "x-linode-cli-display": 5 + }, + "label": { + "description": "__Filterable__ The share group's descriptive name.", + "example": "DevOps Base Images", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "members_count": { + "description": "__Read-only__ The number of users with access to the share group.", + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 7 + }, + "updated": { + "description": "__Read-only__ When this share group was last updated.", + "example": null, + "format": "date-time", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "uuid": { + "description": "The share group's unique identifier used for membership token management.", + "example": "1533863e-16a4-47b5-b829-ac0f35c13278", + "format": "uuid", + "type": "string", + "x-linode-cli-display": 3 + } + }, + "required": [ + "id", + "uuid", + "label", + "description", + "is_suspended", + "created", + "updated", + "expiry", + "images_count", + "members_count" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/sharegroups.yaml" + } + }, + "type": "array" + }, + "page": { + "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "pages": { + "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "results": { + "description": "__Read-only__ The total number of results.", + "example": 1, + "readOnly": true, + "type": "integer" + } + }, + "required": [ + "data", + "page", + "pages", + "results" + ], + "type": "object", + "x-akamai": { + "file-path": "schemas/get-images-sharegroups-200.yaml" + } + }, + "x-example": { + "x-ref": "../examples/get-images-sharegroups-image-200.json" + } + } + }, + "description": "Returns a paginated list of share groups." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "images:read_only" + ] + } + ], + "summary": "List share groups by image", + "tags": [ + "Image sharing" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli images sharegroups-list private/12345", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "images:read_only", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "sharegroups-list", + "x-linode-redoc-load-ids": true + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "allowReserved": false, + "description": "Slug identifier assigned to the private image upon creation. This identifier includes a slash (`/`), which must be URL-encoded in requests to prevent breaking the URL structure.", + "example": "{{imageId}}", + "in": "path", + "name": "imageId", + "required": true, + "schema": { + "example": "private/7", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/image-id-path-w-private-slug.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/images-id-sharegroups.yaml", + "path-info": "/{apiVersion}/images/{imageId}/sharegroups", + "status": "BETA" + }, + "x-linode-cli-command": "images" + }, "/{apiVersion}/linode/instances": { "post": { "description": "Creates a Linode Instance on your Account. In order for this request to complete successfully, your User must have the `add_linodes` grant. Creating a new Linode will incur a charge on your Account.\n\nLinodes can be created using one of the available Types. Run [List Linode types](https://techdocs.akamai.com/linode-api/reference/get-linode-types) to get more information about each Type's specs and cost.\n\nLinodes can be created in any one of our available Regions, which are accessible from the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation.\n\nIn an effort to fight spam, Linode restricts outbound connections on ports 25, 465, and 587 on all Linodes for new accounts created after November 5th, 2019. For more information, see our guide on [Running a Mail Server](https://www.linode.com/docs/guides/running-a-mail-server/).\n\n__Important__. You must be an unrestricted User in order to add or modify tags on Linodes.\n\nLinodes can be created in a number of ways:\n\n- Using a Linode Public Image distribution or a Private Image you created based on another Linode.\n\n - Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images.\n\n - The Linode will be `running` after it completes `provisioning`.\n - A default config with two Disks, one being a 512 swap disk, is created.\n - `swap_size` can be used to customize the swap disk size.\n - Requires a `root_pass` be supplied to use for the root User's Account.\n - It is recommended to supply SSH keys for the root User using the `authorized_keys` field.\n - You may also supply a list of usernames via the `authorized_users` field.\n - These users must have an SSH Key associated with your Profile first. See the [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key)) operation for more information.\n\n- Using cloud-init with [Metadata](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/).\n - Automate system configuration and software installation by providing a base-64 encoded [cloud-config](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata-cloud-config/) file.\n - Requires a compatible Image. You can determine compatible Images by checking for `cloud-init` under `capabilities` when running [List images](https://techdocs.akamai.com/linode-api/reference/get-images).\n - Requires a compatible Region. You can determine compatible Regions by checking for `Metadata` under `capabilities` when running [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions).\n\n- Using a StackScript.\n\n - Run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts) for a list of available StackScripts.\n - The Linode will be `running` after it completes `provisioning`.\n - Requires a compatible Image to be supplied.\n - Run [Get a StackScript](https://techdocs.akamai.com/linode-api/reference/get-stack-script) for compatible Images.\n - Requires a `root_pass` be supplied to use for the root User's Account.\n - It is recommended to supply SSH keys for the root User using the `authorized_keys` field.\n - You may also supply a list of usernames via the `authorized_users` field.\n - These users must have an SSH Key associated with your Profile first. See [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) for more information.\n\n- Using one of your other Linode's backups.\n - You must create a Linode large enough to accommodate the Backup's size.\n - The Disks and Config will match that of the Linode that was backed up.\n - The `root_pass` will match that of the Linode that was backed up.\n\n- Attached to a private VLAN.\n - Review the `interfaces` property of the [Request Body Schema](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) for details.\n - For more information, see our guide on [Getting Started with VLANs](https://www.linode.com/docs/products/networking/vlans/get-started/).\n\n- Create an empty Linode.\n - The Linode will remain `offline` and must be manually started.\n - Run [Boot a Linode](https://techdocs.akamai.com/linode-api/reference/post-boot-linode-instance).\n - Disks and Configs must be created manually.\n - This is only recommended for advanced use cases.\n\nDepending on your [account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings), you can choose between legacy configuration interfaces or Linode interfaces when creating a Linode. Only one type of interface is allowed per Linode. The `interface_generation` field lets you select one interface type for new Linodes when both legacy and Linode interfaces options are available on your account. If a Linode is configured with a Linode interface, legacy configuration interfaces can no longer be used on that Linode.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli linodes create \\\n --label linode123 \\\n --root_pass aComplex@Password \\\n --booted true \\\n --stackscript_id 10079 \\\n --stackscript_data '{\"gh_username\": \"linode\"}' \\\n --region us-east \\\n --disk_encryption enabled\\\n --placement_group.id 528 \\\n --type g6-standard-2 \\\n --authorized_keys \"ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer\" \\\n --authorized_users \"myUser\" \\\n --authorized_users \"secondaryUser\" \\\n --metadata.user_data \"I2Nsb3VkLWNvbmZpZw==\" \\\n --firewall_id 9000\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n linodes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", @@ -44103,7 +51684,7 @@ "writeOnly": true }, "authorized_users": { - "description": "__Write-only__ A list of usernames. If the usernames have associated SSH keys, the keys will be appended to the root users `~/.ssh/authorized_keys` file automatically when deploying from an Image.", + "description": "__Write-only__ A list of usernames for authorized users. Before you can add a user, it needs an SSH key assigned to its profile. See [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) for more information. If the usernames already have associated SSH keys, the keys will be appended to the root users `~/.ssh/authorized_keys` file automatically when deploying from an image.", "example": [ "myUser", "secondaryUser" @@ -44132,8 +51713,21 @@ "image": { "description": "An Image ID to deploy the Linode Disk from.\n\nRun the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image.", "example": "linode/debian9", + "nullable": true, "type": "string" }, + "maintenance_policy": { + "description": "__Beta__ Defines the maintenance policy for this Linode. Choose from the following policies:\n\n- `linode/migrate`: Migrates the Linode to a new host while it remains fully operational (with some performance degradation). Recommended for maximizing availability.\n- `linode/power_off_on`: Powers off the Linode at the start of the maintenance event and reboots it once the maintenance finishes. Recommended for maximizing performance.\n\nReview [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, "metadata": { "additionalProperties": false, "description": "__Write-only__ An object containing user-defined data relevant to the creation of Linodes.", @@ -44321,12 +51915,8 @@ "items": { "properties": { "range": { - "default": null, "description": "Your assigned IPv6 range in CIDR notation (`2001:0db8::1/64`) or prefix (`/64`).\n- The prefix of `/64` or `/56` block of IPv6 addresses.\n- If provided in CIDR notation, the prefix must be within the assigned ranges for the Linode.", - "example": [ - "2001:0a0a::1/64", - "/64" - ], + "example": "2001:0a0a::1/64", "type": "string" } }, @@ -44486,7 +52076,6 @@ "additionalProperties": false, "properties": { "range": { - "default": null, "description": "CIDR notation of a range (`1.2.3.4/24`) or prefix only (`/24`).\n- When only the prefix is provided, then an available range of that size within the VPC's subnet is automatically selected.\n- If specified as CIDR notation, it must belong to the VPC subnet. All addresses in the range must not be taken by any other Linode or interfaces in the VPC subnet and must not include any of the first two or last two addresses of the VPC subnet.", "example": [ "192.168.100.100/28", @@ -44495,12 +52084,11 @@ "10.11.12.0/24", "auto" ], - "nullable": true, "type": "string" } }, "required": [ - "address" + "range" ], "type": "object" }, @@ -44967,11 +52555,11 @@ { "description": "An Image ID to deploy the Linode Disk from.\n\nRun the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image.", "example": "linode/debian9", + "nullable": true, "type": "string" } ], "example": "linode/debian10", - "nullable": true, "readOnly": true, "x-akamai": { "labels": [ @@ -45048,6 +52636,18 @@ "readOnly": true, "type": "integer" }, + "maintenance_policy": { + "description": "__Beta__ The maintenance policy configured by the user for this Linode. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, "placement_group": { "additionalProperties": false, "description": "__Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/) that this Linode belongs to. Empty if the Linode isn't in a placement group.", @@ -45311,7 +52911,7 @@ "operationId": "get-linode-instances", "parameters": [ { - "description": "Specifies a JSON object to filter down the results. See [Filtering and sorting](filtering-and-sorting) for details.", + "description": "Specifies a JSON object to filter down the results. See [Filtering and sorting](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) for details.", "example": "{{X-Filter}}", "in": "header", "name": "X-Filter", @@ -45635,11 +53235,11 @@ { "description": "An Image ID to deploy the Linode Disk from.\n\nRun the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image.", "example": "linode/debian9", + "nullable": true, "type": "string" } ], "example": "linode/debian10", - "nullable": true, "readOnly": true, "x-akamai": { "labels": [ @@ -45711,6 +53311,19 @@ "readOnly": true, "type": "integer" }, + "maintenance_policy": { + "description": "__Beta__, __Read-only__ The maintenance policy configured by the user for this Linode. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "linode/migrate", + "readOnly": true, + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, "placement_group": { "additionalProperties": false, "description": "__Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/) that this Linode belongs to. Empty if the Linode isn't in a placement group.", @@ -46227,11 +53840,11 @@ { "description": "An Image ID to deploy the Linode Disk from.\n\nRun the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image.", "example": "linode/debian9", + "nullable": true, "type": "string" } ], "example": "linode/debian10", - "nullable": true, "readOnly": true, "x-akamai": { "labels": [ @@ -46303,6 +53916,19 @@ "readOnly": true, "type": "integer" }, + "maintenance_policy": { + "description": "__Beta__, __Read-only__ The maintenance policy configured by the user for this Linode. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "linode/migrate", + "readOnly": true, + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, "placement_group": { "additionalProperties": false, "description": "__Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/) that this Linode belongs to. Empty if the Linode isn't in a placement group.", @@ -46821,11 +54447,11 @@ { "description": "An Image ID to deploy the Linode Disk from.\n\nRun the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image.", "example": "linode/debian9", + "nullable": true, "type": "string" } ], "example": "{{image}}", - "nullable": true, "readOnly": true, "x-akamai": { "labels": [ @@ -46902,6 +54528,18 @@ "readOnly": true, "type": "integer" }, + "maintenance_policy": { + "description": "__Beta__ The maintenance policy configured by the user for this Linode. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "{{maintenance_policy}}", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, "placement_group": { "additionalProperties": false, "description": "__Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/) that this Linode belongs to. Empty if the Linode isn't in a placement group.", @@ -47278,11 +54916,11 @@ { "description": "An Image ID to deploy the Linode Disk from.\n\nRun the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image.", "example": "linode/debian9", + "nullable": true, "type": "string" } ], "example": "linode/debian10", - "nullable": true, "readOnly": true, "x-akamai": { "labels": [ @@ -47359,6 +54997,18 @@ "readOnly": true, "type": "integer" }, + "maintenance_policy": { + "description": "__Beta__ The maintenance policy configured by the user for this Linode. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, "placement_group": { "additionalProperties": false, "description": "__Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/) that this Linode belongs to. Empty if the Linode isn't in a placement group.", @@ -49588,6 +57238,18 @@ "example": "{{linode_id}}", "type": "integer" }, + "maintenance_policy": { + "description": "__Beta__ Defines the maintenance policy for the new Linode. If you don't provide it, the new Linode inherits the maintenance policy from the original Linode. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "{{maintenance_policy}}", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, "metadata": { "additionalProperties": false, "description": "__Write-only__ An object containing user-defined data relevant to the creation of Linodes.", @@ -49842,11 +57504,11 @@ { "description": "An Image ID to deploy the Linode Disk from.\n\nRun the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image.", "example": "linode/debian9", + "nullable": true, "type": "string" } ], "example": "linode/debian10", - "nullable": true, "readOnly": true, "x-akamai": { "labels": [ @@ -49923,6 +57585,18 @@ "readOnly": true, "type": "integer" }, + "maintenance_policy": { + "description": "__Beta__ The maintenance policy configured by the user for this Linode. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, "placement_group": { "additionalProperties": false, "description": "__Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/) that this Linode belongs to. Empty if the Linode isn't in a placement group.", @@ -51226,7 +58900,7 @@ ], "summary": "Create a configuration profile", "tags": [ - "Configurations" + "Configuration profiles" ], "x-akamai": { "tabs": [ @@ -51799,7 +59473,7 @@ ], "summary": "List configuration profiles", "tags": [ - "Configurations" + "Configuration profiles" ], "x-akamai": { "tabs": [ @@ -52384,7 +60058,7 @@ ], "summary": "Get a configuration profile", "tags": [ - "Configurations" + "Configuration profiles" ], "x-akamai": { "tabs": [ @@ -53400,7 +61074,7 @@ ], "summary": "Update a configuration profile", "tags": [ - "Configurations" + "Configuration profiles" ], "x-akamai": { "tabs": [ @@ -53494,7 +61168,7 @@ ], "summary": "Delete a configuration profile", "tags": [ - "Configurations" + "Configuration profiles" ], "x-akamai": { "tabs": [ @@ -53910,7 +61584,7 @@ ], "summary": "Add a configuration profile interface", "tags": [ - "Interfaces" + "Configuration profile interfaces" ], "x-akamai": { "tabs": [ @@ -54171,7 +61845,7 @@ ], "summary": "List configuration profile interfaces", "tags": [ - "Interfaces" + "Configuration profile interfaces" ], "x-akamai": { "tabs": [ @@ -54357,7 +62031,7 @@ ], "summary": "Reorder configuration profile interfaces", "tags": [ - "Interfaces" + "Configuration profile interfaces" ], "x-akamai": { "tabs": [ @@ -54624,7 +62298,7 @@ ], "summary": "Get a configuration profile interface", "tags": [ - "Interfaces" + "Configuration profile interfaces" ], "x-akamai": { "tabs": [ @@ -54897,7 +62571,7 @@ ], "summary": "Update a configuration profile interface", "tags": [ - "Interfaces" + "Configuration profile interfaces" ], "x-akamai": { "tabs": [ @@ -54991,7 +62665,7 @@ ], "summary": "Delete a configuration profile interface", "tags": [ - "Interfaces" + "Configuration profile interfaces" ], "x-akamai": { "tabs": [ @@ -55079,7 +62753,7 @@ }, "/{apiVersion}/linode/instances/{linodeId}/disks": { "post": { - "description": "Add a new disk to an existing Linode. You can create an empty disk to manually configure it later. You can also target a stored `image` to build the disk using a pre-configured file system.\n\n- A Linode can have up to 50 disks.\n\n- When creating an empty disk, you need to provide a `label` for it. If you don't include a `label`, you need to target an `image` instead.\n\n- When you create a disk from an `image`, you need to set a `root_pass` for the disk.\n\n- The default file system for a new disk is `ext4`. If you're creating one from an `image`, the disk inherits the file system of that `image`, is unless you specify otherwise.\n\n- When you deploy a StackScript on a disk:\n\n - You can run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts) to review available StackScripts.\n\n - You need to include a compatible `image` when creating the disk. Run [Get a StackScript](https://techdocs.akamai.com/linode-api/reference/get-stack-script) to review compatible images.\n\n - You should supply SSH keys for the disk's root user, using the `authorized_keys` field.\n\n - You can include individual users via the `authorized_users` field. Before you can add a user, it needs an SSH key assigned to its profile. See [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) for more information.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli linodes disk-create 123 \\\n --size 1300 \\\n --authorized_keys \"ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer\" \\\n --authorized_users \"myUser\" \\\n --authorized_users \"secondaryUser\" \\\n --root_pass aComplex@Password \\\n --image \"linode/debian9\" \\\n --stackscript_id 10079 \\\n --stackscript_data '{\"gh_username\": \"linode\"}'\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n linodes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Add a new disk to an existing Linode. You can create an empty disk to manually configure it later. You can also target a stored `image` to build the disk using a pre-configured file system--either through an image you've [created](https://techdocs.akamai.com/linode-api/reference/post-image) or via a StackScript. For added security with all disks, you should supply SSH keys for the disk's `root_pass` user, using the `authorized_keys` field.\n\n> \ud83d\udcd8\n>\n> A Linode can have up to 50 disks.\n\n**Empty disks**\n\n- When creating an empty disk, a `label` is required.\n\n- The default file system for an empty disk is `ext4`.\n\n**Disks created from an `image`**\n\n- A `root_pass` is required for a disk created from a stored image.\n\n- A created disk inherits both the `label` and the `filesystem` from the target `image`, unless you specify otherwise.\n\n- We offer an example workflow to [create a disk using a stored image](https://techdocs.akamai.com/linode-api/reference/deploy-an-image).\n\n**Disks created from a StackScript**\n\n- You can run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts) to review available StackScripts.\n\n- You need to include a StackScript-compatible `image` when creating the disk. Run [Get a StackScript](https://techdocs.akamai.com/linode-api/reference/get-stack-script) to review available images.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli linodes disk-create 123 \\\n --size 1300 \\\n --authorized_keys \"ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer\" \\\n --authorized_users \"myUser\" \\\n --authorized_users \"secondaryUser\" \\\n --root_pass aComplex@Password \\\n --image \"linode/debian9\" \\\n --stackscript_id 10079 \\\n --stackscript_data '{\"gh_username\": \"linode\"}'\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n linodes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-add-linode-disk" @@ -55106,7 +62780,7 @@ "writeOnly": true }, "authorized_users": { - "description": "__Write-only__ A list of usernames. If the usernames have associated SSH keys, the keys will be appended to the root users `~/.ssh/authorized_keys` file automatically when deploying from an Image.", + "description": "__Write-only__ A list of usernames for authorized users. Before you can add a user, it needs an SSH key assigned to its profile. See [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) for more information. If the usernames already have associated SSH keys, the keys will be appended to the root users `~/.ssh/authorized_keys` file automatically when deploying from an image.", "example": [ "myUser", "secondaryUser" @@ -55134,6 +62808,7 @@ "image": { "description": "An Image ID to deploy the Linode Disk from.\n\nRun the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image.", "example": "linode/debian9", + "nullable": true, "type": "string" }, "label": { @@ -56850,7 +64525,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this Firewall was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -56862,6 +64537,85 @@ "x-linode-cli-display": 4, "x-linode-filterable": true }, + "entities": { + "description": "__Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "The entity's ID.", + "example": 123, + "type": "integer" + }, + "label": { + "description": "__Read-only__ The entity's label.", + "example": "my-linode", + "readOnly": true, + "type": "string" + }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a `linode`.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, + "type": { + "description": "The entity's type.", + "enum": [ + "linode", + "linode_interface", + "nodebalancer" + ], + "example": "linode_interface", + "type": "string" + }, + "url": { + "description": "__Read-only__ The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/123", + "format": "url", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, "id": { "description": "__Filterable__, __Read-only__ The Firewall's unique ID.", "example": 123, @@ -57081,7 +64835,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -57124,7 +64878,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this Firewall was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -57293,7 +65047,10 @@ "properties": { "firewall_ids": { "description": "A complete list of firewall IDs to assign to this Linode or NodeBalancer. This operation replaces any existing assignments. To remove all firewalls, pass an empty list, `[]`.", - "example": 1234, + "example": [ + 1, + 2 + ], "items": { "type": "integer" }, @@ -57330,7 +65087,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this Firewall was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -57342,6 +65099,85 @@ "x-linode-cli-display": 4, "x-linode-filterable": true }, + "entities": { + "description": "__Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "The entity's ID.", + "example": 123, + "type": "integer" + }, + "label": { + "description": "__Read-only__ The entity's label.", + "example": "my-linode", + "readOnly": true, + "type": "string" + }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a `linode`.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, + "type": { + "description": "The entity's type.", + "enum": [ + "linode", + "linode_interface", + "nodebalancer" + ], + "example": "linode_interface", + "type": "string" + }, + "url": { + "description": "__Read-only__ The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/123", + "format": "url", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, "id": { "description": "__Filterable__, __Read-only__ The Firewall's unique ID.", "example": 123, @@ -57561,7 +65397,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -57604,7 +65440,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this Firewall was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -58005,12 +65841,8 @@ "items": { "properties": { "range": { - "default": null, "description": "Your assigned IPv6 range in CIDR notation (`2001:0db8::1/64`) or prefix (`/64`).\n- The prefix of `/64` or `/56` block of IPv6 addresses.\n- If provided in CIDR notation, the prefix must be within the assigned ranges for the Linode.", - "example": [ - "2001:0a0a::1/64", - "/64" - ], + "example": "2001:0a0a::1/64", "type": "string" } }, @@ -58170,7 +66002,6 @@ "additionalProperties": false, "properties": { "range": { - "default": null, "description": "CIDR notation of a range (`1.2.3.4/24`) or prefix only (`/24`).\n- When only the prefix is provided, then an available range of that size within the VPC's subnet is automatically selected.\n- If specified as CIDR notation, it must belong to the VPC subnet. All addresses in the range must not be taken by any other Linode or interfaces in the VPC subnet and must not include any of the first two or last two addresses of the VPC subnet.", "example": [ "192.168.100.100/28", @@ -58179,12 +66010,11 @@ "10.11.12.0/24", "auto" ], - "nullable": true, "type": "string" } }, "required": [ - "address" + "range" ], "type": "object" }, @@ -58257,17 +66087,17 @@ "ipv6": { "ranges": [ { - "range": "2600:3c09:e001:59::/64", + "range": "2001:DB8::/64", "route_target": "2600:3c09::ff:feab:cdef" }, { - "range": "2600:3c09:e001:5a::/64", + "range": "2001:DB8::/64", "route_target": "2600:3c09::ff:feab:cdef" } ], "shared": [ { - "range": "2600:3c09:e001:2a::/64", + "range": "2001:DB8::/64", "route_target": null } ], @@ -58884,558 +66714,583 @@ "ex-public": { "summary": "Public interface", "value": { - "created": "2025-01-01T00:01:01", - "default_route": { - "ipv4": true, - "ipv6": true - }, - "id": 1234, - "mac_address": "22:00:AB:CD:EF:01", - "public": { - "ipv4": { - "addresses": [ - { - "address": "172.30.0.50", - "primary": true - } - ], - "shared": [ - { - "address": "172.30.0.51", - "linode_id": 12345 - } - ] - }, - "ipv6": { - "ranges": [ - { - "range": "2600:3c09:e001:59::/64", - "route_target": "2600:3c09::ff:feab:cdef" + "interfaces": [ + { + "created": "2025-01-01T00:01:01", + "default_route": { + "ipv4": true, + "ipv6": true + }, + "id": 1234, + "mac_address": "22:00:AB:CD:EF:01", + "public": { + "ipv4": { + "addresses": [ + { + "address": "172.30.0.50", + "primary": true + } + ], + "shared": [ + { + "address": "172.30.0.51", + "linode_id": 12345 + } + ] }, - { - "range": "2600:3c09:e001:5a::/64", - "route_target": "2600:3c09::ff:feab:cdef" - } - ], - "shared": [ - { - "range": "2600:3c09:e001:2a::/64", - "route_target": null - } - ], - "slaac": [ - { - "address": "2600:3c09::ff:feab:cdef", - "prefix": 64 + "ipv6": { + "ranges": [ + { + "range": "2001:DB8::/64", + "route_target": "2600:3c09::ff:feab:cdef" + }, + { + "range": "2001:DB8::/64", + "route_target": "2600:3c09::ff:feab:cdef" + } + ], + "shared": [ + { + "range": "2001:DB8::/64", + "route_target": null + } + ], + "slaac": [ + { + "address": "2600:3c09::ff:feab:cdef", + "prefix": 64 + } + ] } - ] + }, + "updated": "2025-01-01T00:01:01", + "version": 1, + "vlan": null, + "vpc": null } - }, - "updated": "2025-01-01T00:01:01", - "version": 1, - "vlan": null, - "vpc": null + ] } }, "ex-vlan": { "summary": "VLAN interface", "value": { - "created": "2025-01-01T00:01:01", - "default_route": {}, - "id": 1234, - "mac_address": "22:00:AB:CD:EF:01", - "public": null, - "updated": "2025-01-01T00:01:01", - "version": 1, - "vlan": { - "ipam_address": "10.0.0.1/24", - "vlan_label": "my-vlan" - }, - "vpc": null + "interfaces": [ + { + "created": "2025-01-01T00:01:01", + "default_route": {}, + "id": 1234, + "mac_address": "22:00:AB:CD:EF:01", + "public": null, + "updated": "2025-01-01T00:01:01", + "version": 1, + "vlan": { + "ipam_address": "10.0.0.1/24", + "vlan_label": "my-vlan" + }, + "vpc": null + } + ] } }, "ex-vpc": { "summary": "VPC interface", "value": { - "created": "2025-01-01T00:01:01", - "default_route": { - "ipv4": true - }, - "id": 1234, - "mac_address": "22:00:AB:CD:EF:01", - "public": null, - "updated": "2025-01-01T00:02:01", - "version": 1, - "vlan": null, - "vpc": { - "ipv4": { - "addresses": [ - { - "address": "192.168.22.3", - "primary": true - } - ], - "ranges": [ - { - "range": "192.168.22.16/28" + "interfaces": [ + { + "created": "2025-01-01T00:01:01", + "default_route": { + "ipv4": true + }, + "id": 1234, + "mac_address": "22:00:AB:CD:EF:01", + "public": null, + "updated": "2025-01-01T00:02:01", + "version": 1, + "vlan": null, + "vpc": { + "ipv4": { + "addresses": [ + { + "address": "192.168.22.3", + "primary": true + } + ], + "ranges": [ + { + "range": "192.168.22.16/28" + }, + { + "range": "192.168.22.32/28" + } + ] }, - { - "range": "192.168.22.32/28" - } - ] - }, - "subnet_id": 1234, - "vpc_id": 1234 - } + "subnet_id": 1234, + "vpc_id": 1234 + } + } + ] } } }, "schema": { - "description": "One of the following interface types: VPC, public, or VLAN.", - "oneOf": [ - { - "additionalProperties": false, - "description": "A public interface configuration defines the properties and settings for a specific public interface in the Linode network.", - "properties": { - "created": { - "description": "When the interface was created.", - "example": "2024-01-01T00:01:01", - "format": "date-time", - "type": "string", - "x-linode-cli-display": 3 - }, - "default_route": { - "additionalProperties": false, - "description": "Indicates if the interface is used as a default route.", - "nullable": true, - "properties": { - "ipv4": { - "default": false, - "description": "Indicates if the interface is used for the IPv4 default route. Only one interface per Linode can have the IPv4 default route.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 5 - }, - "ipv6": { - "default": false, - "description": "Indicates if the interface is used for the IPv6 default route. Only one interface per Linode can have the IPv6 default route.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 6 - } - }, - "type": "object" - }, - "id": { - "description": "__Read-only__ The unique ID for this interface. For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces), a unique `id` is not generated for the interface and its value is set to 0.", - "example": 1234, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 - }, - "mac_address": { - "description": "A 48-bit MAC address used to identify the Linode\u2019s interface. A public interface's `mac_address` does not change, even if the public interface is deleted and then recreated.", - "example": "22:00:AB:CD:EF:01", - "maxLength": 64, - "minLength": 1, - "pattern": "[a-zA-Z0-9-]+", - "type": "string", - "x-linode-cli-display": 2 - }, - "public": { - "additionalProperties": false, - "description": "Public interface type.", - "properties": { - "ipv4": { - "additionalProperties": false, - "description": "The interface's public IPv4 `addresses`.", - "properties": { - "addresses": { - "description": "The public IPv4 addresses and primary settings for this public interface.", - "items": { - "additionalProperties": false, - "properties": { - "address": { - "description": "The public IPv4 address assigned to this interface.", - "example": "172.232.100.100", - "type": "string", - "x-linode-cli-display": 8 - }, - "primary": { - "description": "Indicates if the public IPv4 address serves as the source address for traffic routing within the Linode and other corresponding network interfaces and services.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 9 - } - }, - "type": "object" + "additionalProperties": false, + "properties": { + "interfaces": { + "description": "Any of the following interface types: VPC, public, or VLAN.", + "items": { + "additionalProperties": false, + "anyOf": [ + { + "additionalProperties": false, + "description": "A public interface configuration defines the properties and settings for a specific public interface in the Linode network.", + "properties": { + "created": { + "description": "When the interface was created.", + "example": "2024-01-01T00:01:01", + "format": "date-time", + "type": "string", + "x-linode-cli-display": 3 + }, + "default_route": { + "additionalProperties": false, + "description": "Indicates if the interface is used as a default route.", + "nullable": true, + "properties": { + "ipv4": { + "default": false, + "description": "Indicates if the interface is used for the IPv4 default route. Only one interface per Linode can have the IPv4 default route.", + "example": true, + "type": "boolean", + "x-linode-cli-display": 5 }, - "type": "array" + "ipv6": { + "default": false, + "description": "Indicates if the interface is used for the IPv6 default route. Only one interface per Linode can have the IPv6 default route.", + "example": true, + "type": "boolean", + "x-linode-cli-display": 6 + } }, - "shared": { - "description": "The IPv4 address assigned to this Linode interface, which is also shared with another Linode.", - "items": { - "additionalProperties": false, - "properties": { - "address": { - "description": "Shared IPv4 address.", - "example": "172.222.33.4", - "type": "string", - "x-linode-cli-display": 10 - }, - "linode_id": { - "description": "The ID of the Linode this address currently belongs to. For IPv4 addresses, by default this is the Linode this address was assigned when created.", - "example": 12345, - "type": "string", - "x-linode-cli-display": 11 - } - }, - "type": "object" - }, - "type": "array" - } + "type": "object" }, - "type": "object" - }, - "ipv6": { - "additionalProperties": false, - "description": "The interface's public IPv6 configuration.", - "properties": { - "ranges": { - "description": "List of IPv6 ranges assigned to this interface.", - "items": { + "id": { + "description": "__Read-only__ The unique ID for this interface. For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces), a unique `id` is not generated for the interface and its value is set to 0.", + "example": 1234, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 1 + }, + "mac_address": { + "description": "A 48-bit MAC address used to identify the Linode\u2019s interface. A public interface's `mac_address` does not change, even if the public interface is deleted and then recreated.", + "example": "22:00:AB:CD:EF:01", + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9-]+", + "type": "string", + "x-linode-cli-display": 2 + }, + "public": { + "additionalProperties": false, + "description": "Public interface type.", + "properties": { + "ipv4": { "additionalProperties": false, + "description": "The interface's public IPv4 `addresses`.", "properties": { - "range": { - "description": "IPv6 range in CIDR notation (`2600:0db8::1/64`) or prefix-only (`/64`).", - "example": "2600:3c09:e001:59::/64", - "type": "string", - "x-linode-cli-display": 16 + "addresses": { + "description": "The public IPv4 addresses and primary settings for this public interface.", + "items": { + "additionalProperties": false, + "properties": { + "address": { + "description": "The public IPv4 address assigned to this interface.", + "example": "172.232.100.100", + "type": "string", + "x-linode-cli-display": 8 + }, + "primary": { + "description": "Indicates if the public IPv4 address serves as the source address for traffic routing within the Linode and other corresponding network interfaces and services.", + "example": true, + "type": "boolean", + "x-linode-cli-display": 9 + } + }, + "type": "object" + }, + "type": "array" }, - "route_target": { - "description": "The public IPv6 address that the `range` is routed to.", - "example": "2600:3c09::ff:feab:cdef", - "type": "string", - "x-linode-cli-display": 17 + "shared": { + "description": "The IPv4 address assigned to this Linode interface, which is also shared with another Linode.", + "items": { + "additionalProperties": false, + "properties": { + "address": { + "description": "Shared IPv4 address.", + "example": "172.222.33.4", + "type": "string", + "x-linode-cli-display": 10 + }, + "linode_id": { + "description": "The ID of the Linode this address currently belongs to. For IPv4 addresses, by default this is the Linode this address was assigned when created.", + "example": 12345, + "type": "string", + "x-linode-cli-display": 11 + } + }, + "type": "object" + }, + "type": "array" } }, "type": "object" }, - "type": "array" - }, - "shared": { - "description": "The IPv6 address assigned to this Linode interface, which is also shared with another Linode.", - "items": { + "ipv6": { "additionalProperties": false, + "description": "The interface's public IPv6 configuration.", "properties": { - "range": { - "description": "The IPv6 address range.", - "example": "2600:3c09:e001:2a::/64", - "type": "string", - "x-linode-cli-display": 14 + "ranges": { + "description": "List of IPv6 ranges assigned to this interface.", + "items": { + "additionalProperties": false, + "properties": { + "range": { + "description": "IPv6 range in CIDR notation (`2600:0db8::1/64`) or prefix-only (`/64`).", + "example": "2600:3c09:e001:59::/64", + "type": "string", + "x-linode-cli-display": 16 + }, + "route_target": { + "description": "The public IPv6 address that the `range` is routed to.", + "example": "2600:3c09::ff:feab:cdef", + "type": "string", + "x-linode-cli-display": 17 + } + }, + "type": "object" + }, + "type": "array" }, - "route_target": { - "description": "The public IPv6 address that the `range` is routed to.", - "example": null, - "type": "string", - "x-linode-cli-display": 15 - } - }, - "type": "object" - }, - "type": "array" - }, - "slaac": { - "description": "The public `slaac` and subnet prefix settings for this public interface that is used to communicate over the public internet, and with other services in the same data center.", - "items": { - "additionalProperties": false, - "properties": { - "address": { - "description": "Public IPv6 addresses assigned to this interface.", - "example": "2600:3c09::ff:feab:cdef", - "type": "string", - "x-linode-cli-display": 12 + "shared": { + "description": "The IPv6 address assigned to this Linode interface, which is also shared with another Linode.", + "items": { + "additionalProperties": false, + "properties": { + "range": { + "description": "The IPv6 address range.", + "example": "2600:3c09:e001:2a::/64", + "type": "string", + "x-linode-cli-display": 14 + }, + "route_target": { + "description": "The public IPv6 address that the `range` is routed to.", + "example": null, + "type": "string", + "x-linode-cli-display": 15 + } + }, + "type": "object" + }, + "type": "array" }, - "prefix": { - "description": "The prefix length advertised for SLAAC to use. Only the specific (`/128`) EUI-64 address derived from the interface's MAC address is supported. To ensure the MAC-based EUI-64 address is used, privacy addressing needs to be disabled. Network Helper automatically configures the MAC-derived EUI-64 address. If you disable Network Helper or use an unsupported operating system, follow the specific instructions for your OS.", - "example": 64, - "type": "integer", - "x-linode-cli-display": 13 + "slaac": { + "description": "The public `slaac` and subnet prefix settings for this public interface that is used to communicate over the public internet, and with other services in the same data center.", + "items": { + "additionalProperties": false, + "properties": { + "address": { + "description": "Public IPv6 addresses assigned to this interface.", + "example": "2600:3c09::ff:feab:cdef", + "type": "string", + "x-linode-cli-display": 12 + }, + "prefix": { + "description": "The prefix length advertised for SLAAC to use. Only the specific (`/128`) EUI-64 address derived from the interface's MAC address is supported. To ensure the MAC-based EUI-64 address is used, privacy addressing needs to be disabled. Network Helper automatically configures the MAC-derived EUI-64 address. If you disable Network Helper or use an unsupported operating system, follow the specific instructions for your OS.", + "example": 64, + "type": "integer", + "x-linode-cli-display": 13 + } + }, + "type": "object" + }, + "type": "array" } }, "type": "object" - }, - "type": "array" - } + } + }, + "type": "object" }, - "type": "object" - } - }, - "type": "object" - }, - "updated": { - "description": "When the interface was last updated.", - "example": "2024-01-01T00:01:01", - "format": "date-time", - "type": "string", - "x-linode-cli-display": 4 - }, - "version": { - "description": "Interface version number that increments when the interface updates.", - "example": 1, - "type": "integer", - "x-linode-cli-display": 7 - }, - "vlan": { - "description": "The value is `null` if this is not a VLAN interface.", - "example": null, - "nullable": true, - "type": "object" - }, - "vpc": { - "additionalProperties": false, - "description": "The value is `null` if this is not a VPC interface.", - "example": null, - "nullable": true, - "type": "object" - } - }, - "title": "Public interface", - "type": "object", - "x-akamai": { - "file-path": "schemas/linode-interface-public.yaml" - } - }, - { - "additionalProperties": false, - "description": "A VLAN interface configuration defines the properties and settings for a specific VLAN interface in the Linode network.", - "properties": { - "created": { - "description": "When the interface was created.", - "example": "2024-01-01T00:01:01", - "format": "date-time", - "type": "string", - "x-linode-cli-display": 3 - }, - "id": { - "description": "__Read-only__ The unique ID for this interface. For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces), a unique `id` is not generated for the interface and its value is set to 0.", - "example": 1234, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 - }, - "mac_address": { - "description": "A 48-bit MAC address used to identify the Linode\u2019s interface. The `mac_address` of an interface remains constant and does not change.", - "example": "22:00:AB:CD:EF:01", - "maxLength": 64, - "minLength": 1, - "pattern": "[a-zA-Z0-9-]+", - "type": "string", - "x-linode-cli-display": 2 - }, - "public": { - "description": "The value is `null` if this isn't a public interface.", - "example": null, - "nullable": true, - "type": "object" - }, - "updated": { - "description": "When the interface was last updated.", - "example": "2024-01-01T00:01:01", - "format": "date-time", - "type": "string", - "x-linode-cli-display": 4 - }, - "version": { - "description": "Interface version number that is incremented when the interface is updated.", - "example": 1, - "type": "integer", - "x-linode-cli-display": 5 - }, - "vlan": { - "additionalProperties": false, - "description": "VLAN interface type.", - "properties": { - "ipam_address": { - "description": "This VLAN interface's private IPv4 address in classless inter-domain routing (CIDR) notation.", - "example": "10.0.0.1/24", - "format": "ip/netmask", - "nullable": true, - "type": "string", - "x-linode-cli-display": 7 + "updated": { + "description": "When the interface was last updated.", + "example": "2024-01-01T00:01:01", + "format": "date-time", + "type": "string", + "x-linode-cli-display": 4 + }, + "version": { + "description": "Interface version number that increments when the interface updates.", + "example": 1, + "type": "integer", + "x-linode-cli-display": 7 + }, + "vlan": { + "description": "The value is `null` if this is not a VLAN interface.", + "example": null, + "nullable": true, + "type": "object" + }, + "vpc": { + "additionalProperties": false, + "description": "The value is `null` if this is not a VPC interface.", + "example": null, + "nullable": true, + "type": "object" + } }, - "vlan_label": { - "description": "The VLAN's label. VLAN interfaces on the same Linode must have a unique `vlan_label`.", - "example": "my-vlan", - "type": "string", - "x-linode-cli-display": 6 + "title": "Public interface", + "type": "object", + "x-akamai": { + "file-path": "schemas/linode-interface-public.yaml" } }, - "type": "object" - }, - "vpc": { - "description": "The value is `null` if this isn't a VPC interface.", - "example": null, - "nullable": true, - "type": "object" - } - }, - "title": "VLAN interface", - "type": "object", - "x-akamai": { - "file-path": "schemas/linode-interface-vlan.yaml" - } - }, - { - "additionalProperties": false, - "description": "A VPC interface configuration defines settings for a specific VPC interface in the Linode network.", - "properties": { - "created": { - "description": "When the interface was created.", - "example": "2025-01-01 00:01:01", - "format": "date-time", - "type": "string", - "x-linode-cli-display": 3 - }, - "default_route": { - "additionalProperties": false, - "description": "Indicates if the interface serves as a default route.", - "properties": { - "ipv4": { - "default": false, - "description": "Indicates if the interface serves as the IPv4 default route. Only one interface per Linode can have the IPv4 default route.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 5 + { + "additionalProperties": false, + "description": "A VLAN interface configuration defines the properties and settings for a specific VLAN interface in the Linode network.", + "properties": { + "created": { + "description": "When the interface was created.", + "example": "2024-01-01T00:01:01", + "format": "date-time", + "type": "string", + "x-linode-cli-display": 3 + }, + "id": { + "description": "__Read-only__ The unique ID for this interface. For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces), a unique `id` is not generated for the interface and its value is set to 0.", + "example": 1234, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 1 + }, + "mac_address": { + "description": "A 48-bit MAC address used to identify the Linode\u2019s interface. The `mac_address` of an interface remains constant and does not change.", + "example": "22:00:AB:CD:EF:01", + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9-]+", + "type": "string", + "x-linode-cli-display": 2 + }, + "public": { + "description": "The value is `null` if this isn't a public interface.", + "example": null, + "nullable": true, + "type": "object" + }, + "updated": { + "description": "When the interface was last updated.", + "example": "2024-01-01T00:01:01", + "format": "date-time", + "type": "string", + "x-linode-cli-display": 4 + }, + "version": { + "description": "Interface version number that is incremented when the interface is updated.", + "example": 1, + "type": "integer", + "x-linode-cli-display": 5 + }, + "vlan": { + "additionalProperties": false, + "description": "VLAN interface type.", + "properties": { + "ipam_address": { + "description": "This VLAN interface's private IPv4 address in classless inter-domain routing (CIDR) notation.", + "example": "10.0.0.1/24", + "format": "ip/netmask", + "nullable": true, + "type": "string", + "x-linode-cli-display": 7 + }, + "vlan_label": { + "description": "The VLAN's label. VLAN interfaces on the same Linode must have a unique `vlan_label`.", + "example": "my-vlan", + "type": "string", + "x-linode-cli-display": 6 + } + }, + "type": "object" + }, + "vpc": { + "description": "The value is `null` if this isn't a VPC interface.", + "example": null, + "nullable": true, + "type": "object" + } + }, + "title": "VLAN interface", + "type": "object", + "x-akamai": { + "file-path": "schemas/linode-interface-vlan.yaml" } }, - "type": "object" - }, - "id": { - "description": "__Read-only__ The unique ID for this interface. For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces), a unique `id` is not generated for the interface and its value is set to 0.", - "example": 1234, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 - }, - "mac_address": { - "description": "A 48-bit MAC address used to identify the Linode\u2019s interface. The `mac_address` of an interface remains constant and does not change.", - "example": "22:00:AB:CD:EF:01", - "maxLength": 64, - "minLength": 1, - "pattern": "[a-zA-Z0-9-]+", - "type": "string", - "x-linode-cli-display": 2 - }, - "public": { - "additionalProperties": false, - "description": "The value is `null` if this is not a public interface.", - "example": null, - "nullable": true, - "type": "object" - }, - "updated": { - "description": "When the interface last updated.", - "example": "2025-01-01 00:01:01", - "format": "date-time", - "type": "string", - "x-linode-cli-display": 4 - }, - "version": { - "description": "The version number of the interface configuration, incremented each time the interface is updated.", - "example": 1, - "type": "integer", - "x-linode-cli-display": 6 - }, - "vlan": { - "additionalProperties": false, - "description": "The value is `null` if this is not a VLAN interface.", - "example": null, - "nullable": true, - "type": "object" - }, - "vpc": { - "additionalProperties": false, - "description": "VPC interface type.", - "properties": { - "ipv4": { - "additionalProperties": false, - "description": "The interface's IPv4 `addresses` and `ranges` configuration.", - "properties": { - "addresses": { - "description": "IPv4 address settings for this VPC interface.", - "items": { + { + "additionalProperties": false, + "description": "A VPC interface configuration defines settings for a specific VPC interface in the Linode network.", + "properties": { + "created": { + "description": "When the interface was created.", + "example": "2025-01-01 00:01:01", + "format": "date-time", + "type": "string", + "x-linode-cli-display": 3 + }, + "default_route": { + "additionalProperties": false, + "description": "Indicates if the interface serves as a default route.", + "properties": { + "ipv4": { + "default": false, + "description": "Indicates if the interface serves as the IPv4 default route. Only one interface per Linode can have the IPv4 default route.", + "example": true, + "type": "boolean", + "x-linode-cli-display": 5 + } + }, + "type": "object" + }, + "id": { + "description": "__Read-only__ The unique ID for this interface. For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces), a unique `id` is not generated for the interface and its value is set to 0.", + "example": 1234, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 1 + }, + "mac_address": { + "description": "A 48-bit MAC address used to identify the Linode\u2019s interface. The `mac_address` of an interface remains constant and does not change.", + "example": "22:00:AB:CD:EF:01", + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9-]+", + "type": "string", + "x-linode-cli-display": 2 + }, + "public": { + "additionalProperties": false, + "description": "The value is `null` if this is not a public interface.", + "example": null, + "nullable": true, + "type": "object" + }, + "updated": { + "description": "When the interface last updated.", + "example": "2025-01-01 00:01:01", + "format": "date-time", + "type": "string", + "x-linode-cli-display": 4 + }, + "version": { + "description": "The version number of the interface configuration, incremented each time the interface is updated.", + "example": 1, + "type": "integer", + "x-linode-cli-display": 6 + }, + "vlan": { + "additionalProperties": false, + "description": "The value is `null` if this is not a VLAN interface.", + "example": null, + "nullable": true, + "type": "object" + }, + "vpc": { + "additionalProperties": false, + "description": "VPC interface type.", + "properties": { + "ipv4": { "additionalProperties": false, + "description": "The interface's IPv4 `addresses` and `ranges` configuration.", "properties": { - "address": { - "description": "The VPC subnet IPv4 address.", - "example": "192.168.22.3", - "type": "string", - "x-linode-cli-display": 9 - }, - "nat_1_1_address": { - "description": "The 1:1 NAT IPv4 address used to associate a public IPv4 address with the interface's VPC subnet IPv4 address.", - "example": null, - "nullable": true, - "type": "string", - "x-linode-cli-display": 11 + "addresses": { + "description": "IPv4 address settings for this VPC interface.", + "items": { + "additionalProperties": false, + "properties": { + "address": { + "description": "The VPC subnet IPv4 address.", + "example": "192.168.22.3", + "type": "string", + "x-linode-cli-display": 9 + }, + "nat_1_1_address": { + "description": "The 1:1 NAT IPv4 address used to associate a public IPv4 address with the interface's VPC subnet IPv4 address.", + "example": null, + "nullable": true, + "type": "string", + "x-linode-cli-display": 11 + }, + "primary": { + "description": "Indicates if the IPv4 address is used to set up a source address for routes inside the Linode for the corresponding network interface.", + "example": true, + "type": "boolean", + "x-linode-cli-display": 10 + } + }, + "type": "object" + }, + "type": "array" }, - "primary": { - "description": "Indicates if the IPv4 address is used to set up a source address for routes inside the Linode for the corresponding network interface.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 10 + "ranges": { + "description": "VPC IPv4 ranges.", + "items": { + "additionalProperties": false, + "properties": { + "range": { + "description": "CIDR notation of a range (`1.2.3.4/24`) or prefix only (`/24`).", + "example": "192.168.22.16/28", + "type": "string", + "x-linode-cli-display": 12 + } + }, + "type": "object" + }, + "type": "array" } }, "type": "object" }, - "type": "array" - }, - "ranges": { - "description": "VPC IPv4 ranges.", - "items": { - "additionalProperties": false, - "properties": { - "range": { - "description": "CIDR notation of a range (`1.2.3.4/24`) or prefix only (`/24`).", - "example": "192.168.22.16/28", - "type": "string", - "x-linode-cli-display": 12 - } - }, - "type": "object" + "subnet_id": { + "description": "VPC subnet's unique identifier.", + "example": 1234, + "type": "integer", + "x-linode-cli-display": 8 }, - "type": "array" - } - }, - "type": "object" - }, - "subnet_id": { - "description": "VPC subnet's unique identifier.", - "example": 1234, - "type": "integer", - "x-linode-cli-display": 8 + "vpc_id": { + "description": "VPC's unique identifier.", + "example": 1234, + "type": "integer", + "x-linode-cli-display": 7 + } + }, + "type": "object" + } }, - "vpc_id": { - "description": "VPC's unique identifier.", - "example": 1234, - "type": "integer", - "x-linode-cli-display": 7 + "title": "VPC interface", + "type": "object", + "x-akamai": { + "file-path": "schemas/linode-interface-vpc.yaml" } - }, - "type": "object" - } + } + ], + "type": "object" }, - "title": "VPC interface", - "type": "object", - "x-akamai": { - "file-path": "schemas/linode-interface-vpc.yaml" - } + "type": "array" } + }, + "required": [ + "interfaces" ], "type": "object", "x-akamai": { - "file-path": "schemas/linode-interface.yaml" + "file-path": "schemas/linode-interfaces.yaml" } }, "x-linode-cli-nested-list": "interfaces", @@ -59619,6 +67474,309 @@ }, "x-linode-cli-command": "linodes" }, + "/{apiVersion}/linode/instances/{linodeId}/interfaces/history": { + "get": { + "description": "__Beta__ Lists the history of network interfaces by version for a Linode. This operation is for Linode interfaces, and not for legacy configuration profile interfaces.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli linodes interface-history-list $linodeId\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n linodes:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/get-linode-interface-history" + }, + "operationId": "get-linode-interface-history", + "responses": { + "200": { + "content": { + "application/json": { + "example": { + "data": [ + { + "created": "2025-08-01T00:01:01", + "interface_data": { + "created": "2024-01-01T00:01:01", + "default_route": { + "ipv4": true, + "ipv6": true + }, + "id": 1234, + "mac_address": "22:00:AB:CD:EF:01", + "public": { + "ipv4": { + "addresses": [ + { + "address": "172.29.234.138", + "primary": true + } + ], + "shared": [ + { + "address": "172.26.212.79", + "linode_id": 12345 + } + ] + }, + "ipv6": { + "ranges": [ + { + "range": "2001:DB8::/64", + "route_target": "2600:3c09::ff:feab:cdef" + }, + { + "range": "2001:DB8::/64", + "route_target": "2600:3c09::ff:feab:cdef" + } + ], + "shared": [ + { + "range": "2001:DB8::/64", + "route_target": null + } + ], + "slaac": [ + { + "address": "2600:3c09::ff:feab:cdef2", + "prefix": 64 + } + ] + } + }, + "updated": "2024-01-01T00:01:01", + "version": 3, + "vlan": null, + "vpc": null + }, + "interface_history_id": 3, + "interface_id": 221, + "linode_id": 22, + "version": 1 + } + ], + "page": 1, + "pages": 1, + "results": 1 + }, + "schema": { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "description": "Returns a paginated list of all available versions for all interfaces (as full objects) on the Linode. A new entry is added to this list each time a change is made to any interface.", + "properties": { + "created": { + "description": "__Filterable__, __Read-only__ When this version was created. Use `created` to determine which settings an interface prevously had.", + "example": "2025-08-01T00:01:01", + "format": "date-time", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 6, + "x-linode-filterable": true + }, + "interface_data": { + "description": "The JSON body returned in response to a successful `PUT`, `POST`, or `DELETE` operation on the interface.", + "example": {}, + "type": "string", + "x-linode-cli-display": 5 + }, + "interface_history_id": { + "description": "__Filterable__, __Read-only__ The unique ID for this history version.", + "example": 1, + "readOnly": true, + "type": "integer", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 1, + "x-linode-filterable": true + }, + "interface_id": { + "description": "__Filterable__, __Read-only__ The network interface defined in the `version`.", + "example": 221, + "readOnly": true, + "type": "integer", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "linode_id": { + "description": "__Filterable__, __Read-only__ The Linode the `interface_id` belongs to.", + "example": 22, + "readOnly": true, + "type": "integer", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true + }, + "version": { + "description": "__Filterable__, __Read-only__ The network interface's version. The first version from a `POST` is `1`. The version number is incremented when the network interface configuration is changed.", + "example": 1, + "readOnly": true, + "type": "integer", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 4, + "x-linode-filterable": true + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/history.yaml" + } + }, + "type": "array" + }, + "page": { + "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "pages": { + "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "results": { + "description": "__Read-only__ The total number of results.", + "example": 1, + "readOnly": true, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/added-get-linode-interfaces-history-200.yaml" + } + } + } + }, + "description": "Returns a paginated list of network interface versions for a Linode." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [ + "linodes:read_only" + ] + } + ], + "summary": "List a Linode's network interface history", + "tags": [ + "Linode interfaces" + ], + "x-akamai": { + "status": "BETA", + "tabs": [ + { + "syntax": "linode-cli linodes interface-history-list $linodeId", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + }, + { + "syntax": "linodes:read_only", + "title": "OAuth scopes", + "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" + } + ] + }, + "x-linode-cli-action": "interface-history-list", + "x-linode-grant": "read_only" + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "The `id` of the Linode.", + "example": "{{linodeId}}", + "in": "path", + "name": "linodeId", + "required": true, + "schema": { + "example": 234, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/linode-id.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/linode-interface-history.yaml", + "path-info": "/{apiVersion}/linode/instances/{linodeId}/interfaces/history" + }, + "x-linode-cli-command": "linodes" + }, "/{apiVersion}/linode/instances/{linodeId}/interfaces/settings": { "get": { "description": "__Beta__ Lists a Linode's interface settings, including Network Helper and default route settings. This operation is for Linode interfaces, not for legacy configuration profile interfaces.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli linodes interfaces-settings-list $linodeId\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n linodes: read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", @@ -59666,8 +67824,8 @@ "items": { "description": "__Read-only__ Eligible IDs, or an empty array if there are none.", "example": [ - 2, - 3 + 4, + 5 ], "readOnly": true, "type": "integer" @@ -59678,7 +67836,7 @@ "ipv6_interface_id": { "default": null, "description": "The public interface ID assigned as the IPv6 `default_route`. The [List Linode interface settings](https://techdocs.akamai.com/linode-api/reference/get-linode-interface-settings) operation provides eligible IPv6 interface IDs.", - "example": 1, + "example": 4, "nullable": true, "type": "integer", "x-linode-cli-display": 4 @@ -59819,8 +67977,8 @@ "items": { "description": "__Read-only__ Eligible IDs, or an empty array if there are none.", "example": [ - 2, - 3 + 4, + 5 ], "readOnly": true, "type": "integer" @@ -59831,7 +67989,7 @@ "ipv6_interface_id": { "default": null, "description": "The public interface ID assigned as the IPv6 `default_route`. The [List Linode interface settings](https://techdocs.akamai.com/linode-api/reference/get-linode-interface-settings) operation provides eligible IPv6 interface IDs.", - "example": 1, + "example": 4, "nullable": true, "type": "integer", "x-linode-cli-display": 4 @@ -59898,8 +68056,8 @@ "items": { "description": "__Read-only__ Eligible IDs, or an empty array if there are none.", "example": [ - 2, - 3 + 4, + 5 ], "readOnly": true, "type": "integer" @@ -59910,7 +68068,7 @@ "ipv6_interface_id": { "default": null, "description": "The public interface ID assigned as the IPv6 `default_route`. The [List Linode interface settings](https://techdocs.akamai.com/linode-api/reference/get-linode-interface-settings) operation provides eligible IPv6 interface IDs.", - "example": 1, + "example": 4, "nullable": true, "type": "integer", "x-linode-cli-display": 4 @@ -60097,17 +68255,17 @@ "ipv6": { "ranges": [ { - "range": "2600:3c09:e001:59::/64", + "range": "2001:DB8::/64", "route_target": "2600:3c09::ff:feab:cdef" }, { - "range": "2600:3c09:e001:5a::/64", + "range": "2001:DB8::/64", "route_target": "2600:3c09::ff:feab:cdef" } ], "shared": [ { - "range": "2600:3c09:e001:2a::/64", + "range": "2001:DB8::/64", "route_target": null } ], @@ -60784,10 +68942,7 @@ "range": { "default": null, "description": "IPv6 range in CIDR notation (`2001:0db8::1/64`) or prefix-only (`/64`).\n- The prefix of /64 or /56 block of IPv6 addresses.\n- CIDR notation ranges must be within your assigned ranges.", - "example": [ - "2001:0db8::1/64", - "/64" - ], + "example": "/64", "type": "string" } }, @@ -60996,17 +69151,17 @@ "ipv6": { "ranges": [ { - "range": "2600:3c09:e001:59::/64", + "range": "2001:DB8::/64", "route_target": "2600:3c09::ff:feab:cdef" }, { - "range": "2600:3c09:e001:5a::/64", + "range": "2001:DB8::/64", "route_target": "2600:3c09::ff:feab:cdef" } ], "shared": [ { - "range": "2600:3c09:e001:2a::/64", + "range": "2001:DB8::/64", "route_target": null } ], @@ -61895,7 +70050,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this Firewall was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -61907,6 +70062,85 @@ "x-linode-cli-display": 4, "x-linode-filterable": true }, + "entities": { + "description": "__Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "The entity's ID.", + "example": 123, + "type": "integer" + }, + "label": { + "description": "__Read-only__ The entity's label.", + "example": "my-linode", + "readOnly": true, + "type": "string" + }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a `linode`.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, + "type": { + "description": "The entity's type.", + "enum": [ + "linode", + "linode_interface", + "nodebalancer" + ], + "example": "linode_interface", + "type": "string" + }, + "url": { + "description": "__Read-only__ The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/123", + "format": "url", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, "id": { "description": "__Filterable__, __Read-only__ The Firewall's unique ID.", "example": 123, @@ -62126,7 +70360,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -62169,7 +70403,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this Firewall was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -65091,7 +73325,7 @@ "writeOnly": true }, "authorized_users": { - "description": "__Write-only__ A list of usernames. If the usernames have associated SSH keys, the keys will be appended to the root users `~/.ssh/authorized_keys` file automatically when deploying from an Image.", + "description": "__Write-only__ A list of usernames for authorized users. Before you can add a user, it needs an SSH key assigned to its profile. See [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) for more information. If the usernames already have associated SSH keys, the keys will be appended to the root users `~/.ssh/authorized_keys` file automatically when deploying from an image.", "example": [ "myUser", "secondaryUser" @@ -65120,8 +73354,21 @@ "image": { "description": "An Image ID to deploy the Linode Disk from.\n\nRun the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image.", "example": "linode/debian9", + "nullable": true, "type": "string" }, + "maintenance_policy": { + "description": "__Beta__ Defines the maintenance policy for this Linode. Choose from the following policies:\n\n- `linode/migrate`: Migrates the Linode to a new host while it remains fully operational (with some performance degradation). Recommended for maximizing availability.\n- `linode/power_off_on`: Powers off the Linode at the start of the maintenance event and reboots it once the maintenance finishes. Recommended for maximizing performance.\n\nReview [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, "metadata": { "additionalProperties": false, "description": "__Write-only__ An object containing user-defined data relevant to the creation of Linodes.", @@ -65383,11 +73630,11 @@ { "description": "An Image ID to deploy the Linode Disk from.\n\nRun the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image.", "example": "linode/debian9", + "nullable": true, "type": "string" } ], "example": "linode/debian10", - "nullable": true, "readOnly": true, "x-akamai": { "labels": [ @@ -65464,6 +73711,18 @@ "readOnly": true, "type": "integer" }, + "maintenance_policy": { + "description": "__Beta__ The maintenance policy configured by the user for this Linode. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, "placement_group": { "additionalProperties": false, "description": "__Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/) that this Linode belongs to. Empty if the Linode isn't in a placement group.", @@ -66634,7 +74893,7 @@ ] } ], - "summary": "Get Linode statistics", + "summary": "Get daily Linode statistics", "tags": [ "Statistics" ], @@ -66691,7 +74950,7 @@ }, "/{apiVersion}/linode/instances/{linodeId}/stats/{year}/{month}": { "get": { - "description": "Returns statistics for a specific month. The year/month values must be either a date in the past, or the current month. If the current month, statistics will be retrieved for the past 30 days.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n linodes:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns CPU, IO, IPv4, and IPv6 statistics for your Linode for a specific month. If the `{year}` and `{month}` are set to the current month, the API returns statistics for the past 30 days.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n linodes:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-linode-stats-by-year-month" @@ -66946,7 +75205,7 @@ ] } ], - "summary": "Get monthly statistics", + "summary": "Get a month's Linode statistics", "tags": [ "Statistics" ], @@ -67002,10 +75261,12 @@ "required": true, "schema": { "example": 2024, + "maximum": 2037, + "minimum": 2000, "type": "integer" }, "x-akamai": { - "file-path": "parameters/year-path-6f345986.yaml" + "file-path": "parameters/year-path.yaml" } }, { @@ -67124,9 +75385,9 @@ ] } ], - "summary": "Get a network transfer", + "summary": "Get this month's network transfer stats", "tags": [ - "Network transfers" + "Statistics" ], "x-akamai": { "tabs": [ @@ -67186,7 +75447,7 @@ }, "/{apiVersion}/linode/instances/{linodeId}/transfer/{year}/{month}": { "get": { - "description": "Returns a Linode's network transfer statistics for a specific month. The year/month values must be either a date in the past, or the current month.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n linodes:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a Linode's network transfer pool statistics for a specific month. If the `{year}` and `{month}` are set to the current month, the API returns statistics for the past 30 days.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n linodes:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-linode-transfer-by-year-month" @@ -67279,7 +75540,7 @@ ], "summary": "Get monthly network transfer stats", "tags": [ - "Network transfer statistics" + "Statistics" ], "x-akamai": { "tabs": [ @@ -67339,7 +75600,7 @@ "type": "integer" }, "x-akamai": { - "file-path": "parameters/year-path-dda8c8e5.yaml" + "file-path": "parameters/year-path.yaml" } }, { @@ -67444,17 +75705,17 @@ "ipv6": { "ranges": [ { - "range": "2600:3c09:e001:59::/64", + "range": "2001:DB8::/64", "route_target": "2600:3c09::ff:feab:cdef" }, { - "range": "2600:3c09:e001:5a::/64", + "range": "2001:DB8::/64", "route_target": "2600:3c09::ff:feab:cdef" } ], "shared": [ { - "range": "2600:3c09:e001:2a::/64", + "range": "2001:DB8::/64", "route_target": null } ], @@ -68128,7 +76389,7 @@ }, "/{apiVersion}/linode/instances/{linodeId}/volumes": { "get": { - "description": "View Block Storage Volumes attached to this Linode.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli linodes volumes 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n linodes:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "View the Block Storage volumes attached to this Linode.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli linodes volumes 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n linodes:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-linode-volumes" @@ -68172,6 +76433,32 @@ "200": { "content": { "application/json": { + "example": { + "data": [ + { + "created": "2025-01-01T00:01:01", + "encryption": "enabled", + "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_my-volume", + "hardware_type": "nvme", + "id": 12345, + "io_ready": true, + "label": "Video-file-storage", + "linode_id": 12346, + "linode_label": "linode123", + "region": "us-iad", + "size": 30, + "status": "active", + "tags": [ + "example tag", + "another example" + ], + "updated": "2025-01-01T00:01:01" + } + ], + "page": 1, + "pages": 1, + "results": 1 + }, "schema": { "additionalProperties": false, "properties": { @@ -68182,7 +76469,7 @@ "properties": { "created": { "description": "__Read-only__ When this volume was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -68221,6 +76508,12 @@ "type": "integer", "x-linode-cli-display": 1 }, + "io_ready": { + "description": "__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.", + "example": true, + "readOnly": true, + "type": "boolean" + }, "label": { "description": "__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.", "example": "my-volume", @@ -68252,13 +76545,13 @@ "x-linode-cli-display": 7 }, "region": { - "description": "The unique ID of this Region.", - "example": "us-east", + "description": "The unique identifier for the region where the volume lives.", + "example": "us-iad", "type": "string", "x-linode-cli-display": 5 }, "size": { - "description": "The Volume's size, in GiB.", + "description": "The volume's size, in gigabytes.", "example": 30, "maximum": 10240, "type": "integer", @@ -68301,7 +76594,7 @@ }, "updated": { "description": "__Read-only__ When this volume was last updated.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -68338,13 +76631,10 @@ "x-akamai": { "file-path": "schemas/added-get-linode-volumes-200.yaml" } - }, - "x-example": { - "x-ref": "../examples/get-linode-volumes-200.json" } } }, - "description": "Returns an array of Block Storage Volumes attached to this Linode." + "description": "Returns the Block Storage volumes attached to this Linode." }, "default": { "content": { @@ -69258,7 +77548,7 @@ "images" ], "x-akamai": { - "file-path": "schemas/added-post-add-stack-script.yaml" + "file-path": "schemas/post-add-stack-script.yaml" } }, "x-example": { @@ -69824,7 +78114,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-stack-scripts-200.yaml" + "file-path": "schemas/get-stack-scripts-200.yaml" } }, "x-example": { @@ -71572,7 +79862,7 @@ }, "/{apiVersion}/lke/clusters": { "post": { - "description": "Creates a Kubernetes cluster. The Kubernetes cluster will be created asynchronously. You can use the events system to determine when the Kubernetes cluster is ready to use. Please note that it often takes 2-5 minutes before the [Kubernetes API endpoints](https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-api-endpoints) and the [Kubeconfig file](https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-kubeconfig) for the new cluster are ready.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli lke cluster-create \\\n --label cluster12345 \\\n --region us-central \\\n --k8s_version 1.32 \\\n --apl_enabled false \\\n --control_plane.high_availability true \\\n --node_pools.type g6-standard-4 --node_pools.count 6 \\\n --node_pools.type g6-standard-8 --node_pools.count 3 \\\n --node_pools.autoscaler.enabled true \\\n --node_pools.autoscaler.max 12 \\\n --node_pools.autoscaler.min 3 \\\n --tags ecomm\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n lke:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Creates a Kubernetes cluster. The Kubernetes cluster will be created asynchronously. You can use the events system to determine when the Kubernetes cluster is ready to use. Please note that it often takes 2-5 minutes before the [Kubernetes API endpoints](https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-api-endpoints) and the [Kubeconfig file](https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-kubeconfig) for the new cluster are ready.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli lke cluster-create \\\n --label cluster12345 \\\n --region us-central \\\n --k8s_version 1.33 \\\n --apl_enabled false \\\n --control_plane.high_availability true \\\n --node_pools.type g6-standard-4 --node_pools.count 6 \\\n --node_pools.type g6-standard-8 --node_pools.count 3 \\\n --node_pools.autoscaler.enabled true \\\n --node_pools.autoscaler.max 12 \\\n --node_pools.autoscaler.min 3 \\\n --tags ecomm\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n lke:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-lke-cluster" @@ -71643,6 +79933,19 @@ }, "type": "object" }, + "audit_logs_enabled": { + "default": false, + "description": "__Beta__, __LKE Enterprise__ Enables audit logs on the cluster's control plane. These logs provide detailed information about user access and the operations performed on the cluster, which can be useful for security and compliance purposes.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": true, + "type": "boolean", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + }, + "x-linode-cli-display": 4 + }, "high_availability": { "default": false, "description": "Enables High Availability for the cluster's control plane components. It defaults to `false`. Enabling High Availability for LKE is an irreversible change.", @@ -71714,17 +80017,28 @@ "type": "object" }, "count": { - "description": "The number of nodes in the Node Pool.", + "description": "The number of nodes in the node pool.", "example": 6, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 4 + }, + "disk_encryption": { + "default": "disabled", + "description": "Local disk encryption setting for this LKE node pool. Defaults to `disabled`.", + "enum": [ + "enabled", + "disabled" + ], + "example": "enabled", + "type": "string" }, "disks": { "description": "This node pool's custom disk layout. Each item in this array will create a new disk partition for each node in this node pool.\n\n> \ud83d\udcd8\n>\n> Omit this field, except for special use cases. The disks specified here are partitions in _addition_ to the primary partition and reduce the size of the primary partition. This can lead to stability problems for the node.\n\n - The custom disk layout is applied to each node in this node pool.\n\n - The maximum number of custom disk partitions that can be configured is 7.\n\n - Once the requested disk partitions are allocated, the remaining disk space is allocated to the node's boot disk.\n\n - A node pool's custom disk layout is immutable over the lifetime of the node pool.", "items": { "additionalProperties": false, - "description": "The values to assign to each partition in this Node Pool's custom disk layout.", + "description": "The values to assign to each partition in this node pool's custom disk layout.", "properties": { "size": { "description": "The size of this custom disk partition in MB. The size of this disk partition can't exceed the capacity of the node's plan type.", @@ -71747,9 +80061,23 @@ "x-linode-cli-format": "json" }, "k8s_version": { - "description": "__Beta__ The LKE-specific Kubernetes version to use for the worker nodes within this node pool. This field is required when creating node pools on LKE Enterprise clusters.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "description": "__Beta__, __LKE Enterprise__ The LKE-specific Kubernetes version to use for the worker nodes within this node pool. This field is required when creating node pools on LKE Enterprise clusters.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", "example": "v1.31.8+lke3", "type": "string", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } + }, + "label": { + "description": "__Beta__ An optional label for this node pool. Labels can be up to 32 characters long, containing lowercase alphanumeric characters optionally interspersed with dashes.\n\nA node pool's label also cascades down to its nodes (Linodes). If a label is defined on the node pool, the label for each node is `--`. If not, the label is `--`.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": "app-pool", + "maxLength": 32, + "minLength": 1, + "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])$", + "type": "string", "x-akamai": { "status": "BETA" } @@ -71769,7 +80097,7 @@ "type": "object" }, "tags": { - "description": "__Filterable__ An array of tags applied to this object. Tags are for organizational purposes only.", + "description": "__Filterable__ Organizational tags to apply to this node pool. When you apply tags to LKE Enterprise node pools, they also apply to the nodes (Linodes) within the node pool. Tags don't cascade down to nodes in non-Enterprise node pools.", "example": [ "example tag", "another example" @@ -71840,12 +80168,13 @@ "type": "array" }, "type": { - "description": "The Linode Type for all of the nodes in the Node Pool.", + "description": "The Linode Type for all of the nodes in the node pool.", "example": "g6-standard-4", - "type": "string" + "type": "string", + "x-linode-cli-display": 3 }, "update_strategy": { - "description": "__Beta__ Determines when the worker nodes within this node pool upgrade to the latest selected Kubernetes version, after the cluster has been upgraded. This field is required when creating node pools on LKE Enterprise clusters.\n\n- `rolling_update`: Immediately triggers a recycle of this node pool when the Kubernetes version is updated.\n- `on_recycle` (default): Does not trigger any immediate recycle. New worker nodes are created with the new Kubernetes version. Existing worker nodes will be upgraded when a recycle is manually triggered.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "description": "__Beta__, __LKE Enterprise__ Determines when the worker nodes within this node pool upgrade to the latest selected Kubernetes version, after the cluster has been upgraded. This field is required when creating node pools on LKE Enterprise clusters.\n\n- `rolling_update`: Immediately triggers a recycle of this node pool when the Kubernetes version is updated.\n- `on_recycle` (default): Does not trigger any immediate recycle. New worker nodes are created with the new Kubernetes version. Existing worker nodes will be upgraded when a recycle is manually triggered.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", "enum": [ "rolling_update", "on_recycle" @@ -71853,6 +80182,9 @@ "example": "on_recycle", "type": "string", "x-akamai": { + "labels": [ + "LKE Enterprise" + ], "status": "BETA" } } @@ -71880,6 +80212,33 @@ "x-linode-cli-display": 3, "x-linode-filterable": true }, + "stack_type": { + "default": "ipv4", + "description": "__Beta__, __LKE Enterprise__ The networking stack type of the Kubernetes cluster. This specifies that the cluster is IPv4 only (default) or supports both IPv4 and IPv6 (dual-stack).\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "enum": [ + "ipv4", + "ipv4-ipv6" + ], + "example": "{{stack_type}}", + "type": "string", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } + }, + "subnet_id": { + "description": "__Beta__, __LKE Enterprise__ The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must have both IPv4 and IPv6 enabled (dual-stack). When this field is specified, the cluster is deployed to the given subnet and its corresponding VPC. To specify a VPC and have a subnet auto-allocated, use `vpc_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": "{{subnet_id}}", + "type": "integer", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } + }, "tags": { "description": "__Filterable__ An array of tags applied to the Kubernetes cluster. Tags are for organizational purposes only.", "example": [ @@ -71898,7 +80257,7 @@ "x-linode-filterable": true }, "tier": { - "description": "__Beta__, __Filterable__ The desired Kubernetes tier, either `standard` or `enterprise`.\n\n> \ud83d\udea7\n>\n> This field is in beta and only works when using the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "description": "__Beta__, __Filterable__ The desired Kubernetes tier, either `standard` or `enterprise`.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`.", "enum": [ "standard", "enterprise" @@ -71913,6 +80272,17 @@ }, "x-linode-cli-display": 5, "x-linode-filterable": true + }, + "vpc_id": { + "description": "__Beta__, __LKE Enterprise__ The ID of the VPC to use for the Kubernetes cluster. An appropriately sized subnet is auto-allocated. To specify an existing subnet, use `subnet_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": "{{vpc_id}}", + "type": "integer", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } } }, "required": [ @@ -71923,7 +80293,7 @@ ], "type": "object", "x-akamai": { - "file-path": "schemas/added-post-lke-cluster.yaml" + "file-path": "schemas/post-lke-cluster.yaml" } }, "x-example": { @@ -71957,6 +80327,19 @@ "additionalProperties": false, "description": "Defines settings for the Kubernetes control plane, including enabling High Availability (HA) for the control plane.", "properties": { + "audit_logs_enabled": { + "default": false, + "description": "__Beta__, __LKE Enterprise__ Enables audit logs on the cluster's control plane. These logs provide detailed information about user access and the operations performed on the cluster, which can be useful for security and compliance purposes.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": true, + "type": "boolean", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + }, + "x-linode-cli-display": 4 + }, "high_availability": { "default": false, "description": "Enables High Availability for the cluster's control plane components. It defaults to `false`. Enabling High Availability for LKE is an irreversible change.", @@ -71983,7 +80366,7 @@ }, "k8s_version": { "description": "__Filterable__ The desired Kubernetes version for this Kubernetes cluster in the format of `.`. The latest supported patch version is deployed.", - "example": "1.32", + "example": "1.33", "type": "string", "x-akamai": { "labels": [ @@ -72019,6 +80402,33 @@ "x-linode-cli-display": 3, "x-linode-filterable": true }, + "stack_type": { + "default": "ipv4", + "description": "__Beta__, __LKE Enterprise__ The networking stack type of the Kubernetes cluster. This specifies that the cluster is IPv4 only (default) or supports both IPv4 and IPv6 (dual-stack).\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "enum": [ + "ipv4", + "ipv4-ipv6" + ], + "example": "ipv4", + "type": "string", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } + }, + "subnet_id": { + "description": "__Beta__, __LKE Enterprise__ The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must have both IPv4 and IPv6 enabled (dual-stack). When this field is specified, the cluster is deployed to the given subnet and its corresponding VPC. To specify a VPC and have a subnet auto-allocated, use `vpc_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": 123456, + "type": "integer", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } + }, "tags": { "description": "__Filterable__ An array of tags applied to the Kubernetes cluster. Tags are for organizational purposes only.", "example": [ @@ -72037,7 +80447,7 @@ "x-linode-filterable": true }, "tier": { - "description": "__Beta__, __Filterable__ The desired Kubernetes tier, either `standard` or `enterprise`.\n\n> \ud83d\udea7\n>\n> This field is in beta and only works when using the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "description": "__Beta__, __Filterable__ The desired Kubernetes tier, either `standard` or `enterprise`.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`.", "enum": [ "standard", "enterprise" @@ -72059,6 +80469,17 @@ "format": "date-time", "readOnly": true, "type": "string" + }, + "vpc_id": { + "description": "__Beta__, __LKE Enterprise__ The ID of the VPC to use for the Kubernetes cluster. An appropriately sized subnet is auto-allocated. To specify an existing subnet, use `subnet_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": 123456, + "type": "integer", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } } }, "type": "object", @@ -72127,7 +80548,7 @@ "x-akamai": { "tabs": [ { - "syntax": "linode-cli lke cluster-create \\\n --label cluster12345 \\\n --region us-central \\\n --k8s_version 1.32 \\\n --apl_enabled false \\\n --control_plane.high_availability true \\\n --node_pools.type g6-standard-4 --node_pools.count 6 \\\n --node_pools.type g6-standard-8 --node_pools.count 3 \\\n --node_pools.autoscaler.enabled true \\\n --node_pools.autoscaler.max 12 \\\n --node_pools.autoscaler.min 3 \\\n --tags ecomm", + "syntax": "linode-cli lke cluster-create \\\n --label cluster12345 \\\n --region us-central \\\n --k8s_version 1.33 \\\n --apl_enabled false \\\n --control_plane.high_availability true \\\n --node_pools.type g6-standard-4 --node_pools.count 6 \\\n --node_pools.type g6-standard-8 --node_pools.count 3 \\\n --node_pools.autoscaler.enabled true \\\n --node_pools.autoscaler.max 12 \\\n --node_pools.autoscaler.min 3 \\\n --tags ecomm", "title": "CLI", "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" }, @@ -72174,6 +80595,19 @@ "additionalProperties": false, "description": "Defines settings for the Kubernetes control plane, including enabling High Availability (HA) for the control plane.", "properties": { + "audit_logs_enabled": { + "default": false, + "description": "__Beta__, __LKE Enterprise__ Enables audit logs on the cluster's control plane. These logs provide detailed information about user access and the operations performed on the cluster, which can be useful for security and compliance purposes.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": true, + "type": "boolean", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + }, + "x-linode-cli-display": 4 + }, "high_availability": { "default": false, "description": "Enables High Availability for the cluster's control plane components. It defaults to `false`. Enabling High Availability for LKE is an irreversible change.", @@ -72200,7 +80634,7 @@ }, "k8s_version": { "description": "__Filterable__ The desired Kubernetes version for this Kubernetes cluster in the format of `.`. The latest supported patch version is deployed.", - "example": "1.32", + "example": "1.33", "type": "string", "x-akamai": { "labels": [ @@ -72236,6 +80670,33 @@ "x-linode-cli-display": 3, "x-linode-filterable": true }, + "stack_type": { + "default": "ipv4", + "description": "__Beta__, __LKE Enterprise__ The networking stack type of the Kubernetes cluster. This specifies that the cluster is IPv4 only (default) or supports both IPv4 and IPv6 (dual-stack).\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "enum": [ + "ipv4", + "ipv4-ipv6" + ], + "example": "ipv4", + "type": "string", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } + }, + "subnet_id": { + "description": "__Beta__, __LKE Enterprise__ The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must have both IPv4 and IPv6 enabled (dual-stack). When this field is specified, the cluster is deployed to the given subnet and its corresponding VPC. To specify a VPC and have a subnet auto-allocated, use `vpc_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": 123456, + "type": "integer", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } + }, "tags": { "description": "__Filterable__ An array of tags applied to the Kubernetes cluster. Tags are for organizational purposes only.", "example": [ @@ -72254,7 +80715,7 @@ "x-linode-filterable": true }, "tier": { - "description": "__Beta__, __Filterable__ The desired Kubernetes tier, either `standard` or `enterprise`.\n\n> \ud83d\udea7\n>\n> This field is in beta and only works when using the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "description": "__Beta__, __Filterable__ The desired Kubernetes tier, either `standard` or `enterprise`.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`.", "enum": [ "standard", "enterprise" @@ -72276,6 +80737,17 @@ "format": "date-time", "readOnly": true, "type": "string" + }, + "vpc_id": { + "description": "__Beta__, __LKE Enterprise__ The ID of the VPC to use for the Kubernetes cluster. An appropriately sized subnet is auto-allocated. To specify an existing subnet, use `subnet_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": 123456, + "type": "integer", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } } }, "type": "object", @@ -72306,7 +80778,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-lke-clusters-200.yaml" + "file-path": "schemas/get-lke-clusters-200.yaml" } }, "x-example": { @@ -72438,6 +80910,19 @@ "additionalProperties": false, "description": "Defines settings for the Kubernetes control plane, including enabling High Availability (HA) for the control plane.", "properties": { + "audit_logs_enabled": { + "default": false, + "description": "__Beta__, __LKE Enterprise__ Enables audit logs on the cluster's control plane. These logs provide detailed information about user access and the operations performed on the cluster, which can be useful for security and compliance purposes.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": true, + "type": "boolean", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + }, + "x-linode-cli-display": 4 + }, "high_availability": { "default": false, "description": "Enables High Availability for the cluster's control plane components. It defaults to `false`. Enabling High Availability for LKE is an irreversible change.", @@ -72464,7 +80949,7 @@ }, "k8s_version": { "description": "__Filterable__ The desired Kubernetes version for this Kubernetes cluster in the format of `.`. The latest supported patch version is deployed.", - "example": "1.32", + "example": "1.33", "type": "string", "x-akamai": { "labels": [ @@ -72500,6 +80985,33 @@ "x-linode-cli-display": 3, "x-linode-filterable": true }, + "stack_type": { + "default": "ipv4", + "description": "__Beta__, __LKE Enterprise__ The networking stack type of the Kubernetes cluster. This specifies that the cluster is IPv4 only (default) or supports both IPv4 and IPv6 (dual-stack).\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "enum": [ + "ipv4", + "ipv4-ipv6" + ], + "example": "ipv4", + "type": "string", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } + }, + "subnet_id": { + "description": "__Beta__, __LKE Enterprise__ The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must have both IPv4 and IPv6 enabled (dual-stack). When this field is specified, the cluster is deployed to the given subnet and its corresponding VPC. To specify a VPC and have a subnet auto-allocated, use `vpc_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": 123456, + "type": "integer", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } + }, "tags": { "description": "__Filterable__ An array of tags applied to the Kubernetes cluster. Tags are for organizational purposes only.", "example": [ @@ -72518,7 +81030,7 @@ "x-linode-filterable": true }, "tier": { - "description": "__Beta__, __Filterable__ The desired Kubernetes tier, either `standard` or `enterprise`.\n\n> \ud83d\udea7\n>\n> This field is in beta and only works when using the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "description": "__Beta__, __Filterable__ The desired Kubernetes tier, either `standard` or `enterprise`.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`.", "enum": [ "standard", "enterprise" @@ -72540,6 +81052,17 @@ "format": "date-time", "readOnly": true, "type": "string" + }, + "vpc_id": { + "description": "__Beta__, __LKE Enterprise__ The ID of the VPC to use for the Kubernetes cluster. An appropriately sized subnet is auto-allocated. To specify an existing subnet, use `subnet_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": 123456, + "type": "integer", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } } }, "type": "object", @@ -72622,7 +81145,7 @@ "x-linode-cli-action": "cluster-view" }, "put": { - "description": "Updates a Kubernetes cluster.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli lke cluster-update 12345 \\\n --label lkecluster54321 \\\n --control_plane.high_availability true \\\n --k8s_version 1.31 \\\n --tags ecomm \\\n --tags blog \\\n --tags prod \\\n --tags monitoring\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n lke:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Updates a Kubernetes cluster.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli lke cluster-update 12345 \\\n --label lkecluster54321 \\\n --control_plane.high_availability true \\\n --k8s_version 1.33 \\\n --tags ecomm \\\n --tags blog \\\n --tags prod \\\n --tags monitoring\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n lke:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-lke-cluster" @@ -72684,6 +81207,19 @@ }, "type": "object" }, + "audit_logs_enabled": { + "default": false, + "description": "__Beta__, __LKE Enterprise__ Enables audit logs on the cluster's control plane. These logs provide detailed information about user access and the operations performed on the cluster, which can be useful for security and compliance purposes.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": true, + "type": "boolean", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + }, + "x-linode-cli-display": 4 + }, "high_availability": { "default": false, "description": "Enables High Availability for the cluster's control plane components. It defaults to `false`. Enabling High Availability for LKE is an irreversible change.", @@ -72729,7 +81265,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-put-lke-cluster.yaml" + "file-path": "schemas/put-lke-cluster.yaml" } }, "x-example": { @@ -72745,7 +81281,44 @@ "application/json": { "schema": { "additionalProperties": false, + "description": "A Kubernetes cluster.", "properties": { + "apl_enabled": { + "description": "__Write-once__ Indicates whether the Akamai App Platform is installed during creation of the LKE cluster. It defaults to `false`. If set to `true`, `control_plane.high_availability` also needs to be `true`. Automatic installation of the App Platform is only possible when creating a new cluster (not when modifying existing clusters).", + "example": true, + "type": "boolean", + "x-akamai": { + "write-once": true + }, + "x-linode-cli-display": 6 + }, + "control_plane": { + "additionalProperties": false, + "description": "Defines settings for the Kubernetes control plane, including enabling High Availability (HA) for the control plane.", + "properties": { + "audit_logs_enabled": { + "default": false, + "description": "__Beta__, __LKE Enterprise__ Enables audit logs on the cluster's control plane. These logs provide detailed information about user access and the operations performed on the cluster, which can be useful for security and compliance purposes.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": true, + "type": "boolean", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + }, + "x-linode-cli-display": 4 + }, + "high_availability": { + "default": false, + "description": "Enables High Availability for the cluster's control plane components. It defaults to `false`. Enabling High Availability for LKE is an irreversible change.", + "example": true, + "type": "boolean", + "x-linode-cli-display": 5 + } + }, + "type": "object" + }, "created": { "description": "__Read-only__ When this Kubernetes cluster was created.", "example": "2019-09-12T21:25:30Z", @@ -72753,9 +81326,16 @@ "readOnly": true, "type": "string" }, + "id": { + "description": "__Read-only__ This Kubernetes cluster's unique ID.", + "example": 1234, + "readOnly": true, + "type": "integer", + "x-linode-cli-display": 1 + }, "k8s_version": { "description": "__Filterable__ The desired Kubernetes version for this Kubernetes cluster in the format of `.`. The latest supported patch version is deployed.", - "example": "1.32", + "example": "1.33", "type": "string", "x-akamai": { "labels": [ @@ -72791,18 +81371,66 @@ "x-linode-cli-display": 3, "x-linode-filterable": true }, + "stack_type": { + "default": "ipv4", + "description": "__Beta__, __LKE Enterprise__ The networking stack type of the Kubernetes cluster. This specifies that the cluster is IPv4 only (default) or supports both IPv4 and IPv6 (dual-stack).\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "enum": [ + "ipv4", + "ipv4-ipv6" + ], + "example": "ipv4", + "type": "string", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } + }, + "subnet_id": { + "description": "__Beta__, __LKE Enterprise__ The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must have both IPv4 and IPv6 enabled (dual-stack). When this field is specified, the cluster is deployed to the given subnet and its corresponding VPC. To specify a VPC and have a subnet auto-allocated, use `vpc_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": 123456, + "type": "integer", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } + }, "tags": { - "description": "An array of tags applied to the Kubernetes cluster. Tags are for organizational purposes only. To delete a tag, exclude it from your `tags` array.", + "description": "__Filterable__ An array of tags applied to the Kubernetes cluster. Tags are for organizational purposes only.", "example": [ - "prod", - "monitoring", "ecomm", - "blog" + "blogs" ], "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, + "tier": { + "description": "__Beta__, __Filterable__ The desired Kubernetes tier, either `standard` or `enterprise`.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "enum": [ + "standard", + "enterprise" + ], + "example": "standard", + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ], + "status": "BETA" + }, + "x-linode-cli-display": 5, + "x-linode-filterable": true }, "updated": { "description": "__Read-only__ When this Kubernetes cluster was updated.", @@ -72810,11 +81438,22 @@ "format": "date-time", "readOnly": true, "type": "string" + }, + "vpc_id": { + "description": "__Beta__, __LKE Enterprise__ The ID of the VPC to use for the Kubernetes cluster. An appropriately sized subnet is auto-allocated. To specify an existing subnet, use `subnet_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": 123456, + "type": "integer", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } } }, "type": "object", "x-akamai": { - "file-path": "schemas/added-put-lke-cluster-200.yaml" + "file-path": "schemas/lke-cluster.yaml" } }, "x-example": { @@ -72842,7 +81481,7 @@ "x-akamai": { "tabs": [ { - "syntax": "linode-cli lke cluster-update 12345 \\\n --label lkecluster54321 \\\n --control_plane.high_availability true \\\n --k8s_version 1.31 \\\n --tags ecomm \\\n --tags blog \\\n --tags prod \\\n --tags monitoring", + "syntax": "linode-cli lke cluster-update 12345 \\\n --label lkecluster54321 \\\n --control_plane.high_availability true \\\n --k8s_version 1.33 \\\n --tags ecomm \\\n --tags blog \\\n --tags prod \\\n --tags monitoring", "title": "CLI", "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" }, @@ -72856,7 +81495,7 @@ "x-linode-cli-action": "cluster-update" }, "delete": { - "description": "Deletes a Cluster you have permission to `read_write`.\n\n__Deleting a Cluster is a destructive action and cannot be undone.__\n\nDeleting a Cluster:\n\n- Deletes all Linodes in all pools within this Kubernetes cluster\n- Deletes all supporting Kubernetes services for this Kubernetes cluster (API server, etcd, etc)\n- Deletes all NodeBalancers created by this Kubernetes cluster\n- Does not delete any of the volumes created by this Kubernetes cluster\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli lke cluster-delete 12345\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n lke:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Deletes a cluster from your account.\n\n> \ud83d\udea7\n>\n> Deleting a cluster is a destructive action and can't be undone.\n\nWhen a cluster is deleted, all supporting Kubernetes services are removed from your account along with all Linodes in your cluster's node pools. You must have `read_write` permission to the cluster to initiate deletion.\n\nSome additional services associated with your cluster remain active on your account. These services include NodeBalancers and Block Storage volumes. To avoid further charges, delete these services manually through Cloud Manager, the Linode CLI, or the Linode API.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli lke cluster-delete 12345\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n lke:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/delete-lke-cluster" @@ -72981,7 +81620,7 @@ } ], "x-akamai": { - "file-path": "paths/cluster.yaml", + "file-path": "paths/lke-cluster.yaml", "path-info": "/{apiVersion}/lke/clusters/{clusterId}" }, "x-linode-cli-command": "lke" @@ -73038,7 +81677,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-lke-cluster-api-endpoints-200.yaml" + "file-path": "schemas/get-lke-cluster-api-endpoints-200.yaml" } }, "x-example": { @@ -73148,7 +81787,7 @@ } ], "x-akamai": { - "file-path": "paths/api-endpoints.yaml", + "file-path": "paths/lke-api-endpoints.yaml", "path-info": "/{apiVersion}/lke/clusters/{clusterId}/api-endpoints" }, "x-linode-cli-command": "lke" @@ -73244,7 +81883,7 @@ } ], "x-akamai": { - "file-path": "schemas/added-get-lke-cluster-control-plane.yaml" + "file-path": "schemas/get-lke-cluster-control-plane.yaml" } } } @@ -73382,7 +82021,7 @@ ], "summary": "Get the control plane access control list", "tags": [ - "LKE Control Plane ACL" + "Control Plane ACL" ], "x-akamai": { "tabs": [ @@ -73553,7 +82192,7 @@ } ], "x-akamai": { - "file-path": "schemas/added-get-lke-cluster-control-plane.yaml" + "file-path": "schemas/get-lke-cluster-control-plane.yaml" } } } @@ -73691,7 +82330,7 @@ ], "summary": "Update the control plane access control list", "tags": [ - "LKE Control Plane ACL" + "Control Plane ACL" ], "x-akamai": { "tabs": [ @@ -73866,7 +82505,7 @@ ], "summary": "Delete the control plane access control list", "tags": [ - "LKE Control Plane ACL" + "Control Plane ACL" ], "x-akamai": { "tabs": [ @@ -73917,7 +82556,7 @@ } ], "x-akamai": { - "file-path": "paths/control-plane-acl.yaml", + "file-path": "paths/lke-control-plane-acl.yaml", "path-info": "/{apiVersion}/lke/clusters/{clusterId}/control_plane_acl" }, "x-linode-cli-command": "lke" @@ -73945,7 +82584,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-lke-cluster-dashboard-200.yaml" + "file-path": "schemas/get-lke-cluster-dashboard-200.yaml" } }, "x-example": { @@ -74055,7 +82694,7 @@ } ], "x-akamai": { - "file-path": "paths/dashboard.yaml", + "file-path": "paths/lke-dashboard.yaml", "path-info": "/{apiVersion}/lke/clusters/{clusterId}/dashboard" }, "x-linode-cli-command": "lke" @@ -74083,7 +82722,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-lke-cluster-kubeconfig-200.yaml" + "file-path": "schemas/get-lke-cluster-kubeconfig-200.yaml" } }, "x-example": { @@ -74286,7 +82925,7 @@ } ], "x-akamai": { - "file-path": "paths/kubeconfig.yaml", + "file-path": "paths/lke-kubeconfig.yaml", "path-info": "/{apiVersion}/lke/clusters/{clusterId}/kubeconfig" }, "x-linode-cli-command": "lke" @@ -74545,7 +83184,7 @@ } ], "x-akamai": { - "file-path": "paths/cluster-node.yaml", + "file-path": "paths/lke-node.yaml", "path-info": "/{apiVersion}/lke/clusters/{clusterId}/nodes/{nodeId}" }, "x-linode-cli-command": "lke" @@ -74690,7 +83329,7 @@ } ], "x-akamai": { - "file-path": "paths/node-recycle.yaml", + "file-path": "paths/lke-node-recycle.yaml", "path-info": "/{apiVersion}/lke/clusters/{clusterId}/nodes/{nodeId}/recycle" }, "x-linode-cli-command": "lke" @@ -74739,17 +83378,28 @@ "type": "object" }, "count": { - "description": "The number of nodes in the Node Pool.", + "description": "The number of nodes in the node pool.", "example": 6, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 4 + }, + "disk_encryption": { + "default": "disabled", + "description": "Local disk encryption setting for this LKE node pool. Defaults to `disabled`.", + "enum": [ + "enabled", + "disabled" + ], + "example": "enabled", + "type": "string" }, "disks": { "description": "This node pool's custom disk layout. Each item in this array will create a new disk partition for each node in this node pool.\n\n> \ud83d\udcd8\n>\n> Omit this field, except for special use cases. The disks specified here are partitions in _addition_ to the primary partition and reduce the size of the primary partition. This can lead to stability problems for the node.\n\n - The custom disk layout is applied to each node in this node pool.\n\n - The maximum number of custom disk partitions that can be configured is 7.\n\n - Once the requested disk partitions are allocated, the remaining disk space is allocated to the node's boot disk.\n\n - A node pool's custom disk layout is immutable over the lifetime of the node pool.", "items": { "additionalProperties": false, - "description": "The values to assign to each partition in this Node Pool's custom disk layout.", + "description": "The values to assign to each partition in this node pool's custom disk layout.", "properties": { "size": { "description": "The size of this custom disk partition in MB. The size of this disk partition can't exceed the capacity of the node's plan type.", @@ -74772,9 +83422,23 @@ "x-linode-cli-format": "json" }, "k8s_version": { - "description": "__Beta__ The LKE-specific Kubernetes version to use for the worker nodes within this node pool. This field is required when creating node pools on LKE Enterprise clusters.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "description": "__Beta__, __LKE Enterprise__ The LKE-specific Kubernetes version to use for the worker nodes within this node pool. This field is required when creating node pools on LKE Enterprise clusters.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", "example": "v1.31.8+lke3", "type": "string", + "x-akamai": { + "labels": [ + "LKE Enterprise" + ], + "status": "BETA" + } + }, + "label": { + "description": "__Beta__ An optional label for this node pool. Labels can be up to 32 characters long, containing lowercase alphanumeric characters optionally interspersed with dashes.\n\nA node pool's label also cascades down to its nodes (Linodes). If a label is defined on the node pool, the label for each node is `--`. If not, the label is `--`.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "example": "app-pool", + "maxLength": 32, + "minLength": 1, + "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])$", + "type": "string", "x-akamai": { "status": "BETA" } @@ -74794,7 +83458,7 @@ "type": "object" }, "tags": { - "description": "__Filterable__ An array of tags applied to this object. Tags are for organizational purposes only.", + "description": "__Filterable__ Organizational tags to apply to this node pool. When you apply tags to LKE Enterprise node pools, they also apply to the nodes (Linodes) within the node pool. Tags don't cascade down to nodes in non-Enterprise node pools.", "example": [ "example tag", "another example" @@ -74865,12 +83529,13 @@ "type": "array" }, "type": { - "description": "The Linode Type for all of the nodes in the Node Pool.", + "description": "The Linode Type for all of the nodes in the node pool.", "example": "g6-standard-4", - "type": "string" + "type": "string", + "x-linode-cli-display": 3 }, "update_strategy": { - "description": "__Beta__ Determines when the worker nodes within this node pool upgrade to the latest selected Kubernetes version, after the cluster has been upgraded. This field is required when creating node pools on LKE Enterprise clusters.\n\n- `rolling_update`: Immediately triggers a recycle of this node pool when the Kubernetes version is updated.\n- `on_recycle` (default): Does not trigger any immediate recycle. New worker nodes are created with the new Kubernetes version. Existing worker nodes will be upgraded when a recycle is manually triggered.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", + "description": "__Beta__, __LKE Enterprise__ Determines when the worker nodes within this node pool upgrade to the latest selected Kubernetes version, after the cluster has been upgraded. This field is required when creating node pools on LKE Enterprise clusters.\n\n- `rolling_update`: Immediately triggers a recycle of this node pool when the Kubernetes version is updated.\n- `on_recycle` (default): Does not trigger any immediate recycle. New worker nodes are created with the new Kubernetes version. Existing worker nodes will be upgraded when a recycle is manually triggered.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`.", "enum": [ "rolling_update", "on_recycle" @@ -74878,6 +83543,9 @@ "example": "on_recycle", "type": "string", "x-akamai": { + "labels": [ + "LKE Enterprise" + ], "status": "BETA" } } @@ -74898,7 +83566,7 @@ ], "type": "object", "x-akamai": { - "file-path": "schemas/added-post-lke-cluster-pools.yaml" + "file-path": "schemas/post-lke-cluster-pools.yaml" } }, "x-example": { @@ -74915,40 +83583,44 @@ "application/json": { "schema": { "additionalProperties": false, - "description": "The set of Node Pools which are members of the Kubernetes cluster. Node Pools consist of a Linode type, the number of Linodes to deploy of that type, and additional status information.", + "description": "The set of node pools that are members of the Kubernetes cluster. Node pools consist of a Linode type, the number of Linodes to deploy of that type, and additional status information.", "properties": { "autoscaler": { "additionalProperties": false, "description": "When enabled, the number of nodes autoscales within the defined minimum and maximum values.", "properties": { "enabled": { - "description": "Whether autoscaling is enabled for this Node Pool. Defaults to `false`.", + "description": "Whether autoscaling is enabled for this node pool. Defaults to `false`.", "example": true, - "type": "boolean" + "type": "boolean", + "x-linode-cli-display": 5 }, "max": { - "description": "The maximum number of nodes to autoscale to. Defaults to the Node Pool's `count`.", + "description": "The maximum number of nodes to autoscale to. Defaults to the node pool's `count`.", "example": 12, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 6 }, "min": { - "description": "The minimum number of nodes to autoscale to. Defaults to the Node Pool's `count`.", + "description": "The minimum number of nodes to autoscale to. Defaults to the node pool's `count`.", "example": 3, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 7 } }, "type": "object" }, "count": { - "description": "The number of nodes in the Node Pool.", + "description": "The number of nodes in the node pool.", "example": 6, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 4 }, "disk_encryption": { "description": "Indicates the local disk encryption setting for this LKE node pool.", @@ -74957,13 +83629,14 @@ "disabled" ], "example": "disabled", - "type": "string" + "type": "string", + "x-linode-cli-display": 9 }, "disks": { - "description": "This Node Pool's custom disk layout.", + "description": "This node pool's custom disk layout.", "items": { "additionalProperties": false, - "description": "The values to assign to each partition in this Node Pool's custom disk layout.", + "description": "The values to assign to each partition in this node pool's custom disk layout.", "properties": { "size": { "description": "The size of this custom disk partition in MB. The size of this disk partition can't exceed the capacity of the node's plan type.", @@ -74986,7 +83659,7 @@ "x-linode-cli-format": "json" }, "id": { - "description": "__Filterable__ This Node Pool's unique ID.", + "description": "__Filterable__ This node pool's unique ID.", "example": 456, "type": "integer", "x-akamai": { @@ -74994,16 +83667,28 @@ "Filterable" ] }, + "x-linode-cli-display": 1, "x-linode-filterable": true }, "k8s_version": { - "description": "__Beta__ The Kubernetes version used for the worker nodes within this node pool.", + "description": "__Beta__ The Kubernetes version used for the worker nodes within this node pool.\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and is only returned for accounts that have been enrolled in the LKE Enterprise LA.", "example": "v1.31.8+lke3", "type": "string", "x-akamai": { "status": "BETA" } }, + "label": { + "description": "__Beta__ The optional label defined for this node Pool.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and is only returned for accounts that have been enrolled in the LKE Enterprise LA.", + "example": "app-pool", + "maxLength": 32, + "minLength": 1, + "type": "string", + "x-akamai": { + "status": "BETA" + }, + "x-linode-cli-display": 2 + }, "labels": { "additionalProperties": { "maxLength": 63, @@ -75019,7 +83704,7 @@ "type": "object" }, "nodes": { - "description": "Status information for the Nodes which are members of this Node Pool. If a Linode has not been provisioned for a given Node slot, the `instance_id` will be returned as `null`.", + "description": "Status information for the nodes that are members of this node pool. If a Linode has not been provisioned for a given node slot, the `instance_id` is `null`.", "items": { "additionalProperties": false, "description": "__Read-only__ Status information for a Node which is a member of a Kubernetes cluster.", @@ -75068,6 +83753,7 @@ "Filterable" ] }, + "x-linode-cli-display": 8, "x-linode-filterable": true }, "taints": { @@ -75118,9 +83804,10 @@ "type": "array" }, "type": { - "description": "The Linode Type for all of the nodes in the Node Pool.", + "description": "The Linode Type for all of the nodes in the node pool.", "example": "g6-standard-4", - "type": "string" + "type": "string", + "x-linode-cli-display": 3 }, "update_strategy": { "description": "__Beta__ Determines when the worker nodes within this node pool upgrade to the latest selected Kubernetes version, after the cluster has been upgraded. This field is required for LKE Enterprise clusters but should not be used for non-enterprise LKE clusters.", @@ -75231,40 +83918,44 @@ "data": { "items": { "additionalProperties": false, - "description": "The set of Node Pools which are members of the Kubernetes cluster. Node Pools consist of a Linode type, the number of Linodes to deploy of that type, and additional status information.", + "description": "The set of node pools that are members of the Kubernetes cluster. Node pools consist of a Linode type, the number of Linodes to deploy of that type, and additional status information.", "properties": { "autoscaler": { "additionalProperties": false, "description": "When enabled, the number of nodes autoscales within the defined minimum and maximum values.", "properties": { "enabled": { - "description": "Whether autoscaling is enabled for this Node Pool. Defaults to `false`.", + "description": "Whether autoscaling is enabled for this node pool. Defaults to `false`.", "example": true, - "type": "boolean" + "type": "boolean", + "x-linode-cli-display": 5 }, "max": { - "description": "The maximum number of nodes to autoscale to. Defaults to the Node Pool's `count`.", + "description": "The maximum number of nodes to autoscale to. Defaults to the node pool's `count`.", "example": 12, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 6 }, "min": { - "description": "The minimum number of nodes to autoscale to. Defaults to the Node Pool's `count`.", + "description": "The minimum number of nodes to autoscale to. Defaults to the node pool's `count`.", "example": 3, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 7 } }, "type": "object" }, "count": { - "description": "The number of nodes in the Node Pool.", + "description": "The number of nodes in the node pool.", "example": 6, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 4 }, "disk_encryption": { "description": "Indicates the local disk encryption setting for this LKE node pool.", @@ -75273,13 +83964,14 @@ "disabled" ], "example": "disabled", - "type": "string" + "type": "string", + "x-linode-cli-display": 9 }, "disks": { - "description": "This Node Pool's custom disk layout.", + "description": "This node pool's custom disk layout.", "items": { "additionalProperties": false, - "description": "The values to assign to each partition in this Node Pool's custom disk layout.", + "description": "The values to assign to each partition in this node pool's custom disk layout.", "properties": { "size": { "description": "The size of this custom disk partition in MB. The size of this disk partition can't exceed the capacity of the node's plan type.", @@ -75302,7 +83994,7 @@ "x-linode-cli-format": "json" }, "id": { - "description": "__Filterable__ This Node Pool's unique ID.", + "description": "__Filterable__ This node pool's unique ID.", "example": 456, "type": "integer", "x-akamai": { @@ -75310,16 +84002,28 @@ "Filterable" ] }, + "x-linode-cli-display": 1, "x-linode-filterable": true }, "k8s_version": { - "description": "__Beta__ The Kubernetes version used for the worker nodes within this node pool.", + "description": "__Beta__ The Kubernetes version used for the worker nodes within this node pool.\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and is only returned for accounts that have been enrolled in the LKE Enterprise LA.", "example": "v1.31.8+lke3", "type": "string", "x-akamai": { "status": "BETA" } }, + "label": { + "description": "__Beta__ The optional label defined for this node Pool.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and is only returned for accounts that have been enrolled in the LKE Enterprise LA.", + "example": "app-pool", + "maxLength": 32, + "minLength": 1, + "type": "string", + "x-akamai": { + "status": "BETA" + }, + "x-linode-cli-display": 2 + }, "labels": { "additionalProperties": { "maxLength": 63, @@ -75335,7 +84039,7 @@ "type": "object" }, "nodes": { - "description": "Status information for the Nodes which are members of this Node Pool. If a Linode has not been provisioned for a given Node slot, the `instance_id` will be returned as `null`.", + "description": "Status information for the nodes that are members of this node pool. If a Linode has not been provisioned for a given node slot, the `instance_id` is `null`.", "items": { "additionalProperties": false, "description": "__Read-only__ Status information for a Node which is a member of a Kubernetes cluster.", @@ -75384,6 +84088,7 @@ "Filterable" ] }, + "x-linode-cli-display": 8, "x-linode-filterable": true }, "taints": { @@ -75434,9 +84139,10 @@ "type": "array" }, "type": { - "description": "The Linode Type for all of the nodes in the Node Pool.", + "description": "The Linode Type for all of the nodes in the node pool.", "example": "g6-standard-4", - "type": "string" + "type": "string", + "x-linode-cli-display": 3 }, "update_strategy": { "description": "__Beta__ Determines when the worker nodes within this node pool upgrade to the latest selected Kubernetes version, after the cluster has been upgraded. This field is required for LKE Enterprise clusters but should not be used for non-enterprise LKE clusters.", @@ -75479,7 +84185,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-lke-cluster-pools-200.yaml" + "file-path": "schemas/get-lke-cluster-pools-200.yaml" } }, "x-example": { @@ -75487,7 +84193,7 @@ } } }, - "description": "Returns an array of all Pools in this Kubernetes cluster." + "description": "Returns all node pools in this Kubernetes cluster." }, "default": { "content": { @@ -75589,7 +84295,7 @@ } ], "x-akamai": { - "file-path": "paths/cluster-pools.yaml", + "file-path": "paths/lke-pools.yaml", "path-info": "/{apiVersion}/lke/clusters/{clusterId}/pools" }, "x-linode-cli-command": "lke" @@ -75608,40 +84314,44 @@ "application/json": { "schema": { "additionalProperties": false, - "description": "The set of Node Pools which are members of the Kubernetes cluster. Node Pools consist of a Linode type, the number of Linodes to deploy of that type, and additional status information.", + "description": "The set of node pools that are members of the Kubernetes cluster. Node pools consist of a Linode type, the number of Linodes to deploy of that type, and additional status information.", "properties": { "autoscaler": { "additionalProperties": false, "description": "When enabled, the number of nodes autoscales within the defined minimum and maximum values.", "properties": { "enabled": { - "description": "Whether autoscaling is enabled for this Node Pool. Defaults to `false`.", + "description": "Whether autoscaling is enabled for this node pool. Defaults to `false`.", "example": true, - "type": "boolean" + "type": "boolean", + "x-linode-cli-display": 5 }, "max": { - "description": "The maximum number of nodes to autoscale to. Defaults to the Node Pool's `count`.", + "description": "The maximum number of nodes to autoscale to. Defaults to the node pool's `count`.", "example": 12, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 6 }, "min": { - "description": "The minimum number of nodes to autoscale to. Defaults to the Node Pool's `count`.", + "description": "The minimum number of nodes to autoscale to. Defaults to the node pool's `count`.", "example": 3, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 7 } }, "type": "object" }, "count": { - "description": "The number of nodes in the Node Pool.", + "description": "The number of nodes in the node pool.", "example": 6, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 4 }, "disk_encryption": { "description": "Indicates the local disk encryption setting for this LKE node pool.", @@ -75650,13 +84360,14 @@ "disabled" ], "example": "disabled", - "type": "string" + "type": "string", + "x-linode-cli-display": 9 }, "disks": { - "description": "This Node Pool's custom disk layout.", + "description": "This node pool's custom disk layout.", "items": { "additionalProperties": false, - "description": "The values to assign to each partition in this Node Pool's custom disk layout.", + "description": "The values to assign to each partition in this node pool's custom disk layout.", "properties": { "size": { "description": "The size of this custom disk partition in MB. The size of this disk partition can't exceed the capacity of the node's plan type.", @@ -75679,7 +84390,7 @@ "x-linode-cli-format": "json" }, "id": { - "description": "__Filterable__ This Node Pool's unique ID.", + "description": "__Filterable__ This node pool's unique ID.", "example": 456, "type": "integer", "x-akamai": { @@ -75687,16 +84398,28 @@ "Filterable" ] }, + "x-linode-cli-display": 1, "x-linode-filterable": true }, "k8s_version": { - "description": "__Beta__ The Kubernetes version used for the worker nodes within this node pool.", + "description": "__Beta__ The Kubernetes version used for the worker nodes within this node pool.\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and is only returned for accounts that have been enrolled in the LKE Enterprise LA.", "example": "v1.31.8+lke3", "type": "string", "x-akamai": { "status": "BETA" } }, + "label": { + "description": "__Beta__ The optional label defined for this node Pool.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and is only returned for accounts that have been enrolled in the LKE Enterprise LA.", + "example": "app-pool", + "maxLength": 32, + "minLength": 1, + "type": "string", + "x-akamai": { + "status": "BETA" + }, + "x-linode-cli-display": 2 + }, "labels": { "additionalProperties": { "maxLength": 63, @@ -75712,7 +84435,7 @@ "type": "object" }, "nodes": { - "description": "Status information for the Nodes which are members of this Node Pool. If a Linode has not been provisioned for a given Node slot, the `instance_id` will be returned as `null`.", + "description": "Status information for the nodes that are members of this node pool. If a Linode has not been provisioned for a given node slot, the `instance_id` is `null`.", "items": { "additionalProperties": false, "description": "__Read-only__ Status information for a Node which is a member of a Kubernetes cluster.", @@ -75761,6 +84484,7 @@ "Filterable" ] }, + "x-linode-cli-display": 8, "x-linode-filterable": true }, "taints": { @@ -75811,9 +84535,10 @@ "type": "array" }, "type": { - "description": "The Linode Type for all of the nodes in the Node Pool.", + "description": "The Linode Type for all of the nodes in the node pool.", "example": "g6-standard-4", - "type": "string" + "type": "string", + "x-linode-cli-display": 3 }, "update_strategy": { "description": "__Beta__ Determines when the worker nodes within this node pool upgrade to the latest selected Kubernetes version, after the cluster has been upgraded. This field is required for LKE Enterprise clusters but should not be used for non-enterprise LKE clusters.", @@ -75911,11 +84636,12 @@ "type": "object" }, "count": { - "description": "The number of nodes in the Node Pool.", + "description": "The number of nodes in the node pool.", "example": "{{count}}", "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 4 }, "labels": { "additionalProperties": { @@ -75931,6 +84657,23 @@ }, "type": "object" }, + "tags": { + "description": "__Filterable__ Organizational tags to apply to this node pool. When you apply tags to LKE Enterprise node pools, they also apply to the nodes (Linodes) within the node pool. Tags don't cascade down to nodes in non-Enterprise node pools.", + "example": [ + "example tag", + "another example" + ], + "items": { + "type": "string" + }, + "type": "array", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true + }, "taints": { "description": "Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods. To learn more, review [Add labels and taints to your LKE node pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools).\n\nSpecifying an empty array (`[]`) removes all previously set taints.", "example": [ @@ -75988,7 +84731,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-put-lke-node-pool.yaml" + "file-path": "schemas/put-lke-node-pool.yaml" } }, "x-example": { @@ -76004,40 +84747,44 @@ "application/json": { "schema": { "additionalProperties": false, - "description": "The set of Node Pools which are members of the Kubernetes cluster. Node Pools consist of a Linode type, the number of Linodes to deploy of that type, and additional status information.", + "description": "The set of node pools that are members of the Kubernetes cluster. Node pools consist of a Linode type, the number of Linodes to deploy of that type, and additional status information.", "properties": { "autoscaler": { "additionalProperties": false, "description": "When enabled, the number of nodes autoscales within the defined minimum and maximum values.", "properties": { "enabled": { - "description": "Whether autoscaling is enabled for this Node Pool. Defaults to `false`.", + "description": "Whether autoscaling is enabled for this node pool. Defaults to `false`.", "example": true, - "type": "boolean" + "type": "boolean", + "x-linode-cli-display": 5 }, "max": { - "description": "The maximum number of nodes to autoscale to. Defaults to the Node Pool's `count`.", + "description": "The maximum number of nodes to autoscale to. Defaults to the node pool's `count`.", "example": 12, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 6 }, "min": { - "description": "The minimum number of nodes to autoscale to. Defaults to the Node Pool's `count`.", + "description": "The minimum number of nodes to autoscale to. Defaults to the node pool's `count`.", "example": 3, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 7 } }, "type": "object" }, "count": { - "description": "The number of nodes in the Node Pool.", + "description": "The number of nodes in the node pool.", "example": 6, "maximum": 100, "minimum": 1, - "type": "integer" + "type": "integer", + "x-linode-cli-display": 4 }, "disk_encryption": { "description": "Indicates the local disk encryption setting for this LKE node pool.", @@ -76046,13 +84793,14 @@ "disabled" ], "example": "disabled", - "type": "string" + "type": "string", + "x-linode-cli-display": 9 }, "disks": { - "description": "This Node Pool's custom disk layout.", + "description": "This node pool's custom disk layout.", "items": { "additionalProperties": false, - "description": "The values to assign to each partition in this Node Pool's custom disk layout.", + "description": "The values to assign to each partition in this node pool's custom disk layout.", "properties": { "size": { "description": "The size of this custom disk partition in MB. The size of this disk partition can't exceed the capacity of the node's plan type.", @@ -76075,7 +84823,7 @@ "x-linode-cli-format": "json" }, "id": { - "description": "__Filterable__ This Node Pool's unique ID.", + "description": "__Filterable__ This node pool's unique ID.", "example": 456, "type": "integer", "x-akamai": { @@ -76083,16 +84831,28 @@ "Filterable" ] }, + "x-linode-cli-display": 1, "x-linode-filterable": true }, "k8s_version": { - "description": "__Beta__ The Kubernetes version used for the worker nodes within this node pool.", + "description": "__Beta__ The Kubernetes version used for the worker nodes within this node pool.\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and is only returned for accounts that have been enrolled in the LKE Enterprise LA.", "example": "v1.31.8+lke3", "type": "string", "x-akamai": { "status": "BETA" } }, + "label": { + "description": "__Beta__ The optional label defined for this node Pool.\n\n> \ud83d\udea7\n>\n> This field is available as part of the beta API and is only returned for accounts that have been enrolled in the LKE Enterprise LA.", + "example": "app-pool", + "maxLength": 32, + "minLength": 1, + "type": "string", + "x-akamai": { + "status": "BETA" + }, + "x-linode-cli-display": 2 + }, "labels": { "additionalProperties": { "maxLength": 63, @@ -76108,7 +84868,7 @@ "type": "object" }, "nodes": { - "description": "Status information for the Nodes which are members of this Node Pool. If a Linode has not been provisioned for a given Node slot, the `instance_id` will be returned as `null`.", + "description": "Status information for the nodes that are members of this node pool. If a Linode has not been provisioned for a given node slot, the `instance_id` is `null`.", "items": { "additionalProperties": false, "description": "__Read-only__ Status information for a Node which is a member of a Kubernetes cluster.", @@ -76157,6 +84917,7 @@ "Filterable" ] }, + "x-linode-cli-display": 8, "x-linode-filterable": true }, "taints": { @@ -76207,9 +84968,10 @@ "type": "array" }, "type": { - "description": "The Linode Type for all of the nodes in the Node Pool.", + "description": "The Linode Type for all of the nodes in the node pool.", "example": "g6-standard-4", - "type": "string" + "type": "string", + "x-linode-cli-display": 3 }, "update_strategy": { "description": "__Beta__ Determines when the worker nodes within this node pool upgrade to the latest selected Kubernetes version, after the cluster has been upgraded. This field is required for LKE Enterprise clusters but should not be used for non-enterprise LKE clusters.", @@ -76407,7 +85169,7 @@ } ], "x-akamai": { - "file-path": "paths/pool.yaml", + "file-path": "paths/lke-pool.yaml", "path-info": "/{apiVersion}/lke/clusters/{clusterId}/pools/{poolId}" }, "x-linode-cli-command": "lke" @@ -76553,7 +85315,7 @@ } ], "x-akamai": { - "file-path": "paths/pool-recycle.yaml", + "file-path": "paths/lke-pool-recycle.yaml", "path-info": "/{apiVersion}/lke/clusters/{clusterId}/pools/{poolId}/recycle" }, "x-linode-cli-command": "lke" @@ -76685,7 +85447,7 @@ } ], "x-akamai": { - "file-path": "paths/cluster-recycle.yaml", + "file-path": "paths/lke-cluster-recycle.yaml", "path-info": "/{apiVersion}/lke/clusters/{clusterId}/recycle" }, "x-linode-cli-command": "lke" @@ -76719,7 +85481,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-post-lke-cluster-regenerate.yaml" + "file-path": "schemas/post-lke-cluster-regenerate.yaml" } }, "x-example": { @@ -76848,7 +85610,7 @@ } ], "x-akamai": { - "file-path": "paths/regenerate.yaml", + "file-path": "paths/lke-cluster-regenerate.yaml", "path-info": "/{apiVersion}/lke/clusters/{clusterId}/regenerate" }, "x-linode-cli-command": "lke" @@ -76929,7 +85691,7 @@ ], "summary": "Delete a service token", "tags": [ - "Service tokens" + "LKE service tokens" ], "x-akamai": { "tabs": [ @@ -76980,7 +85742,7 @@ } ], "x-akamai": { - "file-path": "paths/service-token.yaml", + "file-path": "paths/lke-service-token.yaml", "path-info": "/{apiVersion}/lke/clusters/{clusterId}/servicetoken" }, "x-linode-cli-command": "lke" @@ -77123,15 +85885,15 @@ "value": { "data": [ { - "id": "1.32", + "id": "1.33", "tier": "standard" }, { - "id": "1.31", + "id": "1.32", "tier": "standard" }, { - "id": "1.30", + "id": "1.31", "tier": "standard" } ], @@ -77350,7 +86112,7 @@ "standard": { "summary": "LKE version for standard tier", "value": { - "id": "1.32", + "id": "1.33", "tier": "standard" } } @@ -77505,7 +86267,7 @@ "name": "version", "required": true, "schema": { - "example": "1.32", + "example": "1.33", "type": "string" }, "x-akamai": { @@ -77765,13 +86527,13 @@ "example": { "data": [ { - "id": "1.32" + "id": "1.33" }, { - "id": "1.31" + "id": "1.32" }, { - "id": "1.30" + "id": "1.31" } ], "page": 1, @@ -77780,13 +86542,13 @@ }, "schema": { "additionalProperties": false, - "description": "__Read-only__ LKE versions for standard tier.", + "description": "LKE versions for standard tier.", "properties": { "data": { "description": "__Read-only__ LKE versions for standard tier.", "items": { "additionalProperties": false, - "description": "__Read-only__ LKE version.", + "description": "LKE version.", "properties": { "id": { "description": "__Read-only__ A Kubernetes version number available for deployment to a Kubernetes cluster in the format of <major>.<minor>, and the latest supported patch version.", @@ -77796,7 +86558,6 @@ "type": "string" } }, - "readOnly": true, "required": [ "id" ], @@ -77829,10 +86590,9 @@ "type": "integer" } }, - "readOnly": true, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-lke-versions-200.yaml" + "file-path": "schemas/get-lke-versions-200.yaml" } }, "x-example": { @@ -77930,7 +86690,7 @@ } ], "x-akamai": { - "file-path": "paths/versions.yaml", + "file-path": "paths/lke-versions.yaml", "path-info": "/{apiVersion}/lke/versions" }, "x-linode-cli-command": "lke" @@ -77948,11 +86708,11 @@ "content": { "application/json": { "example": { - "id": "1.32" + "id": "1.33" }, "schema": { "additionalProperties": false, - "description": "__Read-only__ LKE version.", + "description": "LKE version.", "properties": { "id": { "description": "__Read-only__ A Kubernetes version number available for deployment to a Kubernetes cluster in the format of <major>.<minor>, and the latest supported patch version.", @@ -77962,7 +86722,6 @@ "type": "string" } }, - "readOnly": true, "required": [ "id" ], @@ -78071,7 +86830,7 @@ "name": "version", "required": true, "schema": { - "example": "1.32", + "example": "1.33", "type": "string" }, "x-akamai": { @@ -78080,7 +86839,7 @@ } ], "x-akamai": { - "file-path": "paths/version.yaml", + "file-path": "paths/lke-version.yaml", "path-info": "/{apiVersion}/lke/versions/{version}" }, "x-linode-cli-command": "lke" @@ -78336,7 +87095,7 @@ ], "summary": "Create a Longview client", "tags": [ - "Clients" + "Longview clients" ], "x-akamai": { "tabs": [ @@ -78513,7 +87272,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-longview-clients-200.yaml" + "file-path": "schemas/get-longview-clients-200.yaml" } }, "x-example": { @@ -78572,7 +87331,7 @@ ], "summary": "List Longview clients", "tags": [ - "Clients" + "Longview clients" ], "x-akamai": { "tabs": [ @@ -78773,7 +87532,7 @@ ], "summary": "Get a Longview client", "tags": [ - "Clients" + "Longview clients" ], "x-akamai": { "tabs": [ @@ -79042,7 +87801,7 @@ ], "summary": "Update a Longview client", "tags": [ - "Clients" + "Longview clients" ], "x-akamai": { "tabs": [ @@ -79136,7 +87895,7 @@ ], "summary": "Delete a Longview client", "tags": [ - "Clients" + "Longview clients" ], "x-akamai": { "tabs": [ @@ -79322,7 +88081,7 @@ ], "summary": "Get a Longview plan", "tags": [ - "Plans" + "Longview plans" ], "x-akamai": { "tabs": [ @@ -79499,7 +88258,7 @@ ], "summary": "Update a Longview plan", "tags": [ - "Plans" + "Longview plans" ], "x-akamai": { "tabs": [ @@ -79537,14 +88296,14 @@ } ], "x-akamai": { - "file-path": "paths/plan.yaml", + "file-path": "paths/longview-plan.yaml", "path-info": "/{apiVersion}/longview/plan" }, "x-linode-cli-command": "longview" }, "/{apiVersion}/longview/subscriptions": { "get": { - "description": "Returns a paginated list of available Longview Subscriptions. This is a public endpoint and requires no authentication.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli longview subscriptions-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns a paginated list of available Longview subscriptions. This is a public endpoint and requires no authentication.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli longview subscriptions-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-longview-subscriptions" @@ -79673,7 +88432,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-longview-subscriptions-200.yaml" + "file-path": "schemas/get-longview-subscriptions-200.yaml" } }, "x-example": { @@ -79681,7 +88440,7 @@ } } }, - "description": "A paginated list of Longview Subscriptions." + "description": "A paginated list of Longview subscriptions." }, "default": { "content": { @@ -79722,7 +88481,7 @@ }, "summary": "List Longview subscriptions", "tags": [ - "Subscriptions" + "Longview subscriptions" ], "x-akamai": { "tabs": [ @@ -79755,7 +88514,7 @@ } ], "x-akamai": { - "file-path": "paths/subscriptions.yaml", + "file-path": "paths/longview-subscriptions.yaml", "path-info": "/{apiVersion}/longview/subscriptions" }, "x-linode-cli-command": "longview" @@ -79874,20 +88633,264 @@ "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." } }, - "summary": "Get a Longview subscription", + "summary": "Get a Longview subscription", + "tags": [ + "Longview subscriptions" + ], + "x-akamai": { + "tabs": [ + { + "syntax": "linode-cli longview subscription-view", + "title": "CLI", + "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" + } + ] + }, + "x-linode-cli-action": "subscription-view" + }, + "parameters": [ + { + "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4", + "v4beta" + ], + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-path.yaml" + } + }, + { + "description": "The Longview Subscription to look up.", + "example": "{{subscriptionId}}", + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/subscription-id-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/longview-subscription.yaml", + "path-info": "/{apiVersion}/longview/subscriptions/{subscriptionId}" + }, + "x-linode-cli-command": "longview" + }, + "/{apiVersion}/longview/types": { + "get": { + "description": "Returns Longview types and prices, including any region-specific rates.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli longview types\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "externalDocs": { + "description": "See documentation for this operation in Akamai's Linode API", + "url": "https://techdocs.akamai.com/linode-api/reference/get-longview-types" + }, + "operationId": "get-longview-types", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "data": { + "description": "The Longview types.", + "items": { + "additionalProperties": false, + "description": "Returns collection of Longview types and prices, including any region-specific rates.", + "properties": { + "id": { + "description": "__Read-only__ The ID representing the Longview type.", + "example": "longview-3", + "readOnly": true, + "type": "string", + "x-linode-cli-display": 1 + }, + "label": { + "description": "__Filterable__, __Read-only__ The Longview type label is for display purposes only.", + "example": "Longview Pro 3 pack", + "readOnly": true, + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 2, + "x-linode-filterable": true + }, + "price": { + "additionalProperties": false, + "description": "__Read-only__ The default cost of this Longview type. Prices are in US dollars, broken down into hourly and monthly charges.\n\nCertain regions have different prices from the default. For region-specific prices, see `region_prices`.", + "properties": { + "hourly": { + "description": "__Filterable__ Cost (in US dollars) per hour.", + "example": 0.0015, + "type": "number", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true + }, + "monthly": { + "description": "__Filterable__ Cost per month, in US dollars.", + "example": 0.1, + "type": "number", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 4, + "x-linode-filterable": true + } + }, + "readOnly": true, + "type": "object" + }, + "region_prices": { + "items": { + "additionalProperties": false, + "properties": { + "hourly": { + "description": "Cost per hour for this region, in US dollars.", + "example": 0.00018, + "type": "number", + "x-linode-cli-display": 6 + }, + "id": { + "description": "The Region ID for these prices.", + "example": "us-east", + "type": "string", + "x-linode-cli-display": 5 + }, + "monthly": { + "description": "Cost per month for this region, in US dollars.", + "example": 0.12, + "type": "number", + "x-linode-cli-display": 7 + } + }, + "type": "object" + }, + "type": "array" + }, + "transfer": { + "description": "__Filterable__, __Read-only__ The monthly outbound transfer amount, in MB.", + "example": 0, + "minimum": 0, + "readOnly": true, + "type": "integer", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 8, + "x-linode-filterable": true + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/longview-type.yaml" + } + }, + "type": "array" + }, + "page": { + "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "pages": { + "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", + "example": 1, + "readOnly": true, + "type": "integer" + }, + "results": { + "description": "__Read-only__ The total number of results.", + "example": 1, + "readOnly": true, + "type": "integer" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/get-longview-types-200.yaml" + } + }, + "x-example": { + "x-ref": "../examples/get-longview-types-200.json" + } + } + }, + "description": "A collection of Longview types." + }, + "default": { + "content": { + "application/json": { + "schema": { + "additionalProperties": false, + "properties": { + "errors": { + "items": { + "additionalProperties": false, + "description": "An object for describing a single error that occurred during the processing of a request.", + "properties": { + "field": { + "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", + "example": "fieldname", + "type": "string" + }, + "reason": { + "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", + "example": "fieldname must be a valid value", + "type": "string" + } + }, + "type": "object", + "x-akamai": { + "file-path": "schemas/error-object.yaml" + } + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." + } + }, + "summary": "List Longview types", "tags": [ - "Subscriptions" + "Longview types" ], "x-akamai": { "tabs": [ { - "syntax": "linode-cli longview subscription-view", + "syntax": "linode-cli longview types", "title": "CLI", "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" } ] }, - "x-linode-cli-action": "subscription-view" + "x-linode-cli-action": "types", + "x-linode-redoc-load-ids": true }, "parameters": [ { @@ -79906,35 +88909,22 @@ "x-akamai": { "file-path": "parameters/api-version-path.yaml" } - }, - { - "description": "The Longview Subscription to look up.", - "example": "{{subscriptionId}}", - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/subscription-id-path.yaml" - } } ], "x-akamai": { - "file-path": "paths/subscription.yaml", - "path-info": "/{apiVersion}/longview/subscriptions/{subscriptionId}" + "file-path": "paths/longview-types.yaml", + "path-info": "/{apiVersion}/longview/types" }, "x-linode-cli-command": "longview" }, - "/{apiVersion}/longview/types": { + "/{apiVersion}/maintenance/policies": { "get": { - "description": "Returns Longview types and prices, including any region-specific rates.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli longview types\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "__Beta__ List all available maintenance policies that can be applied to your Linodes.\n\n> \ud83d\udcd8\n>\n> This operation is beta and only works when using the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli maintenance policies-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", - "url": "https://techdocs.akamai.com/linode-api/reference/get-longview-types" + "url": "https://techdocs.akamai.com/linode-api/reference/get-maintenance-policies" }, - "operationId": "get-longview-types", + "operationId": "get-maintenance-policies", "responses": { "200": { "content": { @@ -79943,108 +88933,54 @@ "additionalProperties": false, "properties": { "data": { - "description": "The Longview types.", "items": { "additionalProperties": false, - "description": "Returns collection of Longview types and prices, including any region-specific rates.", + "description": "Information about maintenance policies.", "properties": { - "id": { - "description": "__Read-only__ The ID representing the Longview type.", - "example": "longview-3", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 1 - }, - "label": { - "description": "__Filterable__, __Read-only__ The Longview type label is for display purposes only.", - "example": "Longview Pro 3 pack", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true + "description": { + "description": "A brief explanation of the maintenance policy's intended behavior.", + "example": "Migrates the Linode to a new host while it remains fully operational. Recommended for maximizing availability.", + "type": "string" }, - "price": { - "additionalProperties": false, - "description": "__Read-only__ The default cost of this Longview type. Prices are in US dollars, broken down into hourly and monthly charges.\n\nCertain regions have different prices from the default. For region-specific prices, see `region_prices`.", - "properties": { - "hourly": { - "description": "__Filterable__ Cost (in US dollars) per hour.", - "example": 0.0015, - "type": "number", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 3, - "x-linode-filterable": true - }, - "monthly": { - "description": "__Filterable__ Cost per month, in US dollars.", - "example": 0.1, - "type": "number", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 4, - "x-linode-filterable": true - } - }, - "readOnly": true, - "type": "object" + "is_default": { + "description": "Indicates whether this policy is the default one applied when creating a Linode.", + "example": true, + "type": "boolean" }, - "region_prices": { - "items": { - "additionalProperties": false, - "properties": { - "hourly": { - "description": "Cost per hour for this region, in US dollars.", - "example": 0.00018, - "type": "number", - "x-linode-cli-display": 6 - }, - "id": { - "description": "The Region ID for these prices.", - "example": "us-east", - "type": "string", - "x-linode-cli-display": 5 - }, - "monthly": { - "description": "Cost per month for this region, in US dollars.", - "example": 0.12, - "type": "number", - "x-linode-cli-display": 7 - } - }, - "type": "object" - }, - "type": "array" + "label": { + "description": "The display name for the maintenance policy.", + "example": "Migrate", + "type": "string" }, - "transfer": { - "description": "__Filterable__, __Read-only__ The monthly outbound transfer amount, in MB.", - "example": 0, - "minimum": 0, - "readOnly": true, + "notification_period_sec": { + "description": "__Filterable__ Number of seconds before the maintenance event triggers. A value of 0 means no prior notification.", + "example": 10800, "type": "integer", "x-akamai": { "labels": [ "Filterable" ] }, - "x-linode-cli-display": 8, "x-linode-filterable": true + }, + "slug": { + "description": "Unique identifier for the maintenance policy. System policies are prefixed with `linode/`.", + "example": "linode/migrate", + "type": "string" + }, + "type": { + "description": "The type of policy.", + "enum": [ + "migrate", + "power_off_on" + ], + "example": "migrate", + "type": "string" } }, "type": "object", "x-akamai": { - "file-path": "schemas/longview-type.yaml" + "file-path": "schemas/maintenance-policies.yaml" } }, "type": "array" @@ -80070,15 +89006,15 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/get-longview-types-200.yaml" + "file-path": "schemas/get-maintenance-policies-200.yaml" } }, "x-example": { - "x-ref": "../examples/get-longview-types-200.json" + "x-ref": "../examples/get-maintenance-policies-200.json" } } }, - "description": "A collection of Longview types." + "description": "Returns a paginated list of maintenance policy objects." }, "default": { "content": { @@ -80117,50 +89053,59 @@ "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." } }, - "summary": "List Longview types", + "security": [ + { + "personalAccessToken": [] + }, + { + "oauth": [] + } + ], + "summary": "List maintenance policies", "tags": [ - "Longview types" + "Maintenance policies" ], "x-akamai": { + "status": "BETA", "tabs": [ { - "syntax": "linode-cli longview types", + "syntax": "linode-cli maintenance policies-list", "title": "CLI", "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" } ] }, - "x-linode-cli-action": "types", - "x-linode-redoc-load-ids": true + "x-linode-cli-action": "policies-list", + "x-linode-grant": "read_only" }, "parameters": [ { - "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.", + "description": "__Enum__ Call the `v4beta` URL for operations still only in beta.", "example": "{{apiVersion}}", "in": "path", "name": "apiVersion", "required": true, "schema": { "enum": [ - "v4", "v4beta" ], + "example": "v4beta", "type": "string" }, "x-akamai": { - "file-path": "parameters/api-version-path.yaml" + "file-path": "parameters/api-version-v4beta-path.yaml" } } ], "x-akamai": { - "file-path": "paths/longview-types.yaml", - "path-info": "/{apiVersion}/longview/types" + "file-path": "paths/maintenance-policies.yaml", + "path-info": "/{apiVersion}/maintenance/policies" }, - "x-linode-cli-command": "longview" + "x-linode-cli-command": "maintenance" }, "/{apiVersion}/managed/contacts": { "post": { - "description": "Creates a Managed Contact. A Managed Contact is someone Linode special forces can contact in the course of attempting to resolve an issue with a Managed Service.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed contact-create \\\n --name \"John Doe\" \\\n --email \"john.doe@example.org\" \\\n --phone.primary \"123-456-7890\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Creates a managed contact. When investigating or resolving an issue with a service monitor, Akamai Support may reach out to this contact.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed contact-create \\\n --name \"John Doe\" \\\n --email \"john.doe@example.org\" \\\n --phone.primary \"123-456-7890\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-managed-contact" @@ -80390,7 +89335,7 @@ ], "summary": "Create a managed contact", "tags": [ - "Contacts" + "Managed contacts" ], "x-akamai": { "tabs": [ @@ -80410,7 +89355,7 @@ "x-linode-grant": "unrestricted only" }, "get": { - "description": "Returns a paginated list of Managed Contacts on your Account.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed contacts-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of managed contacts on your account.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed contacts-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-managed-contacts" @@ -80558,7 +89503,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-managed-contacts-200.yaml" + "file-path": "schemas/get-managed-contacts-200.yaml" } }, "x-example": { @@ -80617,7 +89562,7 @@ ], "summary": "List managed contacts", "tags": [ - "Contacts" + "Managed contacts" ], "x-akamai": { "tabs": [ @@ -80656,14 +89601,14 @@ } ], "x-akamai": { - "file-path": "paths/contacts.yaml", + "file-path": "paths/managed-contacts.yaml", "path-info": "/{apiVersion}/managed/contacts" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/contacts/{contactId}": { "get": { - "description": "Returns a single Managed Contact.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed contact-view 567\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a single managed contact.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed contact-view 567\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-managed-contact" @@ -80806,7 +89751,7 @@ ], "summary": "Get a managed contact", "tags": [ - "Contacts" + "Managed contacts" ], "x-akamai": { "tabs": [ @@ -80826,7 +89771,7 @@ "x-linode-grant": "unrestricted only" }, "put": { - "description": "Updates information about a Managed Contact. This operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed contact-update 567 \\\n --name \"John Doe\" \\\n --email \"john.doe@example.org\" \\\n --phone.primary \"123-456-7890\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Updates information for a managed contact.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed contact-update 567 \\\n --name \"John Doe\" \\\n --email \"john.doe@example.org\" \\\n --phone.primary \"123-456-7890\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-managed-contact" @@ -81057,7 +90002,7 @@ ], "summary": "Update a managed contact", "tags": [ - "Contacts" + "Managed contacts" ], "x-akamai": { "tabs": [ @@ -81077,7 +90022,7 @@ "x-linode-grant": "unrestricted only" }, "delete": { - "description": "Deletes a Managed Contact.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed contact-delete 567\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Deletes a managed contact.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed contact-delete 567\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/delete-managed-contact" @@ -81151,7 +90096,7 @@ ], "summary": "Delete a managed contact", "tags": [ - "Contacts" + "Managed contacts" ], "x-akamai": { "tabs": [ @@ -81204,14 +90149,14 @@ } ], "x-akamai": { - "file-path": "paths/contact.yaml", + "file-path": "paths/managed-contact.yaml", "path-info": "/{apiVersion}/managed/contacts/{contactId}" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/credentials": { "post": { - "description": "Creates a Managed Credential. A Managed Credential is stored securely to allow Linode special forces to access your Managed Services and resolve issues.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed credential-create \\\n --label prod-password-1 \\\n --username johndoe \\\n --password s3cur3P@ssw0rd\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Creates a managed credential to store usernames and passwords for applications running on your Linode. Akamai Support can use these credentials to access your applications when investigating or resolving issues.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed credential-create \\\n --label prod-password-1 \\\n --username johndoe \\\n --password s3cur3P@ssw0rd\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-managed-credential" @@ -81279,7 +90224,7 @@ "password" ], "x-akamai": { - "file-path": "schemas/added-post-managed-credential.yaml" + "file-path": "schemas/post-managed-credential.yaml" } }, "x-example": { @@ -81383,7 +90328,7 @@ ], "summary": "Create a managed credential", "tags": [ - "Credentials" + "Managed credentials" ], "x-akamai": { "tabs": [ @@ -81403,7 +90348,7 @@ "x-linode-grant": "unrestricted only" }, "get": { - "description": "Returns a paginated list of Managed Credentials on your Account.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed credentials-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of managed credentials on your account.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed credentials-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-managed-credentials" @@ -81508,7 +90453,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-managed-credentials-200.yaml" + "file-path": "schemas/get-managed-credentials-200.yaml" } }, "x-example": { @@ -81567,7 +90512,7 @@ ], "summary": "List managed credentials", "tags": [ - "Credentials" + "Managed credentials" ], "x-akamai": { "tabs": [ @@ -81606,14 +90551,14 @@ } ], "x-akamai": { - "file-path": "paths/credentials.yaml", + "file-path": "paths/managed-credentials.yaml", "path-info": "/{apiVersion}/managed/credentials" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/credentials/sshkey": { "get": { - "description": "Returns the unique SSH public key assigned to your Linode account's Managed service. If you [add this public key](https://www.linode.com/docs/products/services/managed/get-started/#adding-the-public-key) to a Linode on your account, Linode special forces will be able to log in to the Linode with this key when attempting to resolve issues.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed credential-sshkey-view\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns the unique SSH public key assigned to Linode Managed on your account. If you [add this public key](https://techdocs.akamai.com/cloud-computing/docs/configure-ssh-access-for-linode-managed) to a Linode on your account, Akamai Support can securely access that Linode to help resolve any issues.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed credential-sshkey-view\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-managed-ssh-key" @@ -81637,7 +90582,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-managed-ssh-key-200.yaml" + "file-path": "schemas/get-managed-ssh-key-200.yaml" } }, "x-example": { @@ -81842,7 +90787,7 @@ ], "summary": "Get a managed credential", "tags": [ - "Credentials" + "Managed credentials" ], "x-akamai": { "tabs": [ @@ -82007,7 +90952,7 @@ ], "summary": "Update a managed credential", "tags": [ - "Credentials" + "Managed credentials" ], "x-akamai": { "tabs": [ @@ -82060,14 +91005,14 @@ } ], "x-akamai": { - "file-path": "paths/credential.yaml", + "file-path": "paths/managed-credential.yaml", "path-info": "/{apiVersion}/managed/credentials/{credentialId}" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/credentials/{credentialId}/revoke": { "post": { - "description": "Deletes a Managed Credential. Linode special forces will no longer have access to this Credential when attempting to resolve issues.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed credential-revoke 9991\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Deletes a managed credential. Akamai Support will no longer have access to this credential when investigating or resolving issues.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed credential-revoke 9991\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-managed-credential-revoke" @@ -82141,7 +91086,7 @@ ], "summary": "Delete a managed credential", "tags": [ - "Credentials" + "Managed credentials" ], "x-akamai": { "tabs": [ @@ -82194,14 +91139,14 @@ } ], "x-akamai": { - "file-path": "paths/revoke.yaml", + "file-path": "paths/managed-credential-revoke.yaml", "path-info": "/{apiVersion}/managed/credentials/{credentialId}/revoke" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/credentials/{credentialId}/update": { "post": { - "description": "Updates the username and password for a Managed Credential.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed credential-update-username-password 9991 \\\n --username johndoe \\\n --password s3cur3P@ssw0rd\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Updates the username and password for a managed credential.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed credential-update-username-password 9991 \\\n --username johndoe \\\n --password s3cur3P@ssw0rd\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-managed-credential-username-password" @@ -82231,7 +91176,7 @@ ], "type": "object", "x-akamai": { - "file-path": "schemas/added-post-managed-credential-username-password.yaml" + "file-path": "schemas/post-managed-credential-username-password.yaml" } }, "x-example": { @@ -82309,7 +91254,7 @@ ], "summary": "Update a managed credential's username and password", "tags": [ - "Credentials" + "Managed credentials" ], "x-akamai": { "tabs": [ @@ -82362,14 +91307,14 @@ } ], "x-akamai": { - "file-path": "paths/update.yaml", + "file-path": "paths/managed-credential-update.yaml", "path-info": "/{apiVersion}/managed/credentials/{credentialId}/update" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/issues": { "get": { - "description": "Returns a paginated list of recent and ongoing issues detected on your Managed Services.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed issues-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of recent and ongoing issues detected on your service monitors.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed issues-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-managed-issues" @@ -82512,7 +91457,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-managed-issues-200.yaml" + "file-path": "schemas/get-managed-issues-200.yaml" } }, "x-example": { @@ -82571,7 +91516,7 @@ ], "summary": "List managed issues", "tags": [ - "Issues" + "Managed issues" ], "x-akamai": { "tabs": [ @@ -82610,14 +91555,14 @@ } ], "x-akamai": { - "file-path": "paths/issues.yaml", + "file-path": "paths/managed-issues.yaml", "path-info": "/{apiVersion}/managed/issues" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/issues/{issueId}": { "get": { - "description": "Returns a single Issue that is impacting or did impact one of your Managed Services.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed issue-view 823\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a single issue affecting one of your service monitors.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed issue-view 823\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-managed-issue" @@ -82755,7 +91700,7 @@ ], "summary": "Get a managed issue", "tags": [ - "Issues" + "Managed issues" ], "x-akamai": { "tabs": [ @@ -82808,14 +91753,14 @@ } ], "x-akamai": { - "file-path": "paths/issue.yaml", + "file-path": "paths/managed-issue.yaml", "path-info": "/{apiVersion}/managed/issues/{issueId}" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/linode-settings": { "get": { - "description": "Returns a paginated list of Managed Settings for your Linodes. There will be one entry per Linode on your Account.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed linode-settings-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of managed settings for your Linodes (one entry per Linode).\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed linode-settings-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-managed-linode-settings" @@ -82957,7 +91902,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-managed-linode-settings-200.yaml" + "file-path": "schemas/get-managed-linode-settings-200.yaml" } }, "x-example": { @@ -83016,7 +91961,7 @@ ], "summary": "List managed Linode settings", "tags": [ - "Linode settings" + "Managed Linode settings" ], "x-akamai": { "tabs": [ @@ -83055,14 +92000,14 @@ } ], "x-akamai": { - "file-path": "paths/linode-settings.yaml", + "file-path": "paths/managed-linode-settings.yaml", "path-info": "/{apiVersion}/managed/linode-settings" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/linode-settings/{linodeId}": { "get": { - "description": "Returns a single Linode's Managed settings.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed linode-setting-view 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns the managed settings for a single Linode.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed linode-setting-view 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-managed-linode-setting" @@ -83199,7 +92144,7 @@ ], "summary": "Get a Linode's managed settings", "tags": [ - "Managed settings" + "Managed Linode settings" ], "x-akamai": { "tabs": [ @@ -83219,7 +92164,7 @@ "x-linode-grant": "unrestricted only" }, "put": { - "description": "Updates a single Linode's Managed settings. This operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed linode-setting-update \\\n 7833234 \\\n --ssh.access true \\\n --ssh.user linode \\\n --ssh.port 22 \\\n --ssh.ip 203.0.113.1\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Updates the managed settings for a Linode.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed linode-setting-update \\\n 7833234 \\\n --ssh.access true \\\n --ssh.user linode \\\n --ssh.port 22 \\\n --ssh.ip 203.0.113.1\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-managed-linode-setting" @@ -83438,7 +92383,7 @@ ], "summary": "Update a Linode's managed settings", "tags": [ - "Managed settings" + "Managed Linode settings" ], "x-akamai": { "tabs": [ @@ -83491,14 +92436,14 @@ } ], "x-akamai": { - "file-path": "paths/linode-settings-per-linode.yaml", + "file-path": "paths/managed-linode-settings-per-linode.yaml", "path-info": "/{apiVersion}/managed/linode-settings/{linodeId}" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/services": { "post": { - "description": "Creates a Managed Service. Linode Managed will begin monitoring this service and reporting and attempting to resolve any Issues.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed service-create \\\n --service_type url \\\n --label prod-1 \\\n --address \"https://example.org\" \\\n --timeout 30 \\\n --body \"it worked\" \\\n --consultation_group on-call \\\n --notes \"The service name is \\\n my-cool-application\" \\\n --credentials 9991\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Creates a service monitor. Linode Managed monitors this service and alerts Akamai Support when issues are detected.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed service-create \\\n --service_type url \\\n --label prod-1 \\\n --address \"https://example.org\" \\\n --timeout 30 \\\n --body \"it worked\" \\\n --consultation_group on-call \\\n --notes \"The service name is \\\n my-cool-application\" \\\n --credentials 9991\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-managed-service" @@ -83637,7 +92582,7 @@ "timeout" ], "x-akamai": { - "file-path": "schemas/added-post-managed-service.yaml" + "file-path": "schemas/post-managed-service.yaml" } }, "x-example": { @@ -83827,7 +92772,7 @@ ], "summary": "Create a managed service", "tags": [ - "Services" + "Managed service monitors" ], "x-akamai": { "tabs": [ @@ -83847,7 +92792,7 @@ "x-linode-grant": "unrestricted only" }, "get": { - "description": "Returns a paginated list of Managed Services on your Account. These are the services Linode Managed is monitoring and will report and attempt to resolve issues with.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed services-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of service monitors on your account. These are the services on your Linodes monitored by Linode Managed.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed services-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-managed-services" @@ -84004,7 +92949,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-managed-services-200.yaml" + "file-path": "schemas/get-managed-services-200.yaml" } }, "x-example": { @@ -84063,7 +93008,7 @@ ], "summary": "List managed services", "tags": [ - "Services" + "Managed service monitors" ], "x-akamai": { "tabs": [ @@ -84102,14 +93047,14 @@ } ], "x-akamai": { - "file-path": "paths/services.yaml", + "file-path": "paths/managed-service-monitors.yaml", "path-info": "/{apiVersion}/managed/services" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/services/{serviceId}": { "get": { - "description": "Returns information about a single Managed Service on your Account.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed service-view 9994\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns the configuration settings for a single service monitor.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed service-view 9994\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-managed-service" @@ -84293,9 +93238,9 @@ ] } ], - "summary": "Get a managed service", + "summary": "Get a managed service monitor", "tags": [ - "Services" + "Managed service monitors" ], "x-akamai": { "tabs": [ @@ -84315,7 +93260,7 @@ "x-linode-grant": "unrestricted only" }, "put": { - "description": "Updates information about a Managed Service.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed service-update 9994 \\\n --service_type url \\\n --label prod-1 \\\n --address \"https://example.org\" \\\n --timeout 30 \\\n --body \"it worked\" \\\n --consultation_group on-call \\\n --notes \"The service name is my-cool-application\" \\\n --credentials 9991\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Updates a service monitor's configuration settings.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed service-update 9994 \\\n --service_type url \\\n --label prod-1 \\\n --address \"https://example.org\" \\\n --timeout 30 \\\n --body \"it worked\" \\\n --consultation_group on-call \\\n --notes \"The service name is my-cool-application\" \\\n --credentials 9991\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-managed-service" @@ -84630,9 +93575,9 @@ ] } ], - "summary": "Update a managed service", + "summary": "Update a managed service monitor", "tags": [ - "Services" + "Managed service monitors" ], "x-akamai": { "tabs": [ @@ -84652,7 +93597,7 @@ "x-linode-grant": "unrestricted only" }, "delete": { - "description": "Deletes a Managed Service. This service will no longer be monitored by Linode Managed.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed service-delete 9994\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Deletes a service monitor, so that the service is no longer monitored by Linode Managed.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed service-delete 9994\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/delete-managed-service" @@ -84724,9 +93669,9 @@ ] } ], - "summary": "Delete a managed service", + "summary": "Delete a managed service monitor", "tags": [ - "Services" + "Managed service monitors" ], "x-akamai": { "tabs": [ @@ -84779,14 +93724,14 @@ } ], "x-akamai": { - "file-path": "paths/service.yaml", + "file-path": "paths/managed-service-monitor.yaml", "path-info": "/{apiVersion}/managed/services/{serviceId}" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/services/{serviceId}/disable": { "post": { - "description": "Temporarily disables monitoring of a Managed Service.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed service-disable 9994\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Temporarily disables monitoring of a service on a managed Linode.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed service-disable 9994\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-disable-managed-service" @@ -84970,9 +93915,9 @@ ] } ], - "summary": "Disable a managed service", + "summary": "Disable a managed service monitor", "tags": [ - "Services" + "Managed service monitors" ], "x-akamai": { "tabs": [ @@ -85025,14 +93970,14 @@ } ], "x-akamai": { - "file-path": "paths/disable.yaml", + "file-path": "paths/managed-service-monitor-disable.yaml", "path-info": "/{apiVersion}/managed/services/{serviceId}/disable" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/services/{serviceId}/enable": { "post": { - "description": "Enables monitoring of a Managed Service.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed service-enable 9994\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Enables monitoring of a service on a managed Linode.\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed service-enable 9994\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-enable-managed-service" @@ -85216,9 +94161,9 @@ ] } ], - "summary": "Enable a managed service", + "summary": "Enable a managed service monitor", "tags": [ - "Services" + "Managed service monitors" ], "x-akamai": { "tabs": [ @@ -85271,14 +94216,14 @@ } ], "x-akamai": { - "file-path": "paths/service-enable.yaml", + "file-path": "paths/managed-service-monitor-enable.yaml", "path-info": "/{apiVersion}/managed/services/{serviceId}/enable" }, "x-linode-cli-command": "managed" }, "/{apiVersion}/managed/stats": { "get": { - "description": "Returns a list of Managed Stats on your Account in the form of x and y data points. You can use these data points to plot your own graph visualizations. These stats reflect the last 24 hours of combined usage across all managed Linodes on your account giving you a high-level snapshot of data for the following:\n\n- cpu\n- disk\n- swap\n- network in\n- network out\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed stats-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a list of metrics for the Linodes on your account in arrays of coordinates (_x_-axis and _y_-axis data points). You can use these data points to plot your own graph visualizations. These metrics reflect the last 24 hours of combined usage across all managed Linodes on your account, giving you a high-level snapshot of data for the following:\n\n- CPU\n- Disk I/O\n- Swap usage\n- Network in\n- Network out\n\nThis operation can only be accessed by the unrestricted users of an account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli managed stats-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-managed-stats" @@ -85458,7 +94403,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-managed-stats-200.yaml" + "file-path": "schemas/get-managed-stats-200.yaml" } }, "x-example": { @@ -85517,7 +94462,7 @@ ], "summary": "List managed stats", "tags": [ - "Statistics" + "Managed statistics" ], "x-akamai": { "tabs": [ @@ -85693,15 +94638,25 @@ "type": "string" }, "id": { - "description": "The unique identifier for the alert channel.", + "description": "__Filterable__ The unique identifier for the alert channel.", "example": 10000, "type": "integer", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "label": { - "description": "The name of the alert channel, used to display it in Akamai Cloud Manager.", + "description": "__Filterable__ The name of the alert channel, used to display it in Akamai Cloud Manager.", "example": "Read-Write Channel", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "type": { @@ -85850,7 +94805,7 @@ ], "x-akamai": { "file-path": "paths/aclp-alert-channels.yaml", - "path-info": "/monitor/alert-channels" + "path-info": "/{apiVersion}/monitor/alert-channels" }, "x-linode-cli-command": "alerts" }, @@ -86057,7 +95012,7 @@ "type": "string" }, "entity_ids": { - "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response.\n\n> \ud83d\udcd8\n>\n> The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`, while other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", + "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response.\n\n> \ud83d\udcd8\n>\n> The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`. Other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", "example": [ "126905", "126906", @@ -86078,15 +95033,25 @@ "type": "boolean" }, "id": { - "description": "The unique identifier for the alert definition.", + "description": "__Filterable__ The unique identifier for the alert definition.", "example": 10000, "type": "integer", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "label": { - "description": "The name of the alert definition. This is used for display purposes in Akamai Cloud Manager.", + "description": "__Filterable__ The name of the alert definition. This is used for display purposes in Akamai Cloud Manager.", "example": "High Memory Usage Plan Dedicated", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "rule_criteria": { @@ -86198,10 +95163,7 @@ "type": "object" }, "service_type": { - "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API.", "example": "dbaas", "type": "string" }, @@ -86217,7 +95179,7 @@ "type": "integer" }, "status": { - "description": "The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`.", + "description": "__Filterable__ The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`.", "enum": [ "enabled", "disabled", @@ -86226,6 +95188,11 @@ ], "example": "enabled", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "trigger_conditions": { @@ -86259,13 +95226,18 @@ "type": "object" }, "type": { - "description": "The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account.", + "description": "__Filterable__ The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account.", "enum": [ "user", "system" ], "example": "system", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "updated": { @@ -86405,7 +95377,7 @@ ], "x-akamai": { "file-path": "paths/aclp-alert-definitions.yaml", - "path-info": "/monitor/alert-definitions" + "path-info": "/{apiVersion}/monitor/alert-definitions" }, "x-linode-cli-command": "alerts" }, @@ -86484,10 +95456,7 @@ "type": "string" }, "service_type": { - "description": "The Akamai Cloud Computing service used by this dashboard. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "The Akamai Cloud Computing service used by this dashboard.", "example": "dbaas", "type": "string" }, @@ -86736,9 +95705,9 @@ }, "x-linode-cli-command": "monitor" }, - "/{apiVersion}/monitor/dashboards/{dashboard_id}": { + "/{apiVersion}/monitor/dashboards/{dashboardId}": { "get": { - "description": "__Beta__ Returns a specific dashboard, based on its unique ID. You can run the [List dashboards](https://techdocs.akamai.com/linode-api/reference/get-dashboards-all) operation to see the ID for all dashboards.\n\n> \ud83d\udcd8\n>\n> This operation is beta. Call it using the `v4beta` path in its URL.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli monitor dashboards-view 1\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "__Beta__ Returns a specific dashboard, based on its unique identifier.\n\n> \ud83d\udcd8\n>\n> This operation is beta. Call it using the `v4beta` path in its URL.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli monitor dashboards-view 1\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-dashboards-by-id" @@ -86798,10 +95767,7 @@ "type": "string" }, "service_type": { - "description": "The Akamai Cloud Computing service used by this dashboard. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "The Akamai Cloud Computing service used by this dashboard.", "example": "dbaas", "type": "string" }, @@ -87006,23 +95972,23 @@ } }, { - "description": "ID of the Dashboard", - "example": "{{dashboard_id}}", + "description": "The unique identifier of the dashboard.", + "example": "{{dashboardId}}", "in": "path", - "name": "dashboard_id", + "name": "dashboardId", "required": true, "schema": { "example": 12345, "type": "integer" }, "x-akamai": { - "file-path": "parameters/dashboard-id.yaml" + "file-path": "parameters/aclp-dashboard-id.yaml" } } ], "x-akamai": { "file-path": "paths/aclp-get-dashboard-by-id.yaml", - "path-info": "/{apiVersion}/monitor/dashboards/{dashboard_id}" + "path-info": "/{apiVersion}/monitor/dashboards/{dashboardId}" }, "x-linode-cli-command": "monitor" }, @@ -87062,10 +96028,7 @@ "type": "string" }, "service_type": { - "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API.", "example": "dbaas", "type": "string" } @@ -87199,9 +96162,9 @@ }, "x-linode-cli-command": "monitor" }, - "/{apiVersion}/monitor/services/{service_type}": { + "/{apiVersion}/monitor/services/{serviceType}": { "get": { - "description": "__Beta__ Returns details for a specific service type. Include the appropriate `service_type` as a path parameter.\n\n> \ud83d\udcd8\n>\n> - This operation is beta. Call it using the `v4beta` path in its URL.\n>\n> - Currently, only the Managed Databases (`dbaas`) service type is supported.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli monitor service-view dbaas\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "__Beta__ Returns details for a specific service type.\n\n> \ud83d\udcd8\n>\n> - This operation is beta. Call it using the `v4beta` path in its URL.\n>\n> - For more details on the metrics available for each service, see the [Metrics reference](https://techdocs.akamai.com/cloud-computing/docs/metrics-dimensions-parameters).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli monitor service-view dbaas\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-monitor-services-for-service-type" @@ -87235,10 +96198,7 @@ "type": "string" }, "service_type": { - "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API.", "example": "dbaas", "type": "string" } @@ -87366,15 +96326,12 @@ } }, { - "description": "__Enum__ The Akamai Cloud Computing service being monitored. Currently, only the Managed Databases (`dbaas`) service type is supported.", - "example": "{{service_type}}", + "description": "The Akamai Cloud Computing service being monitored. To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation and store the appropriate `service_type`.", + "example": "{{serviceType}}", "in": "path", - "name": "service_type", + "name": "serviceType", "required": true, "schema": { - "enum": [ - "dbaas" - ], "example": "dbaas", "type": "string" }, @@ -87385,13 +96342,13 @@ ], "x-akamai": { "file-path": "paths/aclp-get-metric-definition-for-service-type.yaml", - "path-info": "/{apiVersion}/monitor/services/{service_type}" + "path-info": "/{apiVersion}/monitor/services/{serviceType}" }, "x-linode-cli-command": "monitor" }, - "/{apiVersion}/monitor/services/{service_type}/alert-definitions": { + "/{apiVersion}/monitor/services/{serviceType}/alert-definitions": { "post": { - "description": "__Beta__ Create a new alert definition for a specific service type. Include the appropriate `service_type` as a path parameter. These are referred to as `user` alerts. You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/oauth-reference) for the selected `service_type`.\n\n> \ud83d\udcd8\n>\n> - This operation is beta. Call it using the `v4beta` path in its URL.\n>\n> - Currently, only the Managed Databases (`dbaas`) service type is supported.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n monitor:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)\n\n- __CLI__.\n\n ```\n linode-cli alerts definition-create \\\n--channel_ids 546 \\\n--label CPU usage threshold maximum \\\n--rule_criteria.metric cpu_usage \\\n--rule_criteria.operator gt \\\n--rule_criteria.threshold 80 \\\n--severity 2\n--trigger_conditions.evaluation_period_seconds 300 \\\n--trigger_conditions.polling_interval_seconds 300 \\\n--trigger_conditions.trigger_occurrences 3 \\\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "__Beta__ Create a new alert definition for a specific service type. Akamai refers to these as `user` alerts. You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the selected `serviceType`. Check out this [workflow](https://techdocs.akamai.com/linode-api/reference/create-a-logs-stream) for the basics on set up of a destination and a stream to gather logs.\n\n> \ud83d\udcd8\n>\n> This operation is beta. Call it using the `v4beta` path in its URL.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n monitor:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)\n\n- __CLI__.\n\n ```\n linode-cli alerts definition-create \\\n--channel_ids 546 \\\n--label CPU usage threshold maximum \\\n--rule_criteria.metric cpu_usage \\\n--rule_criteria.operator gt \\\n--rule_criteria.threshold 80 \\\n--severity 2\n--trigger_conditions.evaluation_period_seconds 300 \\\n--trigger_conditions.polling_interval_seconds 300 \\\n--trigger_conditions.trigger_occurrences 3 \\\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type" @@ -87458,7 +96415,7 @@ "type": "string" }, "entity_ids": { - "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response.\n\n> \ud83d\udcd8\n>\n> - You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the `service_type` for each of the `entity_ids`.\n>\n> - The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`, while other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", + "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response. You also need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the `service_type` for each of the `entity_ids`.\n\n> \ud83d\udcd8\n>\n> The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`, while other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", "example": [ "13116", "13217", @@ -87740,7 +96697,7 @@ "type": "string" }, "entity_ids": { - "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response.\n\n> \ud83d\udcd8\n>\n> The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`, while other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", + "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response.\n\n> \ud83d\udcd8\n>\n> The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`. Other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", "example": [ "126905", "126906", @@ -87761,15 +96718,25 @@ "type": "boolean" }, "id": { - "description": "The unique identifier for the alert definition.", + "description": "__Filterable__ The unique identifier for the alert definition.", "example": 10000, "type": "integer", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "label": { - "description": "The name of the alert definition. This is used for display purposes in Akamai Cloud Manager.", + "description": "__Filterable__ The name of the alert definition. This is used for display purposes in Akamai Cloud Manager.", "example": "High Memory Usage Plan Dedicated", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "rule_criteria": { @@ -87881,10 +96848,7 @@ "type": "object" }, "service_type": { - "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API.", "example": "dbaas", "type": "string" }, @@ -87900,7 +96864,7 @@ "type": "integer" }, "status": { - "description": "The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`.", + "description": "__Filterable__ The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`.", "enum": [ "enabled", "disabled", @@ -87909,6 +96873,11 @@ ], "example": "enabled", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "trigger_conditions": { @@ -87942,13 +96911,18 @@ "type": "object" }, "type": { - "description": "The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account.", + "description": "__Filterable__ The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account.", "enum": [ "user", "system" ], "example": "system", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "updated": { @@ -88042,7 +97016,7 @@ "x-linode-grant": "read_write" }, "get": { - "description": "__Beta__ Returns all available alert definitions for a specific service type. Include the appropriate `service_type` as a path parameter.\n\n> \ud83d\udcd8\n>\n> - This operation is beta. Call it using the `v4beta` path in its URL.\n>\n> - Currently, only the Managed Databases (`dbaas`) service type is supported.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)\n\n- __CLI__.\n\n ```\n linode-cli alerts definition-view dbaas\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "__Beta__ Returns all available alert definitions for a specific service type.\n\n> \ud83d\udcd8\n>\n> This operation is beta. Call it using the `v4beta` path in its URL.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)\n\n- __CLI__.\n\n ```\n linode-cli alerts service-definitions-list dbaas\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-alert-definitions-for-service-type" @@ -88243,7 +97217,7 @@ "type": "string" }, "entity_ids": { - "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response.\n\n> \ud83d\udcd8\n>\n> The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`, while other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", + "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response.\n\n> \ud83d\udcd8\n>\n> The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`. Other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", "example": [ "126905", "126906", @@ -88264,15 +97238,25 @@ "type": "boolean" }, "id": { - "description": "The unique identifier for the alert definition.", + "description": "__Filterable__ The unique identifier for the alert definition.", "example": 10000, "type": "integer", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "label": { - "description": "The name of the alert definition. This is used for display purposes in Akamai Cloud Manager.", + "description": "__Filterable__ The name of the alert definition. This is used for display purposes in Akamai Cloud Manager.", "example": "High Memory Usage Plan Dedicated", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "rule_criteria": { @@ -88384,10 +97368,7 @@ "type": "object" }, "service_type": { - "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API.", "example": "dbaas", "type": "string" }, @@ -88403,7 +97384,7 @@ "type": "integer" }, "status": { - "description": "The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`.", + "description": "__Filterable__ The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`.", "enum": [ "enabled", "disabled", @@ -88412,6 +97393,11 @@ ], "example": "enabled", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "trigger_conditions": { @@ -88445,13 +97431,18 @@ "type": "object" }, "type": { - "description": "The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account.", + "description": "__Filterable__ The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account.", "enum": [ "user", "system" ], "example": "system", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "updated": { @@ -88561,13 +97552,13 @@ "url": "https://techdocs.akamai.com/linode-api/reference/get-started#oauth" }, { - "syntax": "linode-cli alerts definition-view dbaas", + "syntax": "linode-cli alerts service-definitions-list dbaas", "title": "CLI", "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" } ] }, - "x-linode-cli-action": "definition-view", + "x-linode-cli-action": "service-definitions-list", "x-linode-grant": "read_only" }, "parameters": [ @@ -88589,15 +97580,12 @@ } }, { - "description": "__Enum__ The Akamai Cloud Computing service being monitored. Currently, only the Managed Databases (`dbaas`) service type is supported.", - "example": "{{service_type}}", + "description": "The Akamai Cloud Computing service being monitored. To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation and store the appropriate `service_type`.", + "example": "{{serviceType}}", "in": "path", - "name": "service_type", + "name": "serviceType", "required": true, "schema": { - "enum": [ - "dbaas" - ], "example": "dbaas", "type": "string" }, @@ -88608,13 +97596,13 @@ ], "x-akamai": { "file-path": "paths/aclp-service-alert-definitions.yaml", - "path-info": "/monitor/services/{service_type}/alert-definitions" + "path-info": "/{apiVersion}/monitor/services/{serviceType}/alert-definitions" }, "x-linode-cli-command": "alerts" }, - "/{apiVersion}/monitor/services/{service_type}/alert-definitions/{alert_id}": { + "/{apiVersion}/monitor/services/{serviceType}/alert-definitions/{alertId}": { "get": { - "description": "__Beta__ Returns a specific alert definition. Include the appropriate `service_type` and `alert_id` as path parameters.\n\n> \ud83d\udcd8\n>\n> - This operation is beta. Call it using the `v4beta` path in its URL.\n>\n> - Currently, only the Managed Databases (`dbaas`) service type is supported.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)\n\n- __CLI__.\n\n ```\n linode-cli alerts definition-view dbaas 457\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "__Beta__ Returns a specific alert definition.\n\n> \ud83d\udcd8\n>\n> This operation is beta. Call it using the `v4beta` path in its URL.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)\n\n- __CLI__.\n\n ```\n linode-cli alerts definition-view dbaas 457\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-alert-definition" @@ -88746,7 +97734,7 @@ "type": "string" }, "entity_ids": { - "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response.\n\n> \ud83d\udcd8\n>\n> The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`, while other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", + "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response.\n\n> \ud83d\udcd8\n>\n> The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`. Other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", "example": [ "126905", "126906", @@ -88767,15 +97755,25 @@ "type": "boolean" }, "id": { - "description": "The unique identifier for the alert definition.", + "description": "__Filterable__ The unique identifier for the alert definition.", "example": 10000, "type": "integer", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "label": { - "description": "The name of the alert definition. This is used for display purposes in Akamai Cloud Manager.", + "description": "__Filterable__ The name of the alert definition. This is used for display purposes in Akamai Cloud Manager.", "example": "High Memory Usage Plan Dedicated", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "rule_criteria": { @@ -88887,10 +97885,7 @@ "type": "object" }, "service_type": { - "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API.", "example": "dbaas", "type": "string" }, @@ -88906,7 +97901,7 @@ "type": "integer" }, "status": { - "description": "The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`.", + "description": "__Filterable__ The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`.", "enum": [ "enabled", "disabled", @@ -88915,6 +97910,11 @@ ], "example": "enabled", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "trigger_conditions": { @@ -88948,13 +97948,18 @@ "type": "object" }, "type": { - "description": "The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account.", + "description": "__Filterable__ The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account.", "enum": [ "user", "system" ], "example": "system", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "updated": { @@ -89048,7 +98053,7 @@ "x-linode-grant": "read_only" }, "put": { - "description": "__Beta__ Update an existing alert definition. Include the appropriate `service_type` and `alert_id` as path parameters. You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/oauth-reference) for the selected `service_type`. Only include the objects in the request that you want to update. Leave any object out of the request to leave it set as is.\n\n> \ud83d\udcd8\n>\n> - This operation is beta. Call it using the `v4beta` path in its URL.\n>\n> - Currently, only the Managed Databases (`dbaas`) service type is supported.\n\n**User alert definitions**\n\nWhen updating an alert definition you've [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type), you can change the `status` to `enabled` or `disabled`. You can also modify the `label`, `description`, `severity`, `entity_ids`, `rule_criteria`, `trigger_conditions`, and `channel_ids` objects. If updating the `entity_ids`, `rule_criteria`, or `channel_ids` list objects, these points apply:\n\n- If you want to keep an existing item, you need to include it in the list.\n\n- If you want to remove an existing item, leave it out of the list.\n\n- To add a new item, include it in the list.\n\n- You can't pass an empty list to remove all items. This doesn't apply to the `entity_ids` or `dimension_filters` (in `rule_criteria`) list objects, because they are optional, while all other list objects are required.\n\n**System alert definitions**\n\nThese are the default alert definitions offered by Akamai. You can only edit the `entity_ids` list object for these alerts. All of the points above regarding editing a list object apply here, too.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n monitor:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)\n\n- __CLI__.\n\n ```\n linode-cli alerts definition-update dbaas 457 \\\n--status disabled \\\n--label Read-Write Channel (old)\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "__Beta__ Update an existing alert definition. You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the selected `serviceType`. Only include the objects in the request that you want to update. Leave any object out of the request to leave it set as is.\n\n> \ud83d\udcd8\n>\n> This operation is beta. Call it using the `v4beta` path in its URL.\n\n**User alert definitions**\n\nWhen updating an alert definition you've [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type), you can change the `status` to `enabled` or `disabled`. You can also modify the `label`, `description`, `severity`, `entity_ids`, `rule_criteria`, `trigger_conditions`, and `channel_ids` objects. If updating the `entity_ids`, `rule_criteria`, or `channel_ids` list objects, these points apply:\n\n- If you want to keep an existing item, you need to include it in the list.\n\n- If you want to remove an existing item, leave it out of the list.\n\n- To add a new item, include it in the list.\n\n- You can't pass an empty list to remove all items. This doesn't apply to the `entity_ids` or `dimension_filters` (in `rule_criteria`) list objects, because they are optional, while all other list objects are required.\n\n**System alert definitions**\n\nThese are the default alert definitions offered by Akamai. You can only edit the `entity_ids` list object for these alerts. All of the points above regarding editing a list object apply here, too.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n monitor:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)\n\n- __CLI__.\n\n ```\n linode-cli alerts definition-update dbaas 457 \\\n--status disabled \\\n--label Read-Write Channel (old)\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-alert-definition" @@ -89100,7 +98105,7 @@ "additionalProperties": false, "properties": { "channel_ids": { - "description": "The identifiers for the alert channels to use for the alert. Run the [List alert channels](https://techdocs.akamai.com/linode-api/reference/get-alerts-notification-channels) operation and store the `id` for the applicable channels.", + "description": "The identifiers for the alert channels to use for the alert. Run the [List alert channels](https://techdocs.akamai.com/linode-api/reference/get-alert-channels) operation and store the `id` for the applicable channels.", "example": [ 546, 392 @@ -89116,7 +98121,7 @@ "type": "string" }, "entity_ids": { - "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response.\n\n> \ud83d\udcd8\n>\n> - You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the `service_type` for each of the `entity_ids`.\n>\n> - The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`, while other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", + "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response. You also need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the `service_type` for each of the `entity_ids`.\n\n> \ud83d\udcd8\n>\n> The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`. Other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", "example": [ "13116", "13116", @@ -89400,7 +98405,7 @@ "type": "string" }, "entity_ids": { - "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response.\n\n> \ud83d\udcd8\n>\n> The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`, while other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", + "description": "The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response.\n\n> \ud83d\udcd8\n>\n> The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`. Other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`.", "example": [ "126905", "126906", @@ -89421,15 +98426,25 @@ "type": "boolean" }, "id": { - "description": "The unique identifier for the alert definition.", + "description": "__Filterable__ The unique identifier for the alert definition.", "example": 10000, "type": "integer", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "label": { - "description": "The name of the alert definition. This is used for display purposes in Akamai Cloud Manager.", + "description": "__Filterable__ The name of the alert definition. This is used for display purposes in Akamai Cloud Manager.", "example": "High Memory Usage Plan Dedicated", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "rule_criteria": { @@ -89541,10 +98556,7 @@ "type": "object" }, "service_type": { - "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API.", "example": "dbaas", "type": "string" }, @@ -89560,7 +98572,7 @@ "type": "integer" }, "status": { - "description": "The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`.", + "description": "__Filterable__ The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`.", "enum": [ "enabled", "disabled", @@ -89569,6 +98581,11 @@ ], "example": "enabled", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "trigger_conditions": { @@ -89602,13 +98619,18 @@ "type": "object" }, "type": { - "description": "The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account.", + "description": "__Filterable__ The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account.", "enum": [ "user", "system" ], "example": "system", "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, "x-linode-filterable": true }, "updated": { @@ -89630,7 +98652,7 @@ } } }, - "description": "Returns a paginated list of dashboards." + "description": "The alert definition is updated." }, "default": { "content": { @@ -89702,7 +98724,7 @@ "x-linode-grant": "read_write" }, "delete": { - "description": "__Beta__ Delete a specific alert definition on your account. Include the appropriate `service_type` and `alert_id` as path parameters.\n\n> \ud83d\udcd8\n>\n> - This operation is beta. Call it using the `v4beta` path in its URL.\n>\n> - You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the target `service_type`.\n>\n> - An [alert definition](https://techdocs.akamai.com/linode-api/reference/get-alert-definitions) with a `type` of `system` can't be deleted.\n>\n> - Currently, only the Managed Databases (`dbaas`) service type is supported.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli alerts definition-delete 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n monitor:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "__Beta__ Delete a specific alert definition on your account.\n\n> \ud83d\udcd8\n>\n> - This operation is beta. Call it using the `v4beta` path in its URL.\n>\n> - You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the target `serviceType`.\n>\n> - An [alert definition](https://techdocs.akamai.com/linode-api/reference/get-alert-definitions) with a `type` of `system` can't be deleted.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli alerts definition-delete dbaas 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n monitor:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/delete-alert-definition" @@ -89782,7 +98804,7 @@ "status": "BETA", "tabs": [ { - "syntax": "linode-cli alerts definition-delete 123", + "syntax": "linode-cli alerts definition-delete dbaas 123", "title": "CLI", "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli" }, @@ -89815,15 +98837,12 @@ } }, { - "description": "__Enum__ The Akamai Cloud Computing service being monitored. Currently, only the Managed Databases (`dbaas`) service type is supported.", - "example": "{{service_type}}", + "description": "The Akamai Cloud Computing service being monitored. To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation and store the appropriate `service_type`.", + "example": "{{serviceType}}", "in": "path", - "name": "service_type", + "name": "serviceType", "required": true, "schema": { - "enum": [ - "dbaas" - ], "example": "dbaas", "type": "string" }, @@ -89833,9 +98852,9 @@ }, { "description": "The unique identifier assigned to the alert definition. Run the [List alert definitions](https://techdocs.akamai.com/linode-api/reference/get-alert-definitions) operation and store the `id` for the applicable alert definition.", - "example": "{{alert_id}}", + "example": "{{alertId}}", "in": "path", - "name": "alert_id", + "name": "alertId", "required": true, "schema": { "example": 457, @@ -89848,13 +98867,13 @@ ], "x-akamai": { "file-path": "paths/aclp-service-alert-definition.yaml", - "path-info": "/monitor/services/{service_type}/alert-definitions/{alert_id}" + "path-info": "/monitor/services/{serviceType}/alert-definitions/{alertId}" }, "x-linode-cli-command": "alerts" }, - "/{apiVersion}/monitor/services/{service_type}/dashboards": { + "/{apiVersion}/monitor/services/{serviceType}/dashboards": { "get": { - "description": "__Beta__ Returns all available dashboards for a given service type. Include the appropriate `service_type` as a path parameter.\n\n> \ud83d\udcd8\n>\n> - This operation is beta. Call it using the `v4beta` path in its URL.\n>\n> - Currently, only the Managed Databases (`dbaas`) service type is supported.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli monitor dashboards-list dbaas\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "__Beta__ Returns all available dashboards for a given service type.\n\n> \ud83d\udcd8\n>\n> This operation is beta. Call it using the `v4beta` path in its URL.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli monitor dashboards-list dbaas\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-dashboards" @@ -89925,15 +98944,12 @@ "type": "string" }, "service_type": { - "description": "The Akamai Cloud Computing service used by this dashboard. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "The Akamai Cloud Computing service used by this dashboard.", "example": "dbaas", "type": "string" }, "type": { - "description": "The type of dashboard. Currently, this can only be `standard` for a dashboard that uses default formatting.", + "description": "The type of dashboard. Currently, this can only be `standard` for a dashboard, which uses default formatting.", "enum": [ "standard" ], @@ -90156,15 +99172,12 @@ } }, { - "description": "__Enum__ The Akamai Cloud Computing service being monitored. Currently, only the Managed Databases (`dbaas`) service type is supported.", - "example": "{{service_type}}", + "description": "The Akamai Cloud Computing service being monitored. To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation and store the appropriate `service_type`.", + "example": "{{serviceType}}", "in": "path", - "name": "service_type", + "name": "serviceType", "required": true, "schema": { - "enum": [ - "dbaas" - ], "example": "dbaas", "type": "string" }, @@ -90175,13 +99188,13 @@ ], "x-akamai": { "file-path": "paths/aclp-get-dashboards-by-service-type.yaml", - "path-info": "/{apiVersion}/monitor/services/{service_type}/dashboards" + "path-info": "/{apiVersion}/monitor/services/{serviceType}/dashboards" }, "x-linode-cli-command": "monitor" }, - "/{apiVersion}/monitor/services/{service_type}/metric-definitions": { + "/{apiVersion}/monitor/services/{serviceType}/metric-definitions": { "get": { - "description": "__Beta__ Returns metrics for a specific service type. Include the appropriate `service_type` as a path parameter.\n\n> \ud83d\udcd8\n>\n> - This operation is beta. Call it using the `v4beta` path in its URL.\n>\n> - Currently, only the Managed Databases (`dbaas`) service type is supported.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli monitor metrics-list dbaas\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "__Beta__ Returns metrics for a specific service type.\n\n> \ud83d\udcd8\n>\n> - This operation is beta. Call it using the `v4beta` path in its URL.\n>\n> - For more details on the metrics available for each service, see the [Metrics reference](https://techdocs.akamai.com/cloud-computing/docs/metrics-dimensions-parameters).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli monitor metrics-list dbaas\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-monitor-information" @@ -90569,15 +99582,12 @@ } }, { - "description": "__Enum__ The Akamai Cloud Computing service being monitored. Currently, only the Managed Databases (`dbaas`) service type is supported.", - "example": "{{service_type}}", + "description": "The Akamai Cloud Computing service being monitored. To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation and store the appropriate `service_type`.", + "example": "{{serviceType}}", "in": "path", - "name": "service_type", + "name": "serviceType", "required": true, "schema": { - "enum": [ - "dbaas" - ], "example": "dbaas", "type": "string" }, @@ -90588,13 +99598,13 @@ ], "x-akamai": { "file-path": "paths/aclp-get-metrics-info.yaml", - "path-info": "/{apiVersion}/monitor/services/{service_type}/metric-definitions" + "path-info": "/{apiVersion}/monitor/services/{serviceType}/metric-definitions" }, "x-linode-cli-command": "monitor" }, - "/{apiVersion}/monitor/services/{service_type}/metrics": { + "/{apiVersion}/monitor/services/{serviceType}/metrics": { "post": { - "description": "__Beta__ Returns metrics information for the individual entities within a specific service type. Include the appropriate `service_type` as a path parameter. Requires an `authorization: Bearer` [token](https://techdocs.akamai.com/linode-api/reference/post-get-token) you've created for this `service_type`.\n\n> \ud83d\udcd8\n>\n> - Currently, only the Managed Databases (`dbaas`) service type is supported.\n>\n> - This operation uses a different URL and version from standard Linode API operations. Verify you're using the URL with the `monitor-api.linode.com` hostname and include `v2beta` as the version in the URL.", + "description": "__Beta__ Returns metrics information for the individual entities within a specific service type. Thi operation also requires an `authorization: Bearer` [token](https://techdocs.akamai.com/linode-api/reference/post-get-token) you've created for this `serviceType`.\n\n> \ud83d\udcd8\n>\n> - This operation uses a different URL and version from standard Linode API operations. Verify you're using the URL with the `monitor-api.linode.com` hostname and include `v2beta` as the version in the URL.\n>\n> - For more details on the metrics available for each service, see the [Metrics reference](https://techdocs.akamai.com/cloud-computing/docs/metrics-dimensions-parameters).", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-read-metric" @@ -90620,6 +99630,10 @@ "value": "primary" } ], + "group_by": [ + "entity_id", + "node_type" + ], "metrics": [ { "aggregate_function": "avg", @@ -90690,6 +99704,17 @@ }, "type": "array" }, + "group_by": { + "description": "Categorizes response data based on the specified fields:\n\n* `entity_id`. Include this parameter by name to group the response data using the `entity_id` values included in the request.\n\n* `dimension_label`. This represents the desired dimension from a monitoring metric. To get a `dimension_label`, run the [List metrics for a service type](https://techdocs.akamai.com/linode-api/reference/get-monitor-information) operation, review the available `dimensions`, and store the applicable `dimension_label` values.\n\nYou can group these fields using these combinations:\n\n* Group by `entity_id` values and one or more `dimensions_label` values. For example, `[entity_id, node_type]` groups response data based on values set for the `entity_id` parameter and the `node_type` dimension that's available for a `service_type` of `dbaas`.\n\n* Group by only the `entity_id` values. For example, `[entity_id]` exclusively groups response data based on values set for the `entity_id` parameter.\n\n* Group by one or more `dimension_label` values. For example, `[node_type]` groups response data based on the `node_type` dimension that's available for a `service_type` of `dbaas`.\n\nIf you leave this out of a request, data is aggregated across all series.", + "items": { + "example": [ + "entity_id", + "node_type" + ], + "type": "string" + }, + "type": "array" + }, "metrics": { "description": "A list of metric objects, each specifying a metric name and its corresponding aggregation function.", "example": [ @@ -90851,6 +99876,17 @@ }, "type": "array" }, + "group_by": { + "description": "Categorizes response data based on the specified fields:\n\n* `entity_id`. Include this parameter by name to group the response data using the `entity_id` values included in the request.\n\n* `dimension_label`. This represents the desired dimension from a monitoring metric. To get a `dimension_label`, run the [List metrics for a service type](https://techdocs.akamai.com/linode-api/reference/get-monitor-information) operation, review the available `dimensions`, and store the applicable `dimension_label` values.\n\nYou can group these fields using these combinations:\n\n* Group by `entity_id` values and one or more `dimensions_label` values. For example, `[entity_id, node_type]` groups response data based on values set for the `entity_id` parameter and the `node_type` dimension that's available for a `service_type` of `dbaas`.\n\n* Group by only the `entity_id` values. For example, `[entity_id]` exclusively groups response data based on values set for the `entity_id` parameter.\n\n* Group by one or more `dimension_label` values. For example, `[node_type]` groups response data based on the `node_type` dimension that's available for a `service_type` of `dbaas`.\n\nIf you leave this out of a request, data is aggregated across all series.", + "items": { + "example": [ + "entity_id", + "node_type" + ], + "type": "string" + }, + "type": "array" + }, "metrics": { "description": "A list of metric objects, each specifying a metric name and its corresponding aggregation function.", "example": [ @@ -91184,15 +100220,12 @@ }, "parameters": [ { - "description": "__Enum__ The Akamai Cloud Computing service being monitored. Currently, only the Managed Databases (`dbaas`) service type is supported.", - "example": "{{service_type}}", + "description": "The Akamai Cloud Computing service being monitored. To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation and store the appropriate `service_type`.", + "example": "{{serviceType}}", "in": "path", - "name": "service_type", + "name": "serviceType", "required": true, "schema": { - "enum": [ - "dbaas" - ], "example": "dbaas", "type": "string" }, @@ -91220,13 +100253,13 @@ "x-akamai": { "auth-type": "JWT", "file-path": "paths/aclp-metric-read.yaml", - "path-info": "/{apiVersion}/monitor/services/{service-type}/metrics" + "path-info": "/{apiVersion}/monitor/services/{serviceType}/metrics" }, "x-linode-cli-command": "metric" }, - "/{apiVersion}/monitor/services/{service_type}/token": { + "/{apiVersion}/monitor/services/{serviceType}/token": { "post": { - "description": "__Beta__ Returns a token that authenticates requests for the entities within a specific service type. Include the appropriate `service_type` as a path parameter. The token has a lifetime of six hours after you create it. For an example of the token generation process, see [Monitor API operation authentication](https://techdocs.akamai.com/linode-api/docs/get-started#monitor-api-operation-authentication).\n\n> \ud83d\udcd8\n>\n> - This operation is beta. Call it using the `v4beta` path in its URL.\n>\n> - Currently, only the Managed Databases (`dbaas`) service type is supported.\n>\n> - You also need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the selected `service_type`.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli monitor token-get dbaas \\\n--entity_ids 189690 \\\n--entity_ids 188020 --json\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only, :read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "__Beta__ Returns a token that authenticates requests for the entities within a specific service type. The token has a lifetime of six hours after you create it. For an example of the token generation process, see [Authenticate Monitor API operations](https://techdocs.akamai.com/linode-api/reference/get-started#authenticate-monitor-api-operations).\n\n> \ud83d\udcd8\n>\n> - This operation is beta. Call it using the `v4beta` path in its URL.\n>\n> - To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation.\n>\n> - You also need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the specified `serviceType`.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli monitor token-get dbaas \\\n--entity_ids 189690 \\\n--entity_ids 188020 --json\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n monitor:read_only, :read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-get-token" @@ -91383,15 +100416,12 @@ } }, { - "description": "__Enum__ The Akamai Cloud Computing service being monitored. Currently, only the Managed Databases (`dbaas`) service type is supported.", - "example": "{{service_type}}", + "description": "The Akamai Cloud Computing service being monitored. To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation and store the appropriate `service_type`.", + "example": "{{serviceType}}", "in": "path", - "name": "service_type", + "name": "serviceType", "required": true, "schema": { - "enum": [ - "dbaas" - ], "example": "dbaas", "type": "string" }, @@ -91402,10 +100432,262 @@ ], "x-akamai": { "file-path": "paths/aclp-get-token.yaml", - "path-info": "/{apiVersion}/monitor/services/{service-type}/token" + "path-info": "/{apiVersion}/monitor/services/{serviceType}/token" }, "x-linode-cli-command": "monitor" }, + "/{apiVersion}/monitor/streams": { + "parameters": [ + { + "description": "__Enum__ Call the `v4beta` URL for operations still only in beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4beta" + ], + "example": "v4beta", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-v4beta-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/aclp-streams.yaml", + "path-info": "/{apiVersion}/monitor/streams" + }, + "x-linode-cli-command": "streams" + }, + "/{apiVersion}/monitor/streams/destinations": { + "parameters": [ + { + "description": "__Enum__ Call the `v4beta` URL for operations still only in beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4beta" + ], + "example": "v4beta", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-v4beta-path.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/aclp-stream-destinations.yaml", + "path-info": "/{apiVersion}/monitor/streams/destinations" + }, + "x-linode-cli-command": "streams" + }, + "/{apiVersion}/monitor/streams/destinations/{destinationId}": { + "parameters": [ + { + "description": "__Enum__ Call the `v4beta` URL for operations still only in beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4beta" + ], + "example": "v4beta", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-v4beta-path.yaml" + } + }, + { + "description": "The unique identifier assigned to the logs destination. Run the [List destinations](https://techdocs.akamai.com/linode-api/reference/get-destinations) operation and store the `id` for the applicable destination.", + "example": "{{destinationId}}", + "in": "path", + "name": "destinationId", + "required": true, + "schema": { + "example": 234, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/aclp-destination-id.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/aclp-stream-destination.yaml", + "path-info": "/{apiVersion}/monitor/streams/destinations/{destinationId}" + }, + "x-linode-cli-command": "streams" + }, + "/{apiVersion}/monitor/streams/destinations/{destinationId}/history": { + "parameters": [ + { + "description": "__Enum__ Call the `v4beta` URL for operations still only in beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4beta" + ], + "example": "v4beta", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-v4beta-path.yaml" + } + }, + { + "description": "The unique identifier assigned to the logs destination. Run the [List destinations](https://techdocs.akamai.com/linode-api/reference/get-destinations) operation and store the `id` for the applicable destination.", + "example": "{{destinationId}}", + "in": "path", + "name": "destinationId", + "required": true, + "schema": { + "example": 234, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/aclp-destination-id.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/aclp-stream-destination-history.yaml", + "path-info": "/{apiVersion}/monitor/streams/destinations/{destinationId}/history" + }, + "x-linode-cli-command": "streams" + }, + "/{apiVersion}/monitor/streams/{streamId}": { + "parameters": [ + { + "description": "__Enum__ Call the `v4beta` URL for operations still only in beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4beta" + ], + "example": "v4beta", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-v4beta-path.yaml" + } + }, + { + "description": "The unique identifier assigned to the stream. Run the [List streams](https://techdocs.akamai.com/linode-api/reference/get-streams) operation and store the `id` for the applicable stream.", + "example": "{{streamId}}", + "in": "path", + "name": "streamId", + "required": true, + "schema": { + "example": 890, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/aclp-stream-id.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/aclp-stream.yaml", + "path-info": "/{apiVersion}/monitor/streams/{streamId}" + }, + "x-linode-cli-command": "streams" + }, + "/{apiVersion}/monitor/streams/{streamId}/history": { + "parameters": [ + { + "description": "__Enum__ Call the `v4beta` URL for operations still only in beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4beta" + ], + "example": "v4beta", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-v4beta-path.yaml" + } + }, + { + "description": "The unique identifier assigned to the stream. Run the [List streams](https://techdocs.akamai.com/linode-api/reference/get-streams) operation and store the `id` for the applicable stream.", + "example": "{{streamId}}", + "in": "path", + "name": "streamId", + "required": true, + "schema": { + "example": 890, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/aclp-stream-id.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/aclp-stream-history.yaml", + "path-info": "/{apiVersion}/monitor/streams/{streamId}/history" + }, + "x-linode-cli-command": "streams" + }, + "/{apiVersion}/monitor/streams/{streamId}/stats": { + "parameters": [ + { + "description": "__Enum__ Call the `v4beta` URL for operations still only in beta.", + "example": "{{apiVersion}}", + "in": "path", + "name": "apiVersion", + "required": true, + "schema": { + "enum": [ + "v4beta" + ], + "example": "v4beta", + "type": "string" + }, + "x-akamai": { + "file-path": "parameters/api-version-v4beta-path.yaml" + } + }, + { + "description": "The unique identifier assigned to the stream. Run the [List streams](https://techdocs.akamai.com/linode-api/reference/get-streams) operation and store the `id` for the applicable stream.", + "example": "{{streamId}}", + "in": "path", + "name": "streamId", + "required": true, + "schema": { + "example": 890, + "type": "integer" + }, + "x-akamai": { + "file-path": "parameters/aclp-stream-id.yaml" + } + } + ], + "x-akamai": { + "file-path": "paths/aclp-stream-stats.yaml", + "path-info": "/{apiVersion}/monitor/streams/{streamId}/stats" + }, + "x-linode-cli-command": "streams" + }, "/{apiVersion}/network-transfer/prices": { "get": { "description": "Returns collection of network transfer prices, including any region-specific rates.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli network-transfer prices\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", @@ -91657,7 +100939,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this Firewall was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -91669,6 +100951,85 @@ "x-linode-cli-display": 4, "x-linode-filterable": true }, + "entities": { + "description": "__Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "The entity's ID.", + "example": 123, + "type": "integer" + }, + "label": { + "description": "__Read-only__ The entity's label.", + "example": "my-linode", + "readOnly": true, + "type": "string" + }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a `linode`.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, + "type": { + "description": "The entity's type.", + "enum": [ + "linode", + "linode_interface", + "nodebalancer" + ], + "example": "linode_interface", + "type": "string" + }, + "url": { + "description": "__Read-only__ The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/123", + "format": "url", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, "id": { "description": "__Filterable__, __Read-only__ The Firewall's unique ID.", "example": 123, @@ -91888,7 +101249,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -91931,7 +101292,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this Firewall was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -91955,7 +101316,7 @@ "additionalProperties": false, "description": "Devices to create for this firewall. When a device is created, the firewall is assigned to its associated service. Currently, devices can be created for Linodes using legacy configuration profiles, Linode interfaces, and NodeBalancers. Firewall devices can't be created for individual legacy configuration profile interfaces.\n\nAdditional devices can be assigned after Firewall creation by using the [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) operation.", "properties": { - "interfaces": { + "linode_interfaces": { "description": "An array of Linode interface IDs. A firewall device is created for each ID. For Linodes using Linode interfaces, firewalls need to be assigned to Linode interfaces and not the Linode.", "example": [ 321 @@ -92038,7 +101399,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this Firewall was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -92050,6 +101411,85 @@ "x-linode-cli-display": 4, "x-linode-filterable": true }, + "entities": { + "description": "__Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "The entity's ID.", + "example": 123, + "type": "integer" + }, + "label": { + "description": "__Read-only__ The entity's label.", + "example": "my-linode", + "readOnly": true, + "type": "string" + }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a `linode`.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, + "type": { + "description": "The entity's type.", + "enum": [ + "linode", + "linode_interface", + "nodebalancer" + ], + "example": "linode_interface", + "type": "string" + }, + "url": { + "description": "__Read-only__ The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/123", + "format": "url", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, "id": { "description": "__Filterable__, __Read-only__ The Firewall's unique ID.", "example": 123, @@ -92269,7 +101709,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -92312,7 +101752,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this Firewall was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -92450,6 +101890,91 @@ "200": { "content": { "application/json": { + "example": { + "created": "2025-05-01T15:12:51", + "entities": [ + { + "id": 5000, + "label": "linode5000", + "parent_entity": null, + "type": "linode", + "url": "/v4/linode/instances/5000" + }, + { + "id": 2, + "label": null, + "parent_entity": { + "id": 5000, + "label": "linode5000", + "parent_entity": null, + "type": "linode", + "url": "/v4/linode/instances/5000" + }, + "type": "interface", + "url": "/v4/linode/instances/506963/interfaces/2" + }, + { + "id": 6, + "label": null, + "parent_entity": { + "id": 5000, + "label": "linode506969", + "parent_entity": null, + "type": "linode", + "url": "/v4/linode/instances/506969" + }, + "type": "interface", + "url": "/v4/linode/instances/506969/interfaces/6" + } + ], + "id": 1, + "label": "myfw", + "rules": { + "fingerprint": "9eb911da", + "inbound": [ + { + "action": "ACCEPT", + "addresses": { + "ipv4": [ + "192.0.2.0/24", + "198.51.100.2/32" + ], + "ipv6": [ + "2001:DB8::/128" + ] + }, + "description": "An example firewall rule description.", + "label": "firewallrule123", + "ports": "22-24, 80, 443", + "protocol": "TCP" + } + ], + "inbound_policy": "DROP", + "outbound": [ + { + "action": "ACCEPT", + "addresses": { + "ipv4": [ + "192.0.2.0/24", + "198.51.100.2/32" + ], + "ipv6": [ + "2001:DB8::/128" + ] + }, + "description": "An example firewall rule description.", + "label": "firewallrule123", + "ports": "22-24, 80, 443", + "protocol": "TCP" + } + ], + "outbound_policy": "ACCEPT", + "version": 1 + }, + "status": "enabled", + "tags": [], + "updated": "2025-05-01T15:12:51" + }, "schema": { "additionalProperties": false, "properties": { @@ -92460,7 +101985,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this Firewall was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -92472,6 +101997,85 @@ "x-linode-cli-display": 4, "x-linode-filterable": true }, + "entities": { + "description": "__Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "The entity's ID.", + "example": 123, + "type": "integer" + }, + "label": { + "description": "__Read-only__ The entity's label.", + "example": "my-linode", + "readOnly": true, + "type": "string" + }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a `linode`.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, + "type": { + "description": "The entity's type.", + "enum": [ + "linode", + "linode_interface", + "nodebalancer" + ], + "example": "linode_interface", + "type": "string" + }, + "url": { + "description": "__Read-only__ The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/123", + "format": "url", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, "id": { "description": "__Filterable__, __Read-only__ The Firewall's unique ID.", "example": 123, @@ -92691,7 +102295,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -92734,7 +102338,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this Firewall was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -92777,9 +102381,6 @@ "x-akamai": { "file-path": "schemas/added-get-firewalls-200.yaml" } - }, - "x-example": { - "x-ref": "../examples/get-firewalls-200.json" } } }, @@ -93485,7 +103086,7 @@ "x-linode-cli-format": "json" }, "inbound_policy": { - "description": "The default behavior for inbound traffic. The default behavior for inbound traffic. You can override this setting by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound` object's `action` field.", + "description": "The default behavior for inbound traffic. You can override this setting by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound` object's `action` field.", "enum": [ "ACCEPT", "DROP" @@ -93577,12 +103178,12 @@ "x-linode-cli-format": "json" }, "outbound_policy": { - "description": "The default behavior for outbound traffic. The default behavior for inbound traffic. You can override this setting by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound` object's `action` fields.", + "description": "The default behavior for outbound traffic. You can override this setting by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound` object's `action` fields.", "enum": [ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" } }, @@ -94016,7 +103617,7 @@ "x-linode-cli-format": "json" }, "inbound_policy": { - "description": "The default behavior for inbound traffic. The default behavior for inbound traffic. You can override this setting by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound` object's `action` field.", + "description": "The default behavior for inbound traffic. You can override this setting by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound` object's `action` field.", "enum": [ "ACCEPT", "DROP" @@ -94108,12 +103709,12 @@ "x-linode-cli-format": "json" }, "outbound_policy": { - "description": "The default behavior for outbound traffic. The default behavior for inbound traffic. You can override this setting by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound` object's `action` fields.", + "description": "The default behavior for outbound traffic. You can override this setting by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound` object's `action` fields.", "enum": [ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" } }, @@ -94306,7 +103907,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this Firewall was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -94318,6 +103919,85 @@ "x-linode-cli-display": 4, "x-linode-filterable": true }, + "entities": { + "description": "__Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "The entity's ID.", + "example": 123, + "type": "integer" + }, + "label": { + "description": "__Read-only__ The entity's label.", + "example": "my-linode", + "readOnly": true, + "type": "string" + }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a `linode`.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, + "type": { + "description": "The entity's type.", + "enum": [ + "linode", + "linode_interface", + "nodebalancer" + ], + "example": "linode_interface", + "type": "string" + }, + "url": { + "description": "__Read-only__ The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/123", + "format": "url", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, "id": { "description": "__Filterable__, __Read-only__ The Firewall's unique ID.", "example": 123, @@ -94537,7 +104217,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -94580,7 +104260,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this Firewall was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -94750,7 +104430,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this Firewall was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -94762,6 +104442,85 @@ "x-linode-cli-display": 4, "x-linode-filterable": true }, + "entities": { + "description": "__Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "The entity's ID.", + "example": 123, + "type": "integer" + }, + "label": { + "description": "__Read-only__ The entity's label.", + "example": "my-linode", + "readOnly": true, + "type": "string" + }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a `linode`.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, + "type": { + "description": "The entity's type.", + "enum": [ + "linode", + "linode_interface", + "nodebalancer" + ], + "example": "linode_interface", + "type": "string" + }, + "url": { + "description": "__Read-only__ The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/123", + "format": "url", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, "id": { "description": "__Filterable__, __Read-only__ The Firewall's unique ID.", "example": 123, @@ -94981,7 +104740,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -95024,7 +104783,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this Firewall was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -95255,7 +105014,7 @@ }, "/{apiVersion}/networking/firewalls/{firewallId}/devices": { "post": { - "description": "Creates a firewall device, which assigns a firewall to a service (referred to as the device's `entity`) and applies the firewall's rules to the device.\n\n- Currently, devices with `linode`, `interface`, and `nodebalancer` entity types are accepted.\n - The `linode` type is not allowed for Linodes using Linode interfaces.\n - The `interface` type is not allowed for legacy config interfaces. For VPC and public legacy config profile interfaces, the firewall is applied through the `linode` device.\n\n- Firewalls only apply to inbound TCP traffic to NodeBalancers.\n\n- A firewall can be assigned to multiple services at a time.\n\n- A service can have one assigned firewall at a time.\n\n- Assigned Linodes must not have any ongoing live migrations.\n\n- A `firewall_device_add` event is generated when the firewall device is added successfully.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli firewalls device-create 123 \\\n --id 456 \\\n --type \"linode\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n firewall:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Creates a firewall device, which assigns a firewall to a service (referred to as the device's `entity`) and applies the firewall's rules to the device.\n\n- Currently, devices with `linode`, `linode_interface`, and `nodebalancer` entity types are accepted.\n - The `linode` type is not allowed for Linodes using Linode interfaces.\n - The `linode_interface` type is not allowed for legacy config interfaces. For VPC and public legacy config profile interfaces, the firewall is applied through the `linode` device.\n\n- Firewalls only apply to inbound TCP traffic to NodeBalancers.\n\n- A firewall can be assigned to multiple services at a time.\n\n- A service can have one assigned firewall at a time.\n\n- Assigned Linodes must not have any ongoing live migrations.\n\n- A `firewall_device_add` event is generated when the firewall device is added successfully.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli firewalls device-create 123 \\\n --id 456 \\\n --type \"linode\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n firewall:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-firewall-device" @@ -95268,7 +105027,7 @@ "allOf": [ { "additionalProperties": false, - "description": "__Read-only__ The compute service or interface this firewall is assigned to.", + "description": "The Linode, NodeBalancer, or Linode interface this firewall is assigned to.", "properties": { "id": { "description": "The entity's ID.", @@ -95281,12 +105040,52 @@ "readOnly": true, "type": "string" }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a Linode.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, "type": { "description": "The entity's type.", "enum": [ "linode", "nodebalancer", - "interface" + "linode_interface" ], "example": "linode", "type": "string" @@ -95299,7 +105098,6 @@ "type": "string" } }, - "readOnly": true, "type": "object" } ], @@ -95328,7 +105126,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this device was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -95342,7 +105140,7 @@ }, "entity": { "additionalProperties": false, - "description": "__Read-only__ The compute service or interface this firewall is assigned to.", + "description": "The Linode, NodeBalancer, or Linode interface this firewall is assigned to.", "properties": { "id": { "description": "The entity's ID.", @@ -95355,12 +105153,52 @@ "readOnly": true, "type": "string" }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a Linode.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, "type": { "description": "The entity's type.", "enum": [ "linode", "nodebalancer", - "interface" + "linode_interface" ], "example": "linode", "type": "string" @@ -95373,7 +105211,6 @@ "type": "string" } }, - "readOnly": true, "type": "object" }, "id": { @@ -95390,7 +105227,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this device was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -95538,6 +105375,7 @@ "entity": { "id": 123, "label": "my-linode", + "parent_entity": null, "type": "linode", "url": "/v4/linode/instances/123" }, @@ -95549,6 +105387,7 @@ "entity": { "id": 321, "label": "my-nodebalancer", + "parent_entity": null, "type": "nodebalancer", "url": "/v4/nodebalancers/1234" }, @@ -95560,8 +105399,15 @@ "entity": { "id": 321, "label": "my-interface", - "type": "interface", - "url": "/v4/linode/instances/123/interfaces/12345" + "parent_entity": { + "id": 5000, + "label": "linode5000", + "parent_entity": null, + "type": "linode", + "url": "/v4/linode/instances/5000" + }, + "type": "linode_interface", + "url": "/v4/linode/instances/123/linode_interface/12345" }, "id": 654, "updated": "2025-01-02 00:01:01" @@ -95573,7 +105419,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this device was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -95587,7 +105433,7 @@ }, "entity": { "additionalProperties": false, - "description": "__Read-only__ The compute service or interface this firewall is assigned to.", + "description": "The Linode, NodeBalancer, or Linode interface this firewall is assigned to.", "properties": { "id": { "description": "The entity's ID.", @@ -95600,12 +105446,52 @@ "readOnly": true, "type": "string" }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a Linode.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, "type": { "description": "The entity's type.", "enum": [ "linode", "nodebalancer", - "interface" + "linode_interface" ], "example": "linode", "type": "string" @@ -95618,7 +105504,6 @@ "type": "string" } }, - "readOnly": true, "type": "object" }, "id": { @@ -95635,7 +105520,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this device was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -95811,7 +105696,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this device was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -95825,7 +105710,7 @@ }, "entity": { "additionalProperties": false, - "description": "__Read-only__ The compute service or interface this firewall is assigned to.", + "description": "The Linode, NodeBalancer, or Linode interface this firewall is assigned to.", "properties": { "id": { "description": "The entity's ID.", @@ -95838,12 +105723,52 @@ "readOnly": true, "type": "string" }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a Linode.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, "type": { "description": "The entity's type.", "enum": [ "linode", "nodebalancer", - "interface" + "linode_interface" ], "example": "linode", "type": "string" @@ -95856,7 +105781,6 @@ "type": "string" } }, - "readOnly": true, "type": "object" }, "id": { @@ -95873,7 +105797,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this device was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -96131,7 +106055,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this Firewall was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -96143,6 +106067,85 @@ "x-linode-cli-display": 4, "x-linode-filterable": true }, + "entities": { + "description": "__Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "The entity's ID.", + "example": 123, + "type": "integer" + }, + "label": { + "description": "__Read-only__ The entity's label.", + "example": "my-linode", + "readOnly": true, + "type": "string" + }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a `linode`.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, + "type": { + "description": "The entity's type.", + "enum": [ + "linode", + "linode_interface", + "nodebalancer" + ], + "example": "linode_interface", + "type": "string" + }, + "url": { + "description": "__Read-only__ The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/123", + "format": "url", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, "id": { "description": "__Filterable__, __Read-only__ The Firewall's unique ID.", "example": 123, @@ -96362,7 +106365,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -96405,7 +106408,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this Firewall was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -96555,7 +106558,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this Firewall was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -96567,6 +106570,85 @@ "x-linode-cli-display": 4, "x-linode-filterable": true }, + "entities": { + "description": "__Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "The entity's ID.", + "example": 123, + "type": "integer" + }, + "label": { + "description": "__Read-only__ The entity's label.", + "example": "my-linode", + "readOnly": true, + "type": "string" + }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a `linode`.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, + "type": { + "description": "The entity's type.", + "enum": [ + "linode", + "linode_interface", + "nodebalancer" + ], + "example": "linode_interface", + "type": "string" + }, + "url": { + "description": "__Read-only__ The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/123", + "format": "url", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, "id": { "description": "__Filterable__, __Read-only__ The Firewall's unique ID.", "example": 123, @@ -96786,7 +106868,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -96829,7 +106911,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this Firewall was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -97178,7 +107260,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -97472,7 +107554,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -97711,7 +107793,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -116068,7 +126150,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this Firewall was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -116080,6 +126162,85 @@ "x-linode-cli-display": 4, "x-linode-filterable": true }, + "entities": { + "description": "__Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "The entity's ID.", + "example": 123, + "type": "integer" + }, + "label": { + "description": "__Read-only__ The entity's label.", + "example": "my-linode", + "readOnly": true, + "type": "string" + }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a `linode`.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, + "type": { + "description": "The entity's type.", + "enum": [ + "linode", + "linode_interface", + "nodebalancer" + ], + "example": "linode_interface", + "type": "string" + }, + "url": { + "description": "__Read-only__ The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/123", + "format": "url", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, "id": { "description": "__Filterable__, __Read-only__ The Firewall's unique ID.", "example": 123, @@ -116299,7 +126460,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -116342,7 +126503,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this Firewall was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -116492,7 +126653,10 @@ "properties": { "firewall_ids": { "description": "A complete list of firewall IDs to assign to this Linode or NodeBalancer. This operation replaces any existing assignments. To remove all firewalls, pass an empty list, `[]`.", - "example": 1234, + "example": [ + 1, + 2 + ], "items": { "type": "integer" }, @@ -116616,7 +126780,7 @@ "properties": { "created": { "description": "__Filterable__, __Read-only__ When this Firewall was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -116628,6 +126792,85 @@ "x-linode-cli-display": 4, "x-linode-filterable": true }, + "entities": { + "description": "__Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "The entity's ID.", + "example": 123, + "type": "integer" + }, + "label": { + "description": "__Read-only__ The entity's label.", + "example": "my-linode", + "readOnly": true, + "type": "string" + }, + "parent_entity": { + "additionalProperties": false, + "description": "__Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`.", + "nullable": true, + "properties": { + "id": { + "description": "The ID of the Linode assigned to this `linode_interface`.", + "example": 5000, + "type": "integer" + }, + "label": { + "description": "The name of the Linode this `linode_interface` is assigned to.", + "example": "linode5000", + "type": "string" + }, + "parent_entity": { + "description": "__Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`.", + "example": null, + "nullable": true, + "readOnly": true, + "type": "string" + }, + "type": { + "description": "A Linode interface\u2019s `parent_entity` is a `linode`.", + "enum": [ + "linode" + ], + "example": "linode", + "type": "string" + }, + "url": { + "description": "The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/5000", + "format": "url", + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, + "type": { + "description": "The entity's type.", + "enum": [ + "linode", + "linode_interface", + "nodebalancer" + ], + "example": "linode_interface", + "type": "string" + }, + "url": { + "description": "__Read-only__ The API URL path you can use to access this entity.", + "example": "/v4/linode/instances/123", + "format": "url", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array" + }, "id": { "description": "__Filterable__, __Read-only__ The Firewall's unique ID.", "example": 123, @@ -116847,7 +127090,7 @@ "ACCEPT", "DROP" ], - "example": "DROP", + "example": "ACCEPT", "type": "string" }, "version": { @@ -116890,7 +127133,7 @@ }, "updated": { "description": "__Filterable__, __Read-only__ When this Firewall was last updated.", - "example": "2018-01-02T00:01:01", + "example": "2025-01-02T00:01:01", "format": "date-time", "readOnly": true, "type": "string", @@ -117675,7 +127918,7 @@ }, "/{apiVersion}/object-storage/buckets": { "post": { - "description": "Creates an Object Storage bucket in the specified data center ([region](https://techdocs.akamai.com/linode-api/reference/get-regions)). If the bucket already exists on your account, this operation returns a 200 response with that bucket as if the API just created it.\n\n> \ud83d\udcd8\n>\n> - Accounts with negative balances can't access this operation.\n>\n> - The API still supports the `clusterId` equivalent (`us-west-1`) when setting a `region` for a new bucket, but you should use the `regionId` (`us-west`) instead.\n>\n> - You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#put-bucket) for more options.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Creates an Object Storage bucket in the specified data center ([region](https://techdocs.akamai.com/linode-api/reference/get-regions)). If the bucket already exists on your account, this operation returns a 200 response with that bucket as if the API just created it.\n\n> \ud83d\udcd8\n>\n> - Accounts with negative balances can't access this operation.\n>\n> - The API still supports the `clusterId` equivalent (`us-west-1`) when setting a `region` for a new bucket, but you should use the `regionId` (`us-west`) instead.\n>\n> - This operation has specific [rate limits](https://techdocs.akamai.com/linode-api/reference/rate-limits#specific-operation-rate-limits).\n>\n> - You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#put-bucket) for more options.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-object-storage-bucket" @@ -117733,12 +127976,11 @@ } }, "required": [ - "label", - "cluster" + "label" ], "type": "object", "x-akamai": { - "file-path": "schemas/added-post-object-storage-bucket.yaml" + "file-path": "schemas/post-object-storage-bucket.yaml" } }, "x-example": { @@ -117991,7 +128233,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-object-storage-buckets-200.yaml" + "file-path": "schemas/get-object-storage-buckets-200.yaml" } }, "x-example": { @@ -118083,7 +128325,7 @@ } ], "x-akamai": { - "file-path": "paths/buckets.yaml", + "file-path": "paths/object-storage-buckets.yaml", "path-info": "/{apiVersion}/object-storage/buckets" } }, @@ -118192,7 +128434,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-object-storage-bucketin-cluster-200.yaml" + "file-path": "schemas/get-object-storage-bucketin-cluster-200.yaml" } }, "x-example": { @@ -118298,7 +128540,7 @@ } ], "x-akamai": { - "file-path": "paths/buckets-region.yaml", + "file-path": "paths/object-storage-buckets-region.yaml", "path-info": "/{apiVersion}/object-storage/buckets/{regionId}" } }, @@ -118584,7 +128826,7 @@ } ], "x-akamai": { - "file-path": "paths/bucket.yaml", + "file-path": "paths/object-storage-bucket.yaml", "path-info": "/{apiVersion}/object-storage/buckets/{regionId}/{bucket}" } }, @@ -118622,7 +128864,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-post-object-storage-bucket-access.yaml" + "file-path": "schemas/post-object-storage-bucket-access.yaml" } }, "x-example": { @@ -118699,7 +128941,7 @@ ], "summary": "Allow access to an Object Storage bucket", "tags": [ - "Bucket access" + "Buckets" ], "x-akamai": { "tabs": [ @@ -118817,7 +129059,7 @@ ], "summary": "Get Object Storage bucket access", "tags": [ - "Bucket access" + "Buckets" ], "x-akamai": { "tabs": [ @@ -118863,7 +129105,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-put-storage-bucket-access.yaml" + "file-path": "schemas/put-storage-bucket-access.yaml" } }, "x-example": { @@ -118940,7 +129182,7 @@ ], "summary": "Update access to an Object Storage bucket", "tags": [ - "Bucket access" + "Buckets" ], "x-akamai": { "tabs": [ @@ -119000,7 +129242,7 @@ } ], "x-akamai": { - "file-path": "paths/access.yaml", + "file-path": "paths/object-storage-access.yaml", "path-info": "/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/access" } }, @@ -119054,7 +129296,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-object-storage-bucket-acl-200.yaml" + "file-path": "schemas/get-object-storage-bucket-acl-200.yaml" } }, "x-example": { @@ -119113,7 +129355,7 @@ ], "summary": "Get an Object Storage object ACL configuration", "tags": [ - "ACL configurations" + "Buckets" ], "x-akamai": { "tabs": [ @@ -119163,7 +129405,7 @@ ], "type": "object", "x-akamai": { - "file-path": "schemas/added-put-object-storage-bucket-acl.yaml" + "file-path": "schemas/put-object-storage-bucket-acl.yaml" } }, "x-example": { @@ -119240,7 +129482,7 @@ ], "summary": "Update an object's ACL configuration", "tags": [ - "ACL configurations" + "Buckets" ], "x-akamai": { "tabs": [ @@ -119300,7 +129542,7 @@ } ], "x-akamai": { - "file-path": "paths/object-acl.yaml", + "file-path": "paths/object-storage-object-acl.yaml", "path-info": "/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/object-acl" } }, @@ -119429,7 +129671,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-object-storage-bucket-content-200.yaml" + "file-path": "schemas/get-object-storage-bucket-content-200.yaml" } }, "x-example": { @@ -119488,7 +129730,7 @@ ], "summary": "List Object Storage bucket contents", "tags": [ - "Bucket contents" + "Buckets" ], "x-akamai": { "tabs": [ @@ -119548,7 +129790,7 @@ } ], "x-akamai": { - "file-path": "paths/object-list.yaml", + "file-path": "paths/object-storage-object-list.yaml", "path-info": "/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/object-list" } }, @@ -119599,7 +129841,7 @@ ], "type": "object", "x-akamai": { - "file-path": "schemas/added-post-object-storage-object-url.yaml" + "file-path": "schemas/post-object-storage-object-url.yaml" } }, "x-example": { @@ -119624,7 +129866,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-post-object-storage-object-url-200.yaml" + "file-path": "schemas/post-object-storage-object-url-200.yaml" } }, "x-example": { @@ -119743,7 +129985,7 @@ } ], "x-akamai": { - "file-path": "paths/object-url.yaml", + "file-path": "paths/object-storage-object-url.yaml", "path-info": "/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/object-url" } }, @@ -120124,7 +130366,7 @@ } ], "x-akamai": { - "file-path": "paths/bucket-ssl.yaml", + "file-path": "paths/object-storage-bucket-ssl.yaml", "path-info": "/{apiVersion}/object-storage/buckets/{regionId}/{bucket}/ssl" }, "x-linode-cli-command": "object-storage" @@ -120327,7 +130569,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-object-storage-clusters-200.yaml" + "file-path": "schemas/get-object-storage-clusters-200.yaml" } }, "x-example": { @@ -120568,7 +130810,7 @@ }, "/{apiVersion}/object-storage/endpoints": { "get": { - "description": "Returns a paginated list of all Object Storage endpoints available in your account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage endpoints\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of all Object Storage [endpoints](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) available in your account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage endpoints\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-object-storage-endpoints" @@ -120578,6 +130820,18 @@ "200": { "content": { "application/json": { + "example": { + "data": [ + { + "endpoint_type": "E1", + "region": "us-iad", + "s3_endpoint": "us-iad-1.linodeobjects.com" + } + ], + "page": 1, + "pages": 1, + "results": 1 + }, "schema": { "allOf": [ { @@ -120653,11 +130907,8 @@ } ], "x-akamai": { - "file-path": "schemas/added-get-object-storage-endpoints-200.yaml" + "file-path": "schemas/get-object-storage-endpoints-200.yaml" } - }, - "x-example": { - "x-ref": "../examples/added-get-object-storage-endpoints-200.json" } } }, @@ -120757,7 +131008,7 @@ }, "/{apiVersion}/object-storage/keys": { "post": { - "description": "Provisions a new Object Storage key for authentication. A successful request triggers an `obj_access_key_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n> \ud83d\udcd8\n>\n> Accounts with negative balances can't access this operation.\n\n**Create an unlimited access key**\n\nThis type of key grants full access to all of your buckets in each region you name, using the `regions` array. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation, verify that each desired region includes `\"Object Storage\"` among its `capabilities`, and store the `id` value for each. Leave the `bucket_access` array out to create an unlimited access key.\n\nCheck out this [example workflow](https://techdocs.akamai.com/linode-api/reference/create-an-unlimited-access-key) for an unlimited access key.\n\n**Create a limited access key**\n\nThis type of key lets you name specific buckets where you need to manage content. In the `bucket_access` array, include individual objects for each bucket, comprised of the target `bucket_name`, the `permissions` level for access to the bucket, and the `region` where the bucket lives. Run the [List Object Storage buckets](https://techdocs.akamai.com/linode-api/reference/get-object-storage-buckets) operation and store the `label`, to use as the `bucket_name`, and the `region` for each. With a limited access key, the parent-level `regions` array isn't required.\n\nCheck out this [example workflow](https://techdocs.akamai.com/linode-api/reference/create-a-limited-access-key) for a limited access key.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage keys-create \\\n --label \"my-object-storage-key\" \\\n --bucket_access '[{\"region\": \"ap-south\", \"bucket_name\": \"bucket-example-1\", \"permissions\": \"read_write\" }]'\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Generates a new Object Storage access key and an associated secret key. The secret key is only displayed when the access key is generated and cannot be viewed again. A successful request triggers an `obj_access_key_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n> \ud83d\udcd8\n>\n> - Accounts with negative balances can't access this operation.\n>\n> - This operation has specific [rate limits](https://techdocs.akamai.com/linode-api/reference/rate-limits#specific-operation-rate-limits).\n\n**Unlimited vs. limited access keys**\n\nAn unlimited access key grants full access to all of your buckets in each region you name, using the `regions` array. A limited access key lets you name specific buckets where you need to manage content, using the `bucket_access` array.\n\n> \ud83d\udc4d There's a tutorial\n>\n> We offer workflows for both an [unlimited access key](https://techdocs.akamai.com/linode-api/reference/create-an-unlimited-access-key) and a [limited access key](https://techdocs.akamai.com/linode-api/reference/create-a-limited-access-key).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage keys-create \\\n --label \"my-object-storage-key\" \\\n --bucket_access '[{\"region\": \"ap-south\", \"bucket_name\": \"bucket-example-1\", \"permissions\": \"read_write\" }]'\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys" @@ -121067,7 +131318,7 @@ } } }, - "description": "The new Object Storage key. *This is the only time* the `secret_key` is returned." + "description": "The new Object Storage access key. *This is the only time* the `secret_key` is returned." }, "default": { "content": { @@ -121116,9 +131367,9 @@ ] } ], - "summary": "Create an Object Storage key", + "summary": "Create an Object Storage access key", "tags": [ - "Keys" + "Access keys" ], "x-akamai": { "tabs": [ @@ -121137,7 +131388,7 @@ "x-linode-cli-action": "keys-create" }, "get": { - "description": "Returns a paginated list of Object Storage keys for authentication.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage keys-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of Object Storage access keys for authentication.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage keys-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-object-storage-keys" @@ -121305,7 +131556,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-object-storage-keys-200.yaml" + "file-path": "schemas/get-object-storage-keys-200.yaml" } } } @@ -121359,9 +131610,9 @@ ] } ], - "summary": "List Object Storage keys", + "summary": "List Object Storage access keys", "tags": [ - "Keys" + "Access keys" ], "x-akamai": { "tabs": [ @@ -121406,7 +131657,7 @@ }, "/{apiVersion}/object-storage/keys/{keyId}": { "get": { - "description": "Returns a single Object Storage key provisioned for your account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage keys-view \\\n --keyId 12345\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a single Object Storage access key.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage keys-view \\\n --keyId 12345\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-object-storage-key" @@ -121591,9 +131842,9 @@ ] } ], - "summary": "Get an Object Storage key", + "summary": "Get an Object Storage access key", "tags": [ - "Keys" + "Access keys" ], "x-akamai": { "tabs": [ @@ -121612,7 +131863,7 @@ "x-linode-cli-action": "keys-view" }, "put": { - "description": "Updates an Object Storage key on your account. A successful request triggers an `obj_access_key_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage keys-update \\\n --keyId 12345\n --label \"my-object-storage-key\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Updates an Object Storage access key on your account. A successful request triggers an `obj_access_key_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n> \ud83d\udcd8\n>\n> This operation has specific [rate limits](https://techdocs.akamai.com/linode-api/reference/rate-limits#specific-operation-rate-limits).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage keys-update \\\n --keyId 12345\n --label \"my-object-storage-key\"\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-object-storage-key" @@ -121799,9 +132050,9 @@ ] } ], - "summary": "Update an Object Storage key", + "summary": "Update an Object Storage access key", "tags": [ - "Keys" + "Access keys" ], "x-akamai": { "tabs": [ @@ -121820,7 +132071,7 @@ "x-linode-cli-action": "keys-update" }, "delete": { - "description": "Revokes an Object Storage Key. This key pair will no longer be usable by third-party clients. A successful request triggers an `obj_access_key_delete` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage keys-delete 12345\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Revokes an Object Storage access key. Once revoked, the access key can no longer be used by third-party clients. A successful request triggers an `obj_access_key_delete` [event](https://techdocs.akamai.com/linode-api/reference/get-events).\n\n> \ud83d\udcd8\n>\n> This operation has specific [rate limits](https://techdocs.akamai.com/linode-api/reference/rate-limits#specific-operation-rate-limits).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage keys-delete 12345\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/delete-object-storage-key" @@ -121892,9 +132143,9 @@ ] } ], - "summary": "Revoke an Object Storage key", + "summary": "Revoke an Object Storage access key", "tags": [ - "Keys" + "Access keys" ], "x-akamai": { "tabs": [ @@ -121953,7 +132204,7 @@ }, "/{apiVersion}/object-storage/quotas": { "get": { - "description": "Returns the active Object Storage-related quotas applied to your account. For example, you may have a quota maximum for the number of buckets you can have on a single endpoint. The operation includes any quota overrides in the response.\n\n> \ud83d\udcd8\n>\n> You can't combine parameters when [filtering](https://techdocs.akamai.com/linode-api/reference//filtering-and-sorting) with this operation. Only a single filterable parameter can be used.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage quotas-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns the active Object Storage-related quotas applied to your account. For example, you may have a quota maximum for the number of buckets you can have on a single endpoint. The operation includes any quota overrides in the response.\n\n> \ud83d\udcd8\n>\n> You can't combine parameters when [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) with this operation. Only a single filterable parameter can be used.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage quotas-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-object-storage-quotas" @@ -122155,7 +132406,7 @@ ], "summary": "List Object Storage quotas", "tags": [ - "Object Storage quotas" + "Object Storage" ], "x-akamai": { "tabs": [ @@ -122201,7 +132452,7 @@ }, "x-linode-cli-command": "object-storage" }, - "/{apiVersion}/object-storage/quotas/{object-storage-quotaId}": { + "/{apiVersion}/object-storage/quotas/{objQuotaId}": { "get": { "description": "Returns information about a specific Object Storage-related quota on your account. The operation includes any quota overrides in the response.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage quota-view obj-objects-us-ord-1\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { @@ -122355,7 +132606,7 @@ ], "summary": "Get an Object Storage quota", "tags": [ - "Object Storage quotas" + "Object Storage" ], "x-akamai": { "tabs": [ @@ -122396,9 +132647,9 @@ }, { "description": "The unique string that identifies the specific Object Storage-related quota to look up. This follows the pattern, `obj--`, for example, `obj-buckets-eu-central-1.linodeobjects.com`.", - "example": "{{object-storage-quotaId}}", + "example": "{{objQuotaId}}", "in": "path", - "name": "object-storage-quotaId", + "name": "objQuotaId", "required": true, "schema": { "example": "obj-buckets-eu-central-1.linodeobjects.com", @@ -122411,13 +132662,13 @@ ], "x-akamai": { "file-path": "paths/object-storage-quota.yaml", - "path-info": "/{apiVersion}/object-storage/quotas/{object-storage-quotaId}" + "path-info": "/{apiVersion}/object-storage/quotas/{objQuotaId}" }, "x-linode-cli-command": "object-storage" }, - "/{apiVersion}/object-storage/quotas/{object-storage-quotaId}/usage": { + "/{apiVersion}/object-storage/quotas/{objQuotaId}/usage": { "get": { - "description": "Returns usage data for a specific `object-storage-quotaId`. This includes the maximum number of `object-storage-quotaId` resources you can have for a single endpoint and the current usage for that resource.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage quota-usage-view obj-objects-us-ord-1\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns usage data for a specific `objQuotaId`. This includes the maximum number of `objQuotaId` resources you can have for a single endpoint and the current usage for that resource.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli object-storage quota-usage-view obj-objects-us-ord-1\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n object_storage:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-object-storage-quota-usage" @@ -122436,7 +132687,7 @@ "description": "Usage data for a specific Object Storage-related quota on your account.", "properties": { "quota_limit": { - "description": "The availability limit for a specific Object Storage resource (`object-storage-quotaId`) for a single endpoint.", + "description": "The availability limit for a specific Object Storage resource (`objQuotaId`) for a single endpoint.", "example": 100, "type": "integer", "x-linode-cli-display": 1 @@ -122456,7 +132707,7 @@ } } }, - "description": "Usage data for the specified `object-storage-quotaId`." + "description": "Usage data for the specified `objQuotaId`." }, "default": { "content": { @@ -122507,7 +132758,7 @@ ], "summary": "Get Object Storage quota usage data", "tags": [ - "Object Storage quotas" + "Object Storage" ], "x-akamai": { "tabs": [ @@ -122548,9 +132799,9 @@ }, { "description": "The unique string that identifies the specific Object Storage-related quota to look up. This follows the pattern, `obj--`, for example, `obj-buckets-eu-central-1.linodeobjects.com`.", - "example": "{{object-storage-quotaId}}", + "example": "{{objQuotaId}}", "in": "path", - "name": "object-storage-quotaId", + "name": "objQuotaId", "required": true, "schema": { "example": "obj-buckets-eu-central-1.linodeobjects.com", @@ -122563,7 +132814,7 @@ ], "x-akamai": { "file-path": "paths/object-storage-quota-usage.yaml", - "path-info": "/{apiVersion}/object-storage/quotas/{object-storage-quotaId}/usage" + "path-info": "/{apiVersion}/object-storage/quotas/{objQuotaId}/usage" }, "x-linode-cli-command": "object-storage" }, @@ -122592,7 +132843,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-object-storage-transfer-200.yaml" + "file-path": "schemas/get-object-storage-transfer-200.yaml" } }, "x-example": { @@ -122889,7 +133140,7 @@ }, "summary": "List Object Storage types", "tags": [ - "Object Storage types" + "Object Storage" ], "x-akamai": { "tabs": [ @@ -122930,7 +133181,7 @@ }, "/{apiVersion}/placement/groups": { "post": { - "description": "Creates a placement group on your account. Placement groups disperse your Linodes across physical machines (hosts) in one of our compute regions. Depending on your workload requirements, you may need your Linodes to follow specific strategies:\n\n- __Grouped together__. You may want them placed close together to reduce latency between Linodes that are used for an application or workload.\n\n- __Spread apart__. You may want to disperse them across several hosts to support high availability, for example when required for failover.\n\nWe offer an [example API workflow](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups#use-the-api) you can follow to create a placement group.\n\n> \ud83d\udcd8\n>\n> To run this operation, your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants). Talk to your local account administrator about grant management for your user.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli placement group-create \\\n --label PG_Miami_failover \\\n --region us-mia \\\n --placement_group_type \"anti-affinity:local\" \\\n --placement_group_policy strict\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n linodes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Creates a placement group on your account. Placement groups disperse your Linodes across physical machines (hosts) in one of our compute regions. Depending on your workload requirements, you may need your Linodes to follow specific strategies:\n\n- __Grouped together__. You may want them placed close together to reduce latency between Linodes that are used for an application or workload.\n\n- __Spread apart__. You may want to disperse them across several hosts to support high availability, for example when required for failover.\n\nTo run this operation, your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants). Talk to your local account administrator about grant management for your user.\n\n> \ud83d\udc4d There's a tutorial\n>\n> We offer an example API [workflow](https://techdocs.akamai.com/linode-api/reference/create-a-placement-group) you can follow to create a placement group and add Linodes to it.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli placement group-create \\\n --label PG_Miami_failover \\\n --region us-mia \\\n --placement_group_type \"anti-affinity:local\" \\\n --placement_group_policy strict\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n linodes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-placement-group" @@ -123159,7 +133410,7 @@ ] } ], - "summary": "Create placement group", + "summary": "Create a placement group", "tags": [ "Placement groups" ], @@ -124020,7 +134271,7 @@ }, "/{apiVersion}/placement/groups/{groupId}/assign": { "post": { - "description": "Add a Linode to your placement group. Check out our [example API workflow](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups#use-the-api) to create a placement group and add Linodes.\n\n> \ud83d\udcd8\n>\n> To run this operation, your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) and `read-write` [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to the Linodes you want to add to the group. Talk to your local account administrator about grant and permissions management.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli placement assign-linode 528 \\\n --linodes 123 456 \\\n --non-compliant true\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n linodes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Add a Linode to your placement group. Check out our [example API workflow](https://techdocs.akamai.com/linode-api/reference/create-a-placement-group) to create a placement group and add Linodes.\n\n> \ud83d\udcd8\n>\n> Your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) and `read-write` [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to the Linodes you want to add to the group. Talk to your local account administrator about grant and permissions management.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli placement assign-linode 528 \\\n --linodes 123 456 \\\n --non-compliant true\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n linodes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-group-add-linode" @@ -125139,7 +135390,7 @@ }, "/{apiVersion}/profile/apps": { "get": { - "description": "This is a collection of OAuth apps that you've given access to your Account, and includes the level of access granted.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile apps-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "This is a collection of OAuth apps that you've given access to your account, and includes the level of access granted.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile apps-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-profile-apps" @@ -125293,7 +135544,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-profile-apps-200.yaml" + "file-path": "schemas/get-profile-apps-200.yaml" } }, "x-example": { @@ -125352,7 +135603,7 @@ ], "summary": "List authorized apps", "tags": [ - "Apps" + "OAuth apps" ], "x-akamai": { "tabs": [ @@ -125390,14 +135641,14 @@ } ], "x-akamai": { - "file-path": "paths/apps.yaml", + "file-path": "paths/profile-apps.yaml", "path-info": "/{apiVersion}/profile/apps" }, "x-linode-cli-command": "profile" }, "/{apiVersion}/profile/apps/{appId}": { "get": { - "description": "Returns information about a single app you've authorized to access your Account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile app-view 1234\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns information about a single app you've authorized to access your account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile app-view 1234\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-profile-app" @@ -125546,7 +135797,7 @@ ], "summary": "Get an authorized app", "tags": [ - "Apps" + "OAuth apps" ], "x-akamai": { "tabs": [ @@ -125565,7 +135816,7 @@ "x-linode-cli-action": "app-view" }, "delete": { - "description": "Expires this app token. This token may no longer be used to access your Account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile app-delete 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Expires this app token. This token can no longer be used to access your account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile app-delete 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/delete-profile-app" @@ -125639,7 +135890,7 @@ ], "summary": "Revoke app access", "tags": [ - "Apps" + "OAuth apps" ], "x-akamai": { "tabs": [ @@ -125691,14 +135942,14 @@ } ], "x-akamai": { - "file-path": "paths/app.yaml", + "file-path": "paths/profile-app.yaml", "path-info": "/{apiVersion}/profile/apps/{appId}" }, "x-linode-cli-command": "profile" }, "/{apiVersion}/profile/devices": { "get": { - "description": "Returns a paginated list of active TrustedDevices for your User. Browsers with an active Remember Me Session are logged into your account until the session expires or is revoked.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile devices-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of active trusted devices for your user. Browsers with an active Remember Me Session are logged into your account until the session expires or is revoked.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile devices-list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-devices" @@ -125784,7 +136035,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-devices-200.yaml" + "file-path": "schemas/get-devices-200.yaml" } }, "x-example": { @@ -125843,7 +136094,7 @@ ], "summary": "List trusted devices", "tags": [ - "Devices" + "Trusted devices" ], "x-akamai": { "tabs": [ @@ -125888,7 +136139,7 @@ }, "/{apiVersion}/profile/devices/{deviceId}": { "get": { - "description": "Returns a single active TrustedDevice for your User.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile device-view 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a single active trusted device for your user.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile device-view 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-trusted-device" @@ -126003,7 +136254,7 @@ ], "summary": "Get a trusted device", "tags": [ - "Devices" + "Trusted devices" ], "x-akamai": { "tabs": [ @@ -126022,7 +136273,7 @@ "x-linode-cli-action": "device-view" }, "delete": { - "description": "Revoke an active TrustedDevice for your User. Once a TrustedDevice is revoked, this device will have to log in again before accessing your Linode account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile device-revoke 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Revoke an active trusted device for your user. Once a trusted device is revoked, this device will have to log in again before accessing your account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile device-revoke 123\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/delete-trusted-device" @@ -126096,7 +136347,7 @@ ], "summary": "Revoke a trusted device", "tags": [ - "Devices" + "Trusted devices" ], "x-akamai": { "tabs": [ @@ -126792,7 +137043,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-profile-logins-200.yaml" + "file-path": "schemas/get-profile-logins-200.yaml" } }, "x-example": { @@ -127109,7 +137360,7 @@ ], "type": "object", "x-akamai": { - "file-path": "schemas/added-post-profile-phone-number.yaml" + "file-path": "schemas/post-profile-phone-number.yaml" } }, "x-example": { @@ -127320,7 +137571,7 @@ } ], "x-akamai": { - "file-path": "paths/phone-number.yaml", + "file-path": "paths/profile-phone.yaml", "path-info": "/{apiVersion}/profile/phone-number" }, "x-linode-cli-command": "phone" @@ -127350,7 +137601,7 @@ ], "type": "object", "x-akamai": { - "file-path": "schemas/added-post-profile-phone-number-verify.yaml" + "file-path": "schemas/post-profile-phone-number-verify.yaml" } }, "x-example": { @@ -127467,7 +137718,7 @@ } ], "x-akamai": { - "file-path": "paths/verify.yaml", + "file-path": "paths/profile-phone-verify.yaml", "path-info": "/{apiVersion}/profile/phone-number/verify" }, "x-linode-cli-command": "phone" @@ -127551,7 +137802,7 @@ ], "summary": "Get user preferences", "tags": [ - "Preferences" + "OAuth preferences" ], "x-akamai": { "tabs": [ @@ -127663,7 +137914,7 @@ ], "summary": "Update a user's preferences", "tags": [ - "Preferences" + "OAuth preferences" ], "x-akamai": { "tabs": [ @@ -127697,7 +137948,7 @@ } ], "x-akamai": { - "file-path": "paths/preferences.yaml", + "file-path": "paths/profile-oauth-preferences.yaml", "path-info": "/{apiVersion}/profile/preferences" }, "x-linode-cli-command": "profile" @@ -128039,7 +138290,7 @@ } ], "x-akamai": { - "file-path": "paths/security-questions.yaml", + "file-path": "paths/profile-security-questions.yaml", "path-info": "/{apiVersion}/profile/security-questions" }, "x-linode-cli-command": "security-questions" @@ -128320,7 +138571,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-ssh-keys-200.yaml" + "file-path": "schemas/get-ssh-keys-200.yaml" } }, "x-example": { @@ -128571,7 +138822,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-put-ssh-key.yaml" + "file-path": "schemas/put-ssh-key.yaml" } }, "x-example": { @@ -128833,7 +139084,7 @@ }, "/{apiVersion}/profile/tfa-disable": { "post": { - "description": "Disables Two Factor Authentication for your User. Once successful, login attempts from untrusted computers will only require a password before being successful. This is less secure, and is discouraged.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile tfa-disable\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Disables two-factor authentication (2FA) for your user. Once successful, login attempts from untrusted computers will only require a password. Keep 2FA enabled to protect your account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile tfa-disable\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-tfa-disable" @@ -128905,9 +139156,9 @@ ] } ], - "summary": "Disable two factor authentication", + "summary": "Disable two-factor authentication", "tags": [ - "Two factor authentication" + "Two-factor authentication" ], "x-akamai": { "tabs": [ @@ -128945,14 +139196,14 @@ } ], "x-akamai": { - "file-path": "paths/tfa-disable.yaml", + "file-path": "paths/profile-tfa-disable.yaml", "path-info": "/{apiVersion}/profile/tfa-disable" }, "x-linode-cli-command": "profile" }, "/{apiVersion}/profile/tfa-enable": { "post": { - "description": "Generates a Two Factor secret for your User. To enable TFA for your User, enter the secret obtained from this operation with the [Enable two factor authentication](https://techdocs.akamai.com/linode-api/reference/post-tfa-confirm) operation. Once enabled, logins from untrusted computers are required to provide a TFA code before they are successful.\n\nRun the [Answer security questions](https://techdocs.akamai.com/linode-api/reference/post-security-questions) operation.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile tfa-enable\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Generates a secret key for your user. To enable two-factor authentication (2FA), enter this secret into your third-party authenticator application. To complete the 2FA setup, use the [Enable two-factor authentication](https://techdocs.akamai.com/linode-api/reference/post-tfa-confirm) operation to enter a one-time passcode (OTP) from your authenticator app. Once enabled, logins from untrusted computers are required to provide an OTP before they are successful.\n\nRun the [Answer security questions](https://techdocs.akamai.com/linode-api/reference/post-security-questions) operation.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile tfa-enable\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-tfa-enable" @@ -128979,7 +139230,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-post-tfa-enable-200.yaml" + "file-path": "schemas/post-tfa-enable-200.yaml" } }, "x-example": { @@ -128987,7 +139238,7 @@ } } }, - "description": "Two Factor secret generated." + "description": "Secret key generated." }, "default": { "content": { @@ -129036,9 +139287,9 @@ ] } ], - "summary": "Create a two factor secret", + "summary": "Generate a secret key for two-factor authentication", "tags": [ - "Two factor authentication" + "Two-factor authentication" ], "x-akamai": { "tabs": [ @@ -129076,14 +139327,14 @@ } ], "x-akamai": { - "file-path": "paths/tfa-enable.yaml", + "file-path": "paths/profile-tfa-enable.yaml", "path-info": "/{apiVersion}/profile/tfa-enable" }, "x-linode-cli-command": "profile" }, "/{apiVersion}/profile/tfa-enable-confirm": { "post": { - "description": "Confirms that you can successfully generate Two Factor codes and enables TFA on your Account. Once this is complete, login attempts from untrusted computers will be required to provide a Two Factor code before they are successful.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile tfa-confirm \\\n --tfa_code 213456\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Confirms that you can successfully generate one-time codes. Once confirmed, 2FA is enabled on your account. Login attempts from untrusted computers will be required to provide a one-time code before they are successful.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli profile tfa-confirm \\\n --tfa_code 213456\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-tfa-confirm" @@ -129103,7 +139354,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-post-tfa-confirm.yaml" + "file-path": "schemas/post-tfa-confirm.yaml" } }, "x-example": { @@ -129111,7 +139362,7 @@ } } }, - "description": "The Two Factor code you generated with your Two Factor secret.", + "description": "The one-time code you generated with your 2FA secret key.", "required": true }, "responses": { @@ -129129,7 +139380,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-post-tfa-confirm-200.yaml" + "file-path": "schemas/post-tfa-confirm-200.yaml" } }, "x-example": { @@ -129186,9 +139437,9 @@ ] } ], - "summary": "Enable two factor authentication", + "summary": "Enable two-factor authentication", "tags": [ - "Two factor authentication" + "Two-factor authentication" ], "x-akamai": { "tabs": [ @@ -129226,7 +139477,7 @@ } ], "x-akamai": { - "file-path": "paths/tfa-enable-confirm.yaml", + "file-path": "paths/profile-tfa-enable-confirm.yaml", "path-info": "/{apiVersion}/profile/tfa-enable-confirm" }, "x-linode-cli-command": "profile" @@ -129275,7 +139526,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-post-personal-access-token.yaml" + "file-path": "schemas/post-personal-access-token.yaml" } }, "x-example": { @@ -129538,7 +139789,7 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-personal-access-tokens-200.yaml" + "file-path": "schemas/get-personal-access-tokens-200.yaml" } }, "x-example": { @@ -130224,10 +140475,7 @@ "description": "__Beta__ Lists the services in this region that support metrics and alerts use with Akamai Cloud Pulse (ACLP).\n\n> \ud83d\udcd8\n>\n> The ACLP service is currently beta. This object is only returned in a response if you're participating in the ACLP beta. Contact your account team for more information.", "properties": { "alerts": { - "description": "Each `service_type` supported for use in managing ACLP [alerts](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type) in this region. A `service_type` is the identifier for the Akamai Cloud Computing service. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "Each `service_type` supported for use in managing ACLP [alerts](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type) in this region, for your account. A `service_type` identifies the Akamai Cloud Computing service.", "example": [ "dbaas" ], @@ -130237,10 +140485,7 @@ "type": "array" }, "metrics": { - "description": "Each `service_type` supported for use in managing ACLP [metrics](https://techdocs.akamai.com/linode-api/reference/get-dashboards-all) in this region. A `service_type` is the identifier for the Akamai Cloud Computing service. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "Each `service_type` supported for use in managing ACLP [metrics](https://techdocs.akamai.com/linode-api/reference/get-dashboards-all) in this region, for your account. A `service_type` identifies the Akamai Cloud Computing service.", "example": [ "dbaas" ], @@ -130703,10 +140948,7 @@ "description": "__Beta__ Lists the services in this region that support metrics and alerts use with Akamai Cloud Pulse (ACLP).\n\n> \ud83d\udcd8\n>\n> The ACLP service is currently beta. This object is only returned in a response if you're participating in the ACLP beta. Contact your account team for more information.", "properties": { "alerts": { - "description": "Each `service_type` supported for use in managing ACLP [alerts](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type) in this region. A `service_type` is the identifier for the Akamai Cloud Computing service. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "Each `service_type` supported for use in managing ACLP [alerts](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type) in this region, for your account. A `service_type` identifies the Akamai Cloud Computing service.", "example": [ "dbaas" ], @@ -130716,10 +140958,7 @@ "type": "array" }, "metrics": { - "description": "Each `service_type` supported for use in managing ACLP [metrics](https://techdocs.akamai.com/linode-api/reference/get-dashboards-all) in this region. A `service_type` is the identifier for the Akamai Cloud Computing service. Currently, only the Managed Databases (`dbaas`) service is supported.", - "enum": [ - "dbaas" - ], + "description": "Each `service_type` supported for use in managing ACLP [metrics](https://techdocs.akamai.com/linode-api/reference/get-dashboards-all) in this region, for your account. A `service_type` identifies the Akamai Cloud Computing service.", "example": [ "dbaas" ], @@ -130891,13 +141130,13 @@ } }, { - "description": "ID of the Region to look up.", + "description": "The abbreviated value (\"slug\") for the applicable data center. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the slug for each data center.", "example": "{{regionId}}", "in": "path", "name": "regionId", "required": true, "schema": { - "example": "us-east", + "example": "us-iad", "type": "string" }, "x-akamai": { @@ -131053,13 +141292,13 @@ } }, { - "description": "ID of the Region to look up.", + "description": "The abbreviated value (\"slug\") for the applicable data center. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the slug for each data center.", "example": "{{regionId}}", "in": "path", "name": "regionId", "required": true, "schema": { - "example": "us-east", + "example": "us-iad", "type": "string" }, "x-akamai": { @@ -131155,6 +141394,18 @@ "nullable": true, "type": "string" }, + "severity": { + "default": null, + "description": "The severity of the issue. A value of `1` indicates a major issue, `2` indicates a moderate priority issue, and `3` is a low priority issue. Your account may not have access to set this value. Talk to your Akamai account team for more details.", + "enum": [ + 1, + 2, + 3 + ], + "example": "{{severity}}", + "nullable": true, + "type": "integer" + }, "summary": { "description": "The summary or title for this support ticket.", "example": "{{summary}}", @@ -131318,14 +141569,32 @@ "x-linode-filterable": true }, "opened_by": { - "description": "__Read-only__ The user who opened this ticket.", + "description": "__Filterable__, __Read-only__ The user who opened this ticket.", "example": "some_user", "readOnly": true, "type": "string", - "x-linode-cli-display": 3 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true + }, + "severity": { + "description": "__Read-only__ The severity of this ticket.", + "enum": [ + "low", + "moderate", + "major" + ], + "example": "low", + "nullable": true, + "readOnly": true, + "type": "string" }, "status": { - "description": "__Read-only__ The current status of this ticket.", + "description": "__Filterable__, __Read-only__ The current status of this ticket.", "enum": [ "closed", "new", @@ -131333,7 +141602,13 @@ ], "example": "open", "readOnly": true, - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "summary": { "description": "__Read-only__ The summary or title for this ticket.", @@ -131612,14 +141887,32 @@ "x-linode-filterable": true }, "opened_by": { - "description": "__Read-only__ The user who opened this ticket.", + "description": "__Filterable__, __Read-only__ The user who opened this ticket.", "example": "some_user", "readOnly": true, "type": "string", - "x-linode-cli-display": 3 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true + }, + "severity": { + "description": "__Read-only__ The severity of this ticket.", + "enum": [ + "low", + "moderate", + "major" + ], + "example": "low", + "nullable": true, + "readOnly": true, + "type": "string" }, "status": { - "description": "__Read-only__ The current status of this ticket.", + "description": "__Filterable__, __Read-only__ The current status of this ticket.", "enum": [ "closed", "new", @@ -131627,7 +141920,13 @@ ], "example": "open", "readOnly": true, - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "summary": { "description": "__Read-only__ The summary or title for this ticket.", @@ -131923,14 +142222,32 @@ "x-linode-filterable": true }, "opened_by": { - "description": "__Read-only__ The user who opened this ticket.", + "description": "__Filterable__, __Read-only__ The user who opened this ticket.", "example": "some_user", "readOnly": true, "type": "string", - "x-linode-cli-display": 3 + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-cli-display": 3, + "x-linode-filterable": true + }, + "severity": { + "description": "__Read-only__ The severity of this ticket.", + "enum": [ + "low", + "moderate", + "major" + ], + "example": "low", + "nullable": true, + "readOnly": true, + "type": "string" }, "status": { - "description": "__Read-only__ The current status of this ticket.", + "description": "__Filterable__, __Read-only__ The current status of this ticket.", "enum": [ "closed", "new", @@ -131938,7 +142255,13 @@ ], "example": "open", "readOnly": true, - "type": "string" + "type": "string", + "x-akamai": { + "labels": [ + "Filterable" + ] + }, + "x-linode-filterable": true }, "summary": { "description": "__Read-only__ The summary or title for this ticket.", @@ -132783,7 +143106,7 @@ }, "/{apiVersion}/tags": { "post": { - "description": "Creates a new tag and lets you optionally add it to specific objects. Tags are labels you can attach to objects in your account. Use them to specify and group attributes of objects that are relevant to you. Currently, you can add a tag to your `linodes`, your `nodebalancers`, the `domains` for your Linodes, and the `volumes` on your Linodes.\n\n> \ud83d\udcd8\n>\n> - This operation can only be accessed by account users with _unrestricted_ access.\n>\n> - If you don't add a tag to a supported object with this operation, you can use that object's update operation to later add the tag you created.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli tags create \\\n --label 'example tag' \\\n --linodes 123 \\\n --linodes 456 \\\n --volumes 9082 \\\n --volumes 10003\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Creates a new tag and lets you optionally add it to specific objects. Tags are labels you can attach to objects in your account. Use them to specify and group attributes of objects that are relevant to you. Currently, you can add a tag to your `linodes`, your `nodebalancers`, the `domains` for your Linodes, and the `volumes` on your Linodes.\n\n> \ud83d\udcd8\n>\n> - This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.\n>\n> - If you don't add a tag to a supported object with this operation, you can use that object's update operation to later add the tag you created.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli tags create \\\n --label 'example tag' \\\n --linodes 123 \\\n --linodes 456 \\\n --volumes 9082 \\\n --volumes 10003\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-tag" @@ -132972,7 +143295,7 @@ "x-linode-grant": "unrestricted only" }, "get": { - "description": "Returns a paginated list of tags you've [created](https://techdocs.akamai.com/linode-api/reference/post-tag) on your account.\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli tags list\nlinode-cli tags ls\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of tags you've [created](https://techdocs.akamai.com/linode-api/reference/post-tag) on your account.\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli tags list\nlinode-cli tags ls\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-tags" @@ -133173,7 +143496,7 @@ }, "/{apiVersion}/tags/{tagLabel}": { "get": { - "description": "Returns a paginated list of all objects you've tagged with the specified tag. The response includes a mixed collection of all object types.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of all objects you've tagged with the specified tag. The response includes a mixed collection of all object types.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.\n\n\n<>\n\n---\n\n\n- __OAuth scopes__.\n\n ```\n account:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-tagged-objects" @@ -133253,7 +143576,7 @@ "203.0.113.1", "192.0.2.1" ], - "ipv6": "c001:d00d::1337/128", + "ipv6": "2001:DB8::/128", "label": "linode123", "lke_cluster_id": 1, "placement_group": { @@ -133482,11 +143805,11 @@ { "description": "An Image ID to deploy the Linode Disk from.\n\nRun the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image.", "example": "linode/debian9", + "nullable": true, "type": "string" } ], "example": "linode/debian10", - "nullable": true, "readOnly": true, "x-akamai": { "labels": [ @@ -133563,6 +143886,18 @@ "readOnly": true, "type": "integer" }, + "maintenance_policy": { + "description": "__Beta__ The maintenance policy configured by the user for this Linode. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details.", + "enum": [ + "linode/migrate", + "linode/power_off_on" + ], + "example": "linode/migrate", + "type": "string", + "x-akamai": { + "status": "BETA" + } + }, "placement_group": { "additionalProperties": false, "description": "__Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/) that this Linode belongs to. Empty if the Linode isn't in a placement group.", @@ -133896,7 +144231,7 @@ "properties": { "created": { "description": "__Read-only__ When this volume was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -133935,6 +144270,12 @@ "type": "integer", "x-linode-cli-display": 1 }, + "io_ready": { + "description": "__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.", + "example": true, + "readOnly": true, + "type": "boolean" + }, "label": { "description": "__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.", "example": "my-volume", @@ -133966,13 +144307,13 @@ "x-linode-cli-display": 7 }, "region": { - "description": "The unique ID of this Region.", - "example": "us-east", + "description": "The unique identifier for the region where the volume lives.", + "example": "us-iad", "type": "string", "x-linode-cli-display": 5 }, "size": { - "description": "The Volume's size, in GiB.", + "description": "The volume's size, in gigabytes.", "example": 30, "maximum": 10240, "type": "integer", @@ -134015,7 +144356,7 @@ }, "updated": { "description": "__Read-only__ When this volume was last updated.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -134323,7 +144664,7 @@ "x-linode-cli-skip": true }, "delete": { - "description": "Removes a tag from all objects and deletes it.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli tags delete\nlinode-cli tags rm\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Removes a tag from all objects and deletes it.\n\n> \ud83d\udcd8\n>\n> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli tags delete\nlinode-cli tags rm\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n account:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/delete-tag" @@ -134458,7 +144799,7 @@ }, "/{apiVersion}/volumes": { "post": { - "description": "Creates a volume on your account. For this to complete, you need the `add_volumes` grant. Creating a new volume accrues additional charges on your account.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes create \\\n --label my-volume \\\n --size 20 \\\n --linode_id 12346 \\\n --encryption enabled \\\n --no-defaults\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Creates a [Block Storage](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-block-storage) volume on your account. Creating a new volume accrues additional charges on your account.\n\n> \ud83d\udcd8\n>\n> To run this operation, your user needs the `add_volume` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes create \\\n --label my-volume \\\n --size 20 \\\n --linode_id 12346 \\\n --encryption enabled \\\n --no-defaults\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-volume" @@ -134467,6 +144808,18 @@ "requestBody": { "content": { "application/json": { + "example": { + "config_id": 23456, + "encryption": "enabled", + "label": "Video-file-storage", + "linode_id": 12346, + "region": "us-iad", + "size": 30, + "tags": [ + "blk-stg-volume-1", + "videos-storage" + ] + }, "schema": { "additionalProperties": false, "properties": { @@ -134535,13 +144888,9 @@ "x-akamai": { "file-path": "schemas/added-post-volume.yaml" } - }, - "x-example": { - "x-ref": "../examples/post-volume.json" } } }, - "description": "The requested initial state of a new Volume.", "required": true, "x-linode-cli-allowed-defaults": [ "region" @@ -134551,13 +144900,32 @@ "200": { "content": { "application/json": { + "example": { + "created": "2025-01-01T00:01:01", + "encryption": "enabled", + "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_my-volume", + "hardware_type": "nvme", + "id": 12345, + "io_ready": true, + "label": "Video-file-storage", + "linode_id": 12346, + "linode_label": "linode123", + "region": "us-iad", + "size": 30, + "status": "active", + "tags": [ + "blk-stg-volume-1", + "videos-storage" + ], + "updated": "2025-01-01T00:01:01" + }, "schema": { "additionalProperties": false, "description": "A Block Storage volume on your account.", "properties": { "created": { "description": "__Read-only__ When this volume was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -134596,6 +144964,12 @@ "type": "integer", "x-linode-cli-display": 1 }, + "io_ready": { + "description": "__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.", + "example": true, + "readOnly": true, + "type": "boolean" + }, "label": { "description": "__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.", "example": "my-volume", @@ -134627,13 +145001,13 @@ "x-linode-cli-display": 7 }, "region": { - "description": "The unique ID of this Region.", - "example": "us-east", + "description": "The unique identifier for the region where the volume lives.", + "example": "us-iad", "type": "string", "x-linode-cli-display": 5 }, "size": { - "description": "The Volume's size, in GiB.", + "description": "The volume's size, in gigabytes.", "example": 30, "maximum": 10240, "type": "integer", @@ -134676,7 +145050,7 @@ }, "updated": { "description": "__Read-only__ When this volume was last updated.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -134687,13 +145061,10 @@ "x-akamai": { "file-path": "schemas/volume.yaml" } - }, - "x-example": { - "x-ref": "../examples/post-volume-200.json" } } }, - "description": "Creating Volume." + "description": "Creating volume." }, "default": { "content": { @@ -134765,7 +145136,7 @@ "x-linode-grant": "add_volumes" }, "get": { - "description": "Returns a paginated list of Volumes you have permission to view.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Returns a paginated list of the Block Storage volumes that you have permission to view.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes list\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-volumes" @@ -134809,6 +145180,32 @@ "200": { "content": { "application/json": { + "example": { + "data": [ + { + "created": "2025-01-01T00:01:01", + "encryption": "enabled", + "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_my-volume", + "hardware_type": "nvme", + "id": 12345, + "io_ready": true, + "label": "Video-file-storage", + "linode_id": 12346, + "linode_label": "linode123", + "region": "us-iad", + "size": 30, + "status": "active", + "tags": [ + "blk-stg-volume-1", + "videos-storage" + ], + "updated": "2025-01-01T00:01:01" + } + ], + "page": 1, + "pages": 1, + "results": 1 + }, "schema": { "additionalProperties": false, "properties": { @@ -134819,7 +145216,7 @@ "properties": { "created": { "description": "__Read-only__ When this volume was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -134858,6 +145255,12 @@ "type": "integer", "x-linode-cli-display": 1 }, + "io_ready": { + "description": "__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.", + "example": true, + "readOnly": true, + "type": "boolean" + }, "label": { "description": "__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.", "example": "my-volume", @@ -134889,13 +145292,13 @@ "x-linode-cli-display": 7 }, "region": { - "description": "The unique ID of this Region.", - "example": "us-east", + "description": "The unique identifier for the region where the volume lives.", + "example": "us-iad", "type": "string", "x-linode-cli-display": 5 }, "size": { - "description": "The Volume's size, in GiB.", + "description": "The volume's size, in gigabytes.", "example": 30, "maximum": 10240, "type": "integer", @@ -134938,7 +145341,7 @@ }, "updated": { "description": "__Read-only__ When this volume was last updated.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -134973,15 +145376,12 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/added-get-volumes-200.yaml" + "file-path": "schemas/volumes.yaml" } - }, - "x-example": { - "x-ref": "../examples/get-volumes-200.json" } } }, - "description": "Returns an array of all Volumes on your Account." + "description": "The Block Storage volumes on your account are returned." }, "default": { "content": { @@ -135081,7 +145481,7 @@ }, "/{apiVersion}/volumes/types": { "get": { - "description": "Returns volume types and prices, including any region-specific rates.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes types\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", + "description": "Returns Block Storage volume types and prices, including any region-specific rates.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes types\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-volume-types" @@ -135091,6 +145491,29 @@ "200": { "content": { "application/json": { + "example": { + "data": [ + { + "id": "volume", + "label": "Storage Volume", + "price": { + "hourly": 0.0015, + "monthly": 0.1 + }, + "region_prices": [ + { + "hourly": 0.00018, + "id": "us-iad", + "monthly": 0.12 + } + ], + "transfer": 0 + } + ], + "page": 1, + "pages": 1, + "results": 1 + }, "schema": { "additionalProperties": false, "properties": { @@ -135222,11 +145645,8 @@ }, "type": "object", "x-akamai": { - "file-path": "schemas/get-volumes-types-200.yaml" + "file-path": "schemas/volume-types.yaml" } - }, - "x-example": { - "x-ref": "../examples/get-volumes-types-200.json" } } }, @@ -135312,7 +145732,7 @@ }, "/{apiVersion}/volumes/{volumeId}": { "get": { - "description": "Get information about a single Volume.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes view 12345\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Get information about a specific Block Storage volume.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes view 12345\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_only\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/get-volume" @@ -135356,13 +145776,32 @@ "200": { "content": { "application/json": { + "example": { + "created": "2025-01-01T00:01:01", + "encryption": "enabled", + "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_my-volume", + "hardware_type": "nvme", + "id": 12345, + "io_ready": true, + "label": "Video-file-storage", + "linode_id": 12346, + "linode_label": "linode123", + "region": "us-iad", + "size": 30, + "status": "active", + "tags": [ + "blk-stg-volume-1", + "videos-storage" + ], + "updated": "2025-01-01T00:01:01" + }, "schema": { "additionalProperties": false, "description": "A Block Storage volume on your account.", "properties": { "created": { "description": "__Read-only__ When this volume was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -135401,6 +145840,12 @@ "type": "integer", "x-linode-cli-display": 1 }, + "io_ready": { + "description": "__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.", + "example": true, + "readOnly": true, + "type": "boolean" + }, "label": { "description": "__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.", "example": "my-volume", @@ -135432,13 +145877,13 @@ "x-linode-cli-display": 7 }, "region": { - "description": "The unique ID of this Region.", - "example": "us-east", + "description": "The unique identifier for the region where the volume lives.", + "example": "us-iad", "type": "string", "x-linode-cli-display": 5 }, "size": { - "description": "The Volume's size, in GiB.", + "description": "The volume's size, in gigabytes.", "example": 30, "maximum": 10240, "type": "integer", @@ -135481,7 +145926,7 @@ }, "updated": { "description": "__Read-only__ When this volume was last updated.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -135492,13 +145937,10 @@ "x-akamai": { "file-path": "schemas/volume.yaml" } - }, - "x-example": { - "x-ref": "../examples/get-volume-200.json" } } }, - "description": "Returns a single Volume object.", + "description": "Returns a single volume object.", "links": { "attach": { "operationId": "post-attach-volume", @@ -135595,7 +146037,7 @@ "x-linode-grant": "read_only" }, "put": { - "description": "Updates a Volume that you have permission to `read_write`.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes update 12345 \\\n --label my_volume\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Update a Block Storage volume that you have permission to `read_write`.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes update 12345 \\\n --label my_volume\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/put-volume" @@ -135612,7 +146054,7 @@ "properties": { "created": { "description": "__Read-only__ When this volume was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -135651,6 +146093,12 @@ "type": "integer", "x-linode-cli-display": 1 }, + "io_ready": { + "description": "__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.", + "example": true, + "readOnly": true, + "type": "boolean" + }, "label": { "description": "__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.", "example": "my-volume", @@ -135682,13 +146130,13 @@ "x-linode-cli-display": 7 }, "region": { - "description": "The unique ID of this Region.", - "example": "us-east", + "description": "The unique identifier for the region where the volume lives.", + "example": "us-iad", "type": "string", "x-linode-cli-display": 5 }, "size": { - "description": "The Volume's size, in GiB.", + "description": "The volume's size, in gigabytes.", "example": 30, "maximum": 10240, "type": "integer", @@ -135731,7 +146179,7 @@ }, "updated": { "description": "__Read-only__ When this volume was last updated.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -135764,7 +146212,6 @@ } } }, - "description": "If any updated field fails to pass validation, the Volume will not be updated.", "required": true }, "responses": { @@ -135777,7 +146224,7 @@ "properties": { "created": { "description": "__Read-only__ When this volume was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -135816,6 +146263,12 @@ "type": "integer", "x-linode-cli-display": 1 }, + "io_ready": { + "description": "__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.", + "example": true, + "readOnly": true, + "type": "boolean" + }, "label": { "description": "__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.", "example": "my-volume", @@ -135847,13 +146300,13 @@ "x-linode-cli-display": 7 }, "region": { - "description": "The unique ID of this Region.", - "example": "us-east", + "description": "The unique identifier for the region where the volume lives.", + "example": "us-iad", "type": "string", "x-linode-cli-display": 5 }, "size": { - "description": "The Volume's size, in GiB.", + "description": "The volume's size, in gigabytes.", "example": 30, "maximum": 10240, "type": "integer", @@ -135896,7 +146349,7 @@ }, "updated": { "description": "__Read-only__ When this volume was last updated.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -135913,7 +146366,7 @@ } } }, - "description": "The updated Volume." + "description": "The volume was updated successfully." }, "default": { "content": { @@ -135984,7 +146437,7 @@ "x-linode-grant": "read_write" }, "delete": { - "description": "Deletes a Volume you have permission to `read_write`.\n\n- __Deleting a Volume is a destructive action and cannot be undone.__\n\n- Deleting stops billing for the Volume. You will be billed for time used within the billing period the Volume was active.\n\n- Volumes that are migrating cannot be deleted until the migration is finished.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes delete 12345\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Deletes a specified Block Storage volume that you have permission to `read_write`.\n\n- Deleting a volume can't be undone.\n\n- Deleting stops billing for the volume. You'll be billed for the time the volume was active during the current billing period.\n\n- You can't delete a volume that's currently being migrated. You need to wait for the migration to complete.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes delete 12345\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/delete-volume" @@ -136099,7 +146552,7 @@ } }, { - "description": "ID of the Volume to look up.", + "description": "The unique identifier for the target volume. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation and store the `id` for the target volume as your `volumeId`.", "example": "{{volumeId}}", "in": "path", "name": "volumeId", @@ -136109,7 +146562,7 @@ "type": "integer" }, "x-akamai": { - "file-path": "parameters/volume-id-path-a4b5473e.yaml" + "file-path": "parameters/volume-id.yaml" } } ], @@ -136121,7 +146574,7 @@ }, "/{apiVersion}/volumes/{volumeId}/attach": { "post": { - "description": "Attaches a Volume on your Account to an existing Linode on your Account. In order for this request to complete successfully, your User must have `read_write` permission to the Volume and `read_write` permission to the Linode. Additionally, the Volume and Linode must be located in the same Region.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes attach 12345 \\\n --linode_id 12346 \\\n --config_id 23456\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\nlinodes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Attach a Block Storage volume to an existing Linode.\n\n> \ud83d\udcd8\n>\n> - To run this operation, your user needs the `read-write` permission to both the volume and the Linode you want to add it to.\n>\n> - The volume and its target Linode need to exist in the same `region`. You can run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) and [List Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances) operations and review the `region` for each.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes attach 12345 \\\n --linode_id 12346 \\\n --config_id 23456\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\nlinodes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-attach-volume" @@ -136130,21 +146583,27 @@ "requestBody": { "content": { "application/json": { + "example": { + "config_id": 23456, + "linode_id": 12346, + "persist_across_boots": true + }, "schema": { "additionalProperties": false, "properties": { "config_id": { - "description": "The ID of the Linode Config to include this Volume in. Must belong to the Linode referenced by `linode_id`. If not given, the last booted Config will be chosen.", + "description": "The unique identifier assigned to the Linode configuration where you want to include this volume. Run the [List configuration profiles](https://techdocs.akamai.com/linode-api/reference/get-linode-configs) operation and store the `id` for the target configuration.\n\n> \ud83d\udcd8\n>\n> - The configuration needs to belong to the Linode referenced by `linode_id`.\n>\n> - If you don't include this value, the API uses the last booted configuration.", "example": "{{config_id}}", "type": "integer" }, "linode_id": { - "description": "The ID of the Linode to attach the volume to.", + "description": "The unique identifier assigned to the Linode where you want to attach the volume. Run the [List Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances) operation and store the `id` for the target Linode.", "example": "{{linode_id}}", "type": "integer" }, "persist_across_boots": { - "description": "Defaults to `true`, If `false` is provided, the Volume will not be attached to the Linode Config. In this case more than 8 Volumes may be attached to a Linode if a Linode has 16GB of RAM or more. The number of volumes that can be attached is equal to the number of GB of RAM that the Linode has, up to a maximum of 64. `config_id` should not be passed if this is set to `false` and `linode_id` must be passed. The Linode must be running.", + "default": true, + "description": "If set to `false`, the volume won't be attached to the Linode configuration. In this case, more than eight volumes may be attached to a Linode if a Linode has 16GB of RAM or more. The number of volumes you can attach is equal to the number of GB of RAM that the Linode has, up to a maximum of 64. If you set this to `false`, you can't include a `config_id` and only the `linode_id` should be passed.\n\n> \ud83d\udcd8\n>\n> To use this object, the target `linode_id` needs to have a status of `running`. Run the [List Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances) operation to check the `status` of each Linode.", "example": "{{persist_across_boots}}", "type": "boolean" } @@ -136154,28 +146613,43 @@ ], "type": "object", "x-akamai": { - "file-path": "schemas/added-post-attach-volume.yaml" + "file-path": "schemas/volume-attach.yaml" } - }, - "x-example": { - "x-ref": "../examples/post-attach-volume.json" } } }, - "description": "Volume to attach to a Linode.", "required": true }, "responses": { "200": { "content": { "application/json": { + "example": { + "created": "2025-01-01T00:01:01", + "encryption": "enabled", + "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_my-volume", + "hardware_type": "nvme", + "id": 12345, + "io_ready": true, + "label": "Video-file-storage", + "linode_id": 12346, + "linode_label": "linode123", + "region": "us-iad", + "size": 30, + "status": "active", + "tags": [ + "blk-stg-volume-1", + "videos-storage" + ], + "updated": "2025-01-01T00:01:01" + }, "schema": { "additionalProperties": false, "description": "A Block Storage volume on your account.", "properties": { "created": { "description": "__Read-only__ When this volume was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -136214,6 +146688,12 @@ "type": "integer", "x-linode-cli-display": 1 }, + "io_ready": { + "description": "__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.", + "example": true, + "readOnly": true, + "type": "boolean" + }, "label": { "description": "__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.", "example": "my-volume", @@ -136245,13 +146725,13 @@ "x-linode-cli-display": 7 }, "region": { - "description": "The unique ID of this Region.", - "example": "us-east", + "description": "The unique identifier for the region where the volume lives.", + "example": "us-iad", "type": "string", "x-linode-cli-display": 5 }, "size": { - "description": "The Volume's size, in GiB.", + "description": "The volume's size, in gigabytes.", "example": 30, "maximum": 10240, "type": "integer", @@ -136294,7 +146774,7 @@ }, "updated": { "description": "__Read-only__ When this volume was last updated.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -136305,13 +146785,10 @@ "x-akamai": { "file-path": "schemas/volume.yaml" } - }, - "x-example": { - "x-ref": "../examples/post-attach-volume-200.json" } } }, - "description": "Volume was attached to a Linode." + "description": "The volume was attached to a Linode." }, "default": { "content": { @@ -136400,7 +146877,7 @@ } }, { - "description": "ID of the Volume to attach.", + "description": "The unique identifier for the target volume. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation and store the `id` for the target volume as your `volumeId`.", "example": "{{volumeId}}", "in": "path", "name": "volumeId", @@ -136410,19 +146887,19 @@ "type": "integer" }, "x-akamai": { - "file-path": "parameters/volume-id-path-62b4501e.yaml" + "file-path": "parameters/volume-id.yaml" } } ], "x-akamai": { - "file-path": "paths/attach.yaml", + "file-path": "paths/volume-attach.yaml", "path-info": "/{apiVersion}/volumes/{volumeId}/attach" }, "x-linode-cli-command": "volumes" }, "/{apiVersion}/volumes/{volumeId}/clone": { "post": { - "description": "Creates a Volume on your Account. In order for this request to complete successfully, your User must have the `add_volumes` grant. The new Volume will have the same size and data as the source Volume. Creating a new Volume will incur a charge on your Account.\n\n- Only Volumes with a `status` of `active` can be cloned.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes clone 12345 \\\n --label my-volume\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Target an existing Block Storage volume to create a new one, that's the same size and includes the same data. A new volume will incur a charge on your account.\n\n> \ud83d\udcd8\n>\n> - To run this operation, your user needs the `add_volume` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).\n>\n> - Only a volume with a `status` of `active` can be cloned. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation to view the `status` of each of your volumes.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes clone 12345 \\\n --label my-volume\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-clone-volume" @@ -136431,23 +146908,19 @@ "requestBody": { "content": { "application/json": { + "example": { + "label": "cloned-my-volume" + }, "schema": { "additionalProperties": false, "properties": { "label": { - "description": "__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.", + "description": "The name of the new volume after the clone. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.", "example": "{{label}}", "maxLength": 32, "minLength": 1, "pattern": "^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true + "type": "string" } }, "required": [ @@ -136455,28 +146928,43 @@ ], "type": "object", "x-akamai": { - "file-path": "schemas/added-post-clone-volume.yaml" + "file-path": "schemas/volume-clone.yaml" } - }, - "x-example": { - "x-ref": "../examples/post-clone-volume.json" } } }, - "description": "The requested state your Volume will be cloned into.", "required": true }, "responses": { "200": { "content": { "application/json": { + "example": { + "created": "2025-01-01T00:01:01", + "encryption": "enabled", + "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_my-volume", + "hardware_type": "nvme", + "id": 12345, + "io_ready": true, + "label": "Video-file-storage", + "linode_id": 12346, + "linode_label": "linode123", + "region": "us-iad", + "size": 30, + "status": "active", + "tags": [ + "blk-stg-volume-1", + "videos-storage" + ], + "updated": "2025-01-01T00:01:01" + }, "schema": { "additionalProperties": false, "description": "A Block Storage volume on your account.", "properties": { "created": { "description": "__Read-only__ When this volume was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -136515,6 +147003,12 @@ "type": "integer", "x-linode-cli-display": 1 }, + "io_ready": { + "description": "__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.", + "example": true, + "readOnly": true, + "type": "boolean" + }, "label": { "description": "__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.", "example": "my-volume", @@ -136546,13 +147040,13 @@ "x-linode-cli-display": 7 }, "region": { - "description": "The unique ID of this Region.", - "example": "us-east", + "description": "The unique identifier for the region where the volume lives.", + "example": "us-iad", "type": "string", "x-linode-cli-display": 5 }, "size": { - "description": "The Volume's size, in GiB.", + "description": "The volume's size, in gigabytes.", "example": 30, "maximum": 10240, "type": "integer", @@ -136595,7 +147089,7 @@ }, "updated": { "description": "__Read-only__ When this volume was last updated.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -136606,9 +147100,6 @@ "x-akamai": { "file-path": "schemas/volume.yaml" } - }, - "x-example": { - "x-ref": "../examples/post-clone-volume-200.json" } } }, @@ -136702,7 +147193,7 @@ } }, { - "description": "ID of the Volume to clone.", + "description": "The unique identifier for the target volume. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation and store the `id` for the target volume as your `volumeId`.", "example": "{{volumeId}}", "in": "path", "name": "volumeId", @@ -136712,7 +147203,7 @@ "type": "integer" }, "x-akamai": { - "file-path": "parameters/volume-id-path-1f2bbcd1.yaml" + "file-path": "parameters/volume-id.yaml" } } ], @@ -136724,7 +147215,7 @@ }, "/{apiVersion}/volumes/{volumeId}/detach": { "post": { - "description": "Detaches a Volume on your Account from a Linode on your Account. In order for this request to complete successfully, your User must have `read_write` access to the Volume and `read_write` access to the Linode.\n\nVolumes are automatically detached from deleted Linodes.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes detach 12345\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\nlinodes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Detach a Block Storage volume from a Linode. When you [delete](https://techdocs.akamai.com/linode-api/reference/delete-linode-instance) a Linode, any volumes attached to it are automatically detached.\n\n> \ud83d\udcd8\n>\n> To run this operation, your user needs the `read-write` permission to both the volume and the Linode you want to detach it from.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes detach 12345\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\nlinodes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-detach-volume" @@ -136836,7 +147327,7 @@ } }, { - "description": "ID of the Volume to detach.", + "description": "The unique identifier for the target volume. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation and store the `id` for the target volume as your `volumeId`.", "example": "{{volumeId}}", "in": "path", "name": "volumeId", @@ -136846,19 +147337,19 @@ "type": "integer" }, "x-akamai": { - "file-path": "parameters/volume-id-path-e125a1de.yaml" + "file-path": "parameters/volume-id.yaml" } } ], "x-akamai": { - "file-path": "paths/detach.yaml", + "file-path": "paths/volume-detach.yaml", "path-info": "/{apiVersion}/volumes/{volumeId}/detach" }, "x-linode-cli-command": "volumes" }, "/{apiVersion}/volumes/{volumeId}/resize": { "post": { - "description": "Resize an existing Volume on your Account. In order for this request to complete successfully, your User must have the `read_write` permissions to the Volume.\n\n- Volumes can only be resized up.\n- Only Volumes with a `status` of \"active\" can be resized.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes resize 12345 \\\n --size 30\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", + "description": "Increase the size of an existing Block Storage volume on your account.\n\n> \ud83d\udcd8\n>\n> - To run this operation, your user needs the `add_volume` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).\n>\n> - You can't decrease the size of an existing volume.\n>\n> - Only a volume with a `status` of `active` can be resized. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation to view the `status` of each of your volumes.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli volumes resize 12345 \\\n --size 30\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n volumes:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)", "externalDocs": { "description": "See documentation for this operation in Akamai's Linode API", "url": "https://techdocs.akamai.com/linode-api/reference/post-resize-volume" @@ -136871,7 +147362,7 @@ "additionalProperties": false, "properties": { "size": { - "description": "The Volume's size, in GiB.", + "description": "The volume's size, in gigabytes.", "example": "{{size}}", "maximum": 10240, "type": "integer", @@ -136904,7 +147395,7 @@ "properties": { "created": { "description": "__Read-only__ When this volume was created.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -136943,6 +147434,12 @@ "type": "integer", "x-linode-cli-display": 1 }, + "io_ready": { + "description": "__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.", + "example": true, + "readOnly": true, + "type": "boolean" + }, "label": { "description": "__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.", "example": "my-volume", @@ -136974,13 +147471,13 @@ "x-linode-cli-display": 7 }, "region": { - "description": "The unique ID of this Region.", - "example": "us-east", + "description": "The unique identifier for the region where the volume lives.", + "example": "us-iad", "type": "string", "x-linode-cli-display": 5 }, "size": { - "description": "The Volume's size, in GiB.", + "description": "The volume's size, in gigabytes.", "example": 30, "maximum": 10240, "type": "integer", @@ -137023,7 +147520,7 @@ }, "updated": { "description": "__Read-only__ When this volume was last updated.", - "example": "2018-01-01T00:01:01", + "example": "2025-01-01T00:01:01", "format": "date-time", "readOnly": true, "type": "string" @@ -137129,7 +147626,7 @@ } }, { - "description": "ID of the Volume to resize.", + "description": "The unique identifier for the target volume. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation and store the `id` for the target volume as your `volumeId`.", "example": "{{volumeId}}", "in": "path", "name": "volumeId", @@ -137139,7 +147636,7 @@ "type": "integer" }, "x-akamai": { - "file-path": "parameters/volume-id-path-e4f0f1b5.yaml" + "file-path": "parameters/volume-id.yaml" } } ], @@ -140704,23 +151201,111 @@ ], "tags": [ { - "description": "Use the Account endpoints to manage user settings, billing, and payments. You can also initiate and maintain OAuth client application authentication, enable the Linode Managed service, and create new users on your account.", + "description": "Use account operations to review and update details about your Akamai Connected Cloud account, including billing information, promotions, and your specific information.", "name": "Account" }, { - "description": "Use the Beta Programs endpoint to view information about available beta programs. To sign up for eligible beta programs, run the _Enroll in a Beta program_ operation.", + "description": "Use these operations to review the services available for use with your account.", + "name": "Account availability" + }, + { + "description": "Account settings applies to various services available on your account, including Backups, Linode Interfaces, a Longview subscription, Maintenance Policy, our Managed service, Network Helper, and Object Storage. Use these operations to review the services available and update some of them on your account. Talk to your Akamai account team for full details.", + "name": "Account settings" + }, + { + "description": "Use these operations to review and manage any agreements you need to acknowledge to use the API's services.", + "name": "Account agreements" + }, + { + "description": "Used to manage transfer objects that show your network utilization.", + "name": "Account transfer" + }, + { + "description": "Use the Beta Programs operations to view information about available beta programs and sign up to participate in them.", "name": "Beta programs" }, { - "description": "Managed Databases is Linode's fully-managed, high-performance database service. Use the Managed Databases endpoints to create and manage database clusters.", + "description": "Child accounts let you, as an Akamai partner (a parent account holder), switch between and manage your end customers' accounts (child accounts). Talk to your account team about [setting up a parent-child account environment](https://techdocs.akamai.com/cloud-computing/docs/parent-and-child-accounts-for-akamai-partners). Once in place, you can use these operations to review your child accounts and create tokens for your use as a parent, on a child account.", + "name": "Child accounts" + }, + { + "description": "These legacy operations are available to review and manage the transfer of one entity to another. These operations have been deprecated. Use the Service transfers category operations instead.", + "name": "Entity transfers" + }, + { + "description": "An event represents an action you've taken on your account, over the last 90 days. Use these operations to review your current events.", + "name": "Events" + }, + { + "description": "Review invoice and billing data for services on your account.", + "name": "Invoices" + }, + { + "description": "Use these operations to review successful login data.", + "name": "Logins" + }, + { + "description": "Review details on scheduled maintenance for your Akamai Cloud Computing services.", + "name": "Maintenances" + }, + { + "description": "Review notifications that represent important, often time-sensitive details about your account.", + "name": "Notifications" + }, + { + "description": "Use an OAuth client to allow users (using their Akamai Cloud Computing account) to log in to your own application, and optionally grant your application some amount of access to their Akamai Cloud Computing services.", + "name": "OAuth clients" + }, + { + "description": "Use these operations to review and manage the payment method you've set up to pay your invoices.", + "name": "Payment methods" + }, + { + "description": "Use these operations to view current payment due information and make a payment.", + "name": "Payments" + }, + { + "description": "Use these operations to manage any promotional codes you've been granted for special offers.", + "name": "Promo credits" + }, + { + "description": "Use these operations to manage transfer requests for specific Akamai Cloud Computing services. For example, you could request a service transfer to move a Linode from one region to another. Service transfers have replaced Entity transfers, which have been deprecated.", + "name": "Service transfers" + }, + { + "description": "Users are individuals on your account that you set up to perform specific tasks. Use these operations to view and manage users, including giving them various levels of access to the services on your account.", + "name": "Users" + }, + { + "description": "Managed Databases is Akamai's fully-managed, high-performance database service. Use the Managed Databases operations to create and manage clusters for MySQL and PostgreSQL databases.", "name": "Databases" }, + { + "description": "Use these operations to view your available Managed Databases engine types and versions, for both MySQL and PostgreSQL format databases.", + "name": "Engines" + }, + { + "description": "Use these operations to view the advanced parameters you can apply to a MySQL or PostgreSQL Managed Database, via our partner [Aiven](https://aiven.io/docs/products/mysql/reference/advanced-params).", + "name": "Advanced parameters" + }, + { + "description": "Use these operations to manage the username and password values used to access your MySQL or PostgreSQL Managed Database.", + "name": "Credentials" + }, + { + "description": "Use these operations to view the SSL CA certificate for an accessible MySQL or PostgreSQL Managed Database", + "name": "SSL certificates" + }, + { + "description": "Use these operations to view node type details for each of your Managed Databases.", + "name": "Types" + }, { "description": "Use the Domains endpoints to create and manage domains and domain records on your account.", "name": "Domains" }, { - "description": "Use the Images endpoints to capture, store, and manage custom Linode images.", + "description": "Use the Images endpoints to capture, store, share, and manage custom Linode images.", "name": "Images" }, { @@ -140796,8 +151381,208 @@ "name": "VPCs" }, { - "description": "Use the Monitor endpoints to view Dashboards and Metrics", - "name": "Monitor" + "description": "The Backups service lets you enable automatic backups of the disks on your Linodes. Use these operations to manage your backups.", + "name": "Backups" + }, + { + "description": "A configuration profile establishes the disk layout, kernel installation, and other specifics for a Linode. This is the legacy method used to define a Linode's makeup, and it does not include networking interfaces. Use the Configuration profile interfaces operations to update an existing Linode to include interfaces options. Or, create a new Linode and use the Linode interfaces operations to include network interfaces.", + "name": "Configuration profiles" + }, + { + "description": "Use these operations to upgrade and manage a legacy configuration profile on your Linode to include networking interfaces.", + "name": "Configuration profile interfaces" + }, + { + "description": "Use these operations to manage the individual disks on your Linode.", + "name": "Disks" + }, + { + "description": "Use these operations to manage the firewalls applied to your Linodes.", + "name": "Firewalls" + }, + { + "description": "A Linode interface lets you set up networking on your Linode. A Linode interface links to the Linode, rather than to a legacy configuration profile. Use these operations to manage the Linode interfaces on your Linodes.", + "name": "Linode interfaces" + }, + { + "description": "Use these operations to view and manage the IP addresses assigned to your Linodes.", + "name": "IP addresses" + }, + { + "description": "Use these operations to review various statistics for your Linodes.", + "name": "Statistics" + }, + { + "description": "Use these operations to review information for the Linux kernels on your Linodes.", + "name": "Kernels" + }, + { + "description": "Create and manage Kubernetes clusters on LKE (Linode Kubernetes Engine).", + "name": "Clusters" + }, + { + "description": "View and manage access control lists (ACLs) for the control planes on your LKE clusters. Control Plane ACLs allow you to restrict access to your cluster's control plane to specific IP addresses or ranges.", + "name": "Control Plane ACL" + }, + { + "description": "View the Kubernetes Dashboard URLs for your LKE clusters, which provides a web-based user interface for managing and monitoring each Kubernetes cluster.", + "name": "Cluster dashboard" + }, + { + "description": "View or regenerate the kubeconfig files for your LKE clusters, which authenticate and configure access to your Kubernetes clusters.", + "name": "Kubeconfigs" + }, + { + "description": "View, recycle, and delete nodes within your LKE clusters. Nodes are the worker machines in your Kubernetes cluster that run your containerized applications.", + "name": "Nodes" + }, + { + "description": "Create, manage, and configure node pools within your LKE clusters. Node pools allow you to group nodes with similar configurations and manage them collectively.", + "name": "Node pools" + }, + { + "description": "Regenerate service account tokens for your LKE clusters, which are used by the cluster's control plane components and Linode CSI drivers to authenticate with the Kubernetes API server.", + "name": "LKE service tokens" + }, + { + "description": "View the Kubernetes versions available for deployment on your LKE clusters.", + "name": "LKE versions" + }, + { + "description": "View the LKE tiers (types) available for your Kubernetes clusters. The cluster tier determines the control plane configuration and features available for your cluster.", + "name": "LKE types" + }, + { + "description": "View the API endpoints for your LKE clusters.", + "name": "LKE API Endpoints" + }, + { + "description": "Create an manage Longview Clients to monitor the performance and health of your Linode instances and other servers.", + "name": "Longview clients" + }, + { + "description": "Get details on your current Longview plan subscription and, if needed, update your plan.", + "name": "Longview plans" + }, + { + "description": "Get publicly-accessible information about the Longview plans available on Akamai Cloud, including the number of supported clients.", + "name": "Longview subscriptions" + }, + { + "description": "Get publicly-accessible information about the Longview plans available on Akamai Cloud, including network transfer and region-specific pricing.", + "name": "Longview types" + }, + { + "description": "Use the maintenance operations to view maintenance policies that are available for your Linodes.", + "name": "Maintenance" + }, + { + "description": "Create and manage contacts associated with Linode Managed, who can be notified about issues with your managed Linodes.", + "name": "Managed contacts" + }, + { + "description": "Create and manage credentials used by Linode Managed to access your Linodes for support and maintenance.", + "name": "Managed credentials" + }, + { + "description": "View the unique SSH public key assigned to your Linode Managed account.", + "name": "Managed SSH keys" + }, + { + "description": "View details about issues detected on your managed Linodes and their resolution status.", + "name": "Managed issues" + }, + { + "description": "View and update settings related to Linode Managed for each of your Linodes.", + "name": "Managed Linode settings" + }, + { + "description": "Create and configure the service monitors that are used to check the health of your managed Linodes.", + "name": "Managed service monitors" + }, + { + "description": "View key metrics for your managed Linodes, including CPU usage, disk I/O, and network transfer.", + "name": "Managed statistics" + }, + { + "description": "Akamai Cloud Pulse automatically collects and stores performance metrics for your cloud services. You can view them through dashboards and inspect them at the entity level. Metrics data provides insights into the health, behavior, and performance of your cloud resources.", + "name": "Metrics" + }, + { + "description": "Akamai Cloud Pulse lets you configure alerts to monitor key metrics and events in real time and automatically trigger notifications or actions when predefined thresholds or conditions are met.", + "name": "Alerts" + }, + { + "description": "Akamai Cloud Pulse lets you capture log data across multiple Akamai Cloud services and deliver it to the destination of your choice. These logs can help you improve operational efficiency, enhance security, ensure compliance, and reduce the overhead of managing your Akamai Cloud services.", + "name": "Logs" + }, + { + "description": "Buckets are the primary containers within Object Storage. Each bucket stores your files (objects) and lets you access or share those files. Use these operations to create and manage buckets, as well as the objects in them.", + "name": "Buckets" + }, + { + "description": "You can set up TLS/SSL certificates to secure the connection to the domain you set up for your Object Storage buckets. Use these operations to add, view, and delete these certificates.", + "name": "TLS/SSL certificates" + }, + { + "description": "An endpoint is the S3-compatible URL to an Object Storage bucket. Use these operations to review details about your endpoints.", + "name": "Endpoints" + }, + { + "description": "Object Storage keys are used to authenticate access to your Object Storage buckets. Use these operations to create, view, update, and revoke these keys.", + "name": "Access keys" + }, + { + "description": "View authorized apps that have been granted access to your account. You can also revoke access for any authorized app.", + "name": "OAuth apps" + }, + { + "description": "View details about trusted devices associated with your user account. If needed, you can revoke a trusted device so any future login attempts from that device will go through the full authentication process.", + "name": "Trusted devices" + }, + { + "description": "View the grants (permissions) available to your user account.", + "name": "Grants" + }, + { + "description": "Operations to verify and delete the phone number associated with your user account, which is used to send SMS messages as a form of two-factor authentication (2FA).", + "name": "Phone number" + }, + { + "description": "View and update user preferences tied to OAuth clients.", + "name": "OAuth preferences" + }, + { + "description": "View and configure security questions for your user account. Security questions can be used to help verify your identity when contacting Akamai Support.", + "name": "Security questions" + }, + { + "description": "Manage SSH keys for your user account. When creating a Linode, you can choose to have one or more SSH keys automatically added to the new Linode for secure access.", + "name": "SSH keys" + }, + { + "description": "Enable or disable two-factor authentication (2FA) on your user account to prevent unauthorized logins.", + "name": "Two-factor authentication" + }, + { + "description": "Manage personal access tokens for your user account. Personal access tokens can be used for authentication with the Linode API.", + "name": "Personal access tokens" + }, + { + "description": "Use these operations to open, view, and close support tickets, when you need assistance from Akamai.", + "name": "Support tickets" + }, + { + "description": "Mange any attachments you may need to include with your support tickets, such as log entry files and screenshot images.", + "name": "Attachments" + }, + { + "description": "Use these operations to create and view replies to correspondence for your support tickets.", + "name": "Replies" + }, + { + "description": "Use these operations to review the available Block Storage volume types, including pricing.", + "name": "Volume types" } ], "x-readme": { diff --git a/provider-dev/downloaded/openapi_api_version_removed.json b/provider-dev/downloaded/openapi_api_version_removed.json index 65e5b3a..b910675 100644 --- a/provider-dev/downloaded/openapi_api_version_removed.json +++ b/provider-dev/downloaded/openapi_api_version_removed.json @@ -1,135798 +1,146238 @@ -{ - "components": { - "parameters": { - "beta-id": { - "description": "The ID of the Beta Program.", - "in": "path", - "name": "betaId", - "required": true, - "schema": { - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/beta-id.yaml" - } - }, - "client-id-path": { - "description": "The OAuth Client ID to look up.", - "in": "path", - "name": "clientId", - "required": true, - "schema": { - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/client-id-path.yaml" - } - }, - "client-id-path-ecf807fb": { - "description": "The OAuth Client ID to look up.", - "in": "path", - "name": "clientId", - "required": true, - "schema": { - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/client-id-path-ecf807fb.yaml" - } - }, - "eeuid": { - "description": "The child account to look up. You can run the [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) operation to find the applicable account and store its `euuid`.", - "in": "path", - "name": "euuid", - "required": true, - "schema": { - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/eeuid.yaml" - } - }, - "event-id-path-214cd042": { - "description": "The ID of the Event to designate as seen.", - "in": "path", - "name": "eventId", - "required": true, - "schema": { - "example": 824, - "type": "integer" - }, - "x-akamai": { - "file-path": "parameters/event-id-path-214cd042.yaml" - } - }, - "event-id-path-39255fcf": { - "description": "The ID of the Event.", - "in": "path", - "name": "eventId", - "required": true, - "schema": { - "example": 824, - "type": "integer" - }, - "x-akamai": { - "file-path": "parameters/event-id-path-39255fcf.yaml" - } - }, - "id-path": { - "description": "The slug for the applicable data center. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the slug for each data center.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/id-path.yaml" - } - }, - "invoice-id-path": { - "description": "The ID of the Invoice.", - "in": "path", - "name": "invoiceId", - "required": true, - "schema": { - "example": 387, - "type": "integer" - }, - "x-akamai": { - "file-path": "parameters/invoice-id-path.yaml" - } - }, - "login-id-path": { - "description": "The ID of the login object to access.", - "in": "path", - "name": "loginId", - "required": true, - "schema": { - "example": 863, - "type": "integer" - }, - "x-akamai": { - "file-path": "parameters/login-id-path.yaml" - } - }, - "page-offset": { - "description": "The page of a collection to return.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "default": 1, - "example": 6, - "minimum": 1, - "type": "integer" - }, - "x-akamai": { - "file-path": "parameters/page-offset.yaml" - } - }, - "page-size": { - "description": "The number of items to return per page.", - "in": "query", - "name": "page_size", - "schema": { - "default": 100, - "example": 50, - "maximum": 500, - "minimum": 25, - "type": "integer" - }, - "x-akamai": { - "file-path": "parameters/page-size.yaml" - } - }, - "payment-id-path": { - "description": "The ID of the Payment to look up.", - "in": "path", - "name": "paymentId", - "required": true, - "schema": { - "example": 627, - "type": "integer" - }, - "x-akamai": { - "file-path": "parameters/payment-id-path.yaml" - } - }, - "payment-method-id-path-6078bc7b": { - "description": "The ID of the Payment Method to look up.", - "in": "path", - "name": "paymentMethodId", - "required": true, - "schema": { - "example": 267, - "type": "integer" - }, - "x-akamai": { - "file-path": "parameters/payment-method-id-path-6078bc7b.yaml" - } - }, - "payment-method-id-path-fb39a844": { - "description": "The ID of the Payment Method to make default.", - "in": "path", - "name": "paymentMethodId", - "required": true, - "schema": { - "example": 267, - "type": "integer" - }, - "x-akamai": { - "file-path": "parameters/payment-method-id-path-fb39a844.yaml" - } - }, - "token-path-f857f5a2": { - "description": "The UUID of the Service Transfer.", - "in": "path", - "name": "token", - "required": true, - "schema": { - "format": "uuid", - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/token-path-f857f5a2.yaml" - } - }, - "token-path-faf66b58": { - "description": "The UUID of the Entity Transfer.", - "in": "path", - "name": "token", - "required": true, - "schema": { - "format": "uuid", - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/token-path-faf66b58.yaml" - } - }, - "username-path": { - "description": "The username to look up.", - "in": "path", - "name": "username", - "required": true, - "schema": { - "type": "string" - }, - "x-akamai": { - "file-path": "parameters/username-path.yaml" - } - } - }, - "responses": { - "409": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "errors": { - "items": { - "additionalProperties": false, - "properties": { - "reason": { - "description": "A string explaining that the account could not be canceled because there is an outstanding balance on the account that must be paid first.", - "example": "We were unable to charge your credit card for services rendered. We cannot cancel this account until the balance has been paid.", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-post-cancel-account-409.yaml" - } - }, - "x-example": { - "x-ref": "../examples/tbd.json" - } - } - }, - "description": "Could not charge the credit card on file.", - "x-akamai": { - "file-path": "errors/409.yaml" - } - }, - "504-account-cancel": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "errors": { - "items": { - "additionalProperties": false, - "properties": { - "reason": { - "description": "A string explaining that the account is taking longer to close than expected.", - "example": "Cancellation is taking longer than expected. It may have been successful. Contact customer support to confirm.", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-post-cancel-account-504.yaml" - } - }, - "x-example": { - "x-ref": "../examples/tbd.json" - } - } - }, - "description": "Account is taking longer than expected to cancel.", - "x-akamai": { - "file-path": "errors/504-account-cancel.yaml" - } - }, - "accepted-response": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "warnings": { - "items": { - "additionalProperties": false, - "description": "An object for describing a single warning associated with a response.", - "properties": { - "details": { - "description": "Specific information related to the warning.", - "example": "Linode 123 could not be rebooted.", - "type": "string" - }, - "title": { - "description": "The general warning message.", - "example": "Unable to reboot Linode.", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/warning-object.yaml" - } - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "description": "Accepted with warning.\n\nA warnings array is included with the standard 200 response body." - }, - "deprecated-response": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "warnings": { - "items": { - "additionalProperties": false, - "description": "An object for describing a single warning associated with a response.", - "properties": { - "details": { - "description": "Specific information related to the warning.", - "example": "Linode 123 could not be rebooted.", - "type": "string" - }, - "title": { - "description": "The general warning message.", - "example": "Unable to reboot Linode.", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/warning-object.yaml" - } - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "description": "Request successful. This operation is deprecated and may be removed in a future release.\n\nA warnings array is included with the standard 200 response body." - }, - "error-response": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "errors": { - "items": { - "additionalProperties": false, - "description": "An object for describing a single error that occurred during the processing of a request.", - "properties": { - "field": { - "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", - "example": "fieldname", - "type": "string" - }, - "reason": { - "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", - "example": "fieldname must be a valid value", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/error-object.yaml" - } - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes." - } - }, - "schemas": { - "account": { - "additionalProperties": false, - "description": "Account object.", - "properties": { - "active_promotions": { - "items": { - "additionalProperties": false, - "description": "__Read-only__ Promotions generally offer a set amount of credit that can be used toward your Linode services, and the promotion expires after a specified date. As well, a monthly cap on the promotional offer is set.\n\nSimply put, a promotion offers a certain amount of credit month, until either the expiration date is passed, or until the total promotional credit is used, whichever comes first.", - "properties": { - "credit_monthly_cap": { - "description": "The amount available to spend per month.", - "example": "10.00", - "type": "string", - "x-linode-cli-display": 5 - }, - "credit_remaining": { - "description": "The total amount of credit left for this promotion.", - "example": "50.00", - "type": "string", - "x-linode-cli-display": 3 - }, - "description": { - "description": "A detailed description of this promotion.", - "example": "Receive up to $10 off your services every month for 6 months! Unused credits will expire once this promotion period ends.", - "type": "string" - }, - "expire_dt": { - "description": "When this promotion's credits expire.", - "example": "2018-01-31T23:59:59", - "type": "string", - "x-linode-cli-display": 2 - }, - "image_url": { - "description": "The location of an image for this promotion.", - "example": "https://linode.com/10_a_month_promotion.svg", - "type": "string" - }, - "service_type": { - "description": "The service to which this promotion applies.", - "enum": [ - "all", - "backup", - "blockstorage", - "db_mysql", - "ip_v4", - "linode", - "linode_disk", - "linode_memory", - "longview", - "managed", - "nodebalancer", - "objectstorage", - "placement_group", - "transfer_tx" - ], - "example": "all", - "type": "string", - "x-linode-cli-display": 1 - }, - "summary": { - "description": "Short details of this promotion.", - "example": "$10 off your Linode a month!", - "type": "string", - "x-linode-cli-display": 10 - }, - "this_month_credit_remaining": { - "description": "The amount of credit left for this month for this promotion.", - "example": "10.00", - "type": "string", - "x-linode-cli-display": 4 - } - }, - "readOnly": true, - "type": "object", - "x-akamai": { - "file-path": "schemas/promotion.yaml" - } - }, - "readOnly": true, - "type": "array" - }, - "active_since": { - "description": "__Read-only__ The date and time the account was activated.", - "example": "2018-01-01T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "address_1": { - "description": "The first line of this account's billing address.", - "example": "123 Main Street", - "maxLength": 64, - "type": "string" - }, - "address_2": { - "description": "The second line of this account's billing address.", - "example": "Suite A", - "maxLength": 64, - "type": "string" - }, - "balance": { - "description": "__Read-only__ This account's balance, in US dollars.", - "example": 200, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 4 - }, - "balance_uninvoiced": { - "description": "__Read-only__ This account's current estimated invoice in US dollars. This is not your final invoice balance. Transfer charges are not included in the estimate.", - "example": 145, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 4 - }, - "billing_source": { - "description": "__Read-only__ The source of service charges for this account. Accounts that are associated with Akamai-specific customers return a value of `akamai`. All other accounts return a value of `linode`.", - "enum": [ - "akamai", - "linode" - ], - "example": "akamai", - "readOnly": true, - "type": "string" - }, - "capabilities": { - "description": "__Read-only__ The Akamai Cloud Computing services your account supports.", - "example": [ - "Linodes", - "NodeBalancers", - "Block Storage", - "Object Storage", - "Placement Groups", - "Block Storage Encryption" - ], - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "city": { - "description": "The city for this account's `address`.", - "example": "Philadelphia", - "maxLength": 24, - "type": "string" - }, - "company": { - "description": "The company name assigned to this account. This value can't include the characters, `<` `>` `(` `)` `\"` `=`.", - "example": "Linode LLC", - "maxLength": 128, - "type": "string" - }, - "country": { - "description": "The two-letter ISO 3166 country code for this account's `address`.", - "example": "US", - "type": "string" - }, - "credit_card": { - "additionalProperties": false, - "description": "__Read-only__ The credit card information assigned to this account.", - "properties": { - "expiry": { - "description": "The expiration month and year of the `credit_card`.", - "example": "11/2022", - "type": "string" - }, - "last_four": { - "description": "The last four digits of the `credit_card` assigned to this account.", - "example": 1111, - "type": "string" - } - }, - "readOnly": true, - "type": "object" - }, - "email": { - "description": "The email address of the person assigned to this account.", - "example": "john.smith@linode.com", - "maxLength": 128, - "type": "string", - "x-linode-cli-display": 3 - }, - "euuid": { - "description": "__Read-only__ An external unique identifier for this account.", - "example": "E1AF5EEC-526F-487D-B317EBEB34C87D71", - "format": "uuid", - "readOnly": true, - "type": "string" - }, - "first_name": { - "description": "The first name of the person assigned to this account. This value can't include the characters, `<` `>` `(` `)` `\"` `=`.", - "example": "John", - "maxLength": 50, - "type": "string", - "x-linode-cli-display": 1 - }, - "last_name": { - "description": "The last name of the person assigned to this account. This value can't include the characters, `<` `>` `(` `)` `\"` `=`.", - "example": "Smith", - "maxLength": 50, - "type": "string", - "x-linode-cli-display": 2 - }, - "phone": { - "description": "The phone number assigned to this account.", - "example": "215-555-1212", - "maxLength": 32, - "type": "string" - }, - "state": { - "description": "The state or province for the `address` set for your account, if applicable.\n\n- If the `address` is in the United States (US) or Canada (CA), this is the two-letter ISO 3166 code for the state or province.\n\n- If it's a US military `address`, this is the abbreviation for that territory. This includes `AA` for Armed Forces Americas (excluding Canada), `AE` for Armed Forces Africa, Europe, Middle East, and Canada, or `AP` for Armed Forces Pacific.\n\n- If outside the US or CA, this is the province associated with the account's `address`.", - "example": "PA", - "maxLength": 24, - "type": "string" - }, - "tax_id": { - "description": "The tax identification number (TIN) assigned to this account, used for tax calculations. A TIN is set by the national authorities in your `country`, based on your `address_1`, and it may be named differently between countries. Set to an empty string (`\"\"`) if a TIN doesn't apply or for countries that don't collect tax.\n\n> \ud83d\udcd8\n>\n> This value is externally validated. If the validation is successful, a `tax_id_valid` [event](https://techdocs.akamai.com/linode-api/reference/get-events) is triggered. If unsuccessful, a `tax_id_invalid` event is triggered and an error response is issued for an operation that included it.", - "example": "ATU99999999", - "maxLength": 25, - "type": "string" - }, - "zip": { - "description": "The zip code for this account's `address`.\n\n- It can only contain ASCII letters, numbers, and dashes (`-`).\n\n- It can't contain more than nine letter or number characters.", - "example": "19102-1234", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/account.yaml" - } - }, - "account-availability": { - "additionalProperties": false, - "description": "Account Service Availability object.", - "properties": { - "available": { - "description": "__Read-only__ A list of services _available_ to your account in the `region`.", - "example": [ - "Linodes", - "NodeBalancers" - ], - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "region": { - "description": "__Read-only__ The Akamai cloud computing data center (region), represented by a slug value. You can view a full list of regions and their associated slugs with the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation.", - "example": "us-east", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 1 - }, - "unavailable": { - "description": "__Read-only__ A list of services _unavailable_ to your account in the `region`.", - "example": [ - "Kubernetes", - "Block Storage" - ], - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array", - "x-linode-cli-display": 3 - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/account-availability.yaml" - } - }, - "account-settings": { - "additionalProperties": false, - "description": "Account Settings object.", - "properties": { - "backups_enabled": { - "description": "Account-wide backups default. If `true`, all Linodes created will automatically be enrolled in the Backups service. If `false`, Linodes will not be enrolled by default, but may still be enrolled on creation or later.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 4 - }, - "interfaces_for_new_linodes": { - "description": "__Beta__ Defines if new Linodes can use legacy configuration interfaces:\n- `legacy_config_only`. All new Linodes need to use legacy configuration interfaces. Prevously created Linodes with Linode Interfaces can still exist. Linodes using legacy configuration interfaces can't be upgraded to use Linode Interfaces.\n- `legacy_config_default_but_linode_allowed`. New Linodes can use legacy configuration interfaces or Linode Interfaces, depending on the `interface_generation` setting specified when creating the Linode. By default, new Linodes use legacy configuration interfaces unless otherwise specified. Linodes that use legacy configuration interfaces can upgrade to Linode Interfaces. This is the default setting for existing accounts.\n- `linode_default_but_legacy_config_allowed`. New Linodes can use legacy configuration interfaces or Linode Interfaces, depending on the `interface_generation` setting specified when creating the Linode. By default, new Linodes use Linode Interfaces unless otherwise specified. Linodes that use legacy configuration interfaces can upgrade to Linode interfaces. This is the default setting for new accounts.\n- `linode_only`. All new Linodes need to use Linode Interfaces. Prevously created Linodes with legacy configuration profile interfaces can still exist if they were created under a previous setting. Linodes using legacy configuration interfaces can be upgraded to Linode Interfaces.", - "enum": [ - "legacy_config_only", - "legacy_config_default_but_linode_allowed", - "linode_default_but_legacy_config_allowed", - "linode_only" - ], - "example": "linode_only", - "type": "string", - "x-akamai": { - "status": "BETA" - }, - "x-linode-cli-display": 6 - }, - "longview_subscription": { - "description": "__Read-only__ The Longview Pro tier you are currently subscribed to. The value must be a [Longview subscription](https://techdocs.akamai.com/linode-api/reference/get-longview-subscriptions) ID or `null` for Longview Free.", - "example": "longview-3", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 2 - }, - "managed": { - "description": "__Read-only__ Our 24/7 incident response service. This robust, multi-homed monitoring system distributes monitoring checks to ensure that your servers remain online and available at all times. Linode Managed can monitor any service or software stack reachable over TCP or HTTP. Once you add a service to Linode Managed, we'll monitor it for connectivity, response, and total request time.", - "example": true, - "readOnly": true, - "type": "boolean", - "x-linode-cli-display": 3 - }, - "network_helper": { - "description": "Enables network helper across all users by default for new Linodes and Linode Configs.", - "example": false, - "type": "boolean", - "x-linode-cli-display": 1 - }, - "object_storage": { - "default": "disabled", - "description": "__Read-only__ A string describing the status of this account's Object Storage service enrollment.", - "enum": [ - "disabled", - "suspended", - "active" - ], - "example": "active", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 5 - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/account-settings.yaml" - } - }, - "added-empty-obj": { - "description": "The API responds with an empty object.", - "maxProperties": 0, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-empty-obj.yaml" - } - }, - "added-get-account-logins-200": { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "An object representing a previous successful login for a User.", - "properties": { - "datetime": { - "description": "__Read-only__ When the login was initiated.", - "example": "2018-01-01T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 2 - }, - "id": { - "description": "__Read-only__ The unique ID of this login object.", - "example": 1234, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 - }, - "ip": { - "description": "__Read-only__ The remote IP address that requested the login.", - "example": "192.0.2.0", - "format": "ip", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 3 - }, - "restricted": { - "description": "__Read-only__ True if the User that attempted the login was a restricted User, false otherwise.", - "example": true, - "readOnly": true, - "type": "boolean", - "x-linode-cli-display": 6 - }, - "status": { - "description": "__Read-only__ Whether the login attempt succeeded or failed.", - "enum": [ - "successful", - "failed" - ], - "example": "successful", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 5 - }, - "username": { - "description": "__Read-only__ The username of the User that attempted the login.", - "example": "example_user", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 4 - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/login.yaml" - } - }, - "type": "array" - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-get-account-logins-200.yaml" - } - }, - "added-get-availability-200": { - "allOf": [ - { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "Account Service Availability object.", - "properties": { - "available": { - "description": "__Read-only__ A list of services _available_ to your account in the `region`.", - "example": [ - "Linodes", - "NodeBalancers" - ], - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "region": { - "description": "__Read-only__ The Akamai cloud computing data center (region), represented by a slug value. You can view a full list of regions and their associated slugs with the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation.", - "example": "us-east", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 1 - }, - "unavailable": { - "description": "__Read-only__ A list of services _unavailable_ to your account in the `region`.", - "example": [ - "Kubernetes", - "Block Storage" - ], - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array", - "x-linode-cli-display": 3 - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/account-availability.yaml" - } - }, - "type": "array" - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "description": "An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination) for more information.", - "properties": { - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/pagination-envelope.yaml" - } - } - ], - "x-akamai": { - "file-path": "schemas/added-get-availability-200.yaml" - } - }, - "added-get-child-accounts-200": { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "Child account object.", - "properties": { - "active_since": { - "description": "__Read-only__ The activation date and time for the child account.", - "example": "2018-01-01T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "address_1": { - "description": "__Filterable__ First line of this child account's billing address.", - "example": "123 Main Street", - "maxLength": 64, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "address_2": { - "description": "__Filterable__ Second line of this child account's billing address, if applicable.", - "example": "Suite A", - "maxLength": 64, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "balance": { - "description": "__Read-only__ This child account's balance, in US dollars.", - "example": 200, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 4 - }, - "balance_uninvoiced": { - "description": "__Read-only__ This child account's current estimated invoice in US dollars. This is not your final invoice balance. Transfer charges are not included in the estimate.", - "example": 145, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 4 - }, - "billing_source": { - "description": "__Read-only__ The source of service charges for this account, as determined by its relationship with Akamai. The API returns a value of `external` to describe a child account in a parent-child account environment.", - "enum": [ - "external" - ], - "example": "external", - "readOnly": true, - "type": "string" - }, - "capabilities": { - "description": "__Read-only__ A list of the capabilities the child account supports.", - "example": [ - "Linodes", - "NodeBalancers", - "Block Storage", - "Object Storage" - ], - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "city": { - "description": "__Filterable__ The city for this child account's billing address.", - "example": "San Diego", - "maxLength": 24, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "company": { - "description": "__Filterable__ The company name for the owner of this child account. It can't include any of these characters: `<` `>` `(` `)` `\"` `=`. You can't change this value yourself. We use it to create the proxy users that a parent account uses to access a child account. Talk to your account team if you need to change this value.", - "example": "Acme", - "maxLength": 128, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "country": { - "description": "__Filterable__ The two-letter ISO 3166 country code for this child account's billing address.", - "example": "US", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "credit_card": { - "additionalProperties": false, - "description": "__Read-only__ Information for the credit card you've assigned to this child account.", - "properties": { - "expiry": { - "description": "The expiration month and year of the credit card.", - "example": "11/2024", - "type": "string" - }, - "last_four": { - "description": "The last four digits of the credit card.", - "example": 1111, - "type": "string" - } - }, - "readOnly": true, - "type": "object" - }, - "email": { - "description": "__Filterable__ The email address of the owner of this child account.", - "example": "john.smith@linode.com", - "maxLength": 128, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 3, - "x-linode-filterable": true - }, - "euuid": { - "description": "__Read-only__ An external, unique identifier that Akamai assigned to the child account.", - "example": "A1BC2DEF-34GH-567I-J890KLMN12O34P56", - "format": "uuid", - "readOnly": true, - "type": "string" - }, - "first_name": { - "description": "__Filterable__ The first name of the owner of this child account. It can't include any of these characters: `<` `>` `(` `)` `\"` `=`.", - "example": "John", - "maxLength": 50, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 1, - "x-linode-filterable": true - }, - "last_name": { - "description": "__Filterable__ The last name of the owner of this child account. It can't include any of these characters: `<` `>` `(` `)` `\"` `=`.", - "example": "Smith", - "maxLength": 50, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "phone": { - "description": "__Filterable__ The phone number for the owner of this child account.", - "example": "858-555-1212", - "maxLength": 32, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "state": { - "description": "__Filterable__ The state or province for the billing address (`address_1` and `address_2, if applicable`). If in the United States (US) or Canada (CA), this is the two-letter ISO 3166 State or Province code.\n\n> \ud83d\udcd8\n>\n> If this is a US military address, use state abbreviations (AA, AE, AP).", - "example": "CA", - "maxLength": 24, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "tax_id": { - "description": "The tax identification number for this child account. Use this for tax calculations in some countries. If you live in a country that doesn't collect taxes, ensure this is an empty string (`\"\"`).", - "example": "ATU99999999", - "maxLength": 25, - "type": "string" - }, - "zip": { - "description": "__Filterable__ The zip code of this Account's billing address. The following restrictions apply:\n\n- Can only contain ASCII letters, numbers, and hyphens (`-`).\n- Can't contain more than 9 letter or number characters.", - "example": "92111-1234", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/child-account.yaml" - } - }, - "type": "array" - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-get-child-accounts-200.yaml" - } - }, - "added-get-clients-200": { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "A third-party application registered to Linode that users may log into with their Linode account through our authentication server at [login.linode.com](https://login.linode.com). Using an OAuth Client, a third-party developer may be given access to some, or all, of a User's account for the purposes of their application.", - "properties": { - "id": { - "description": "__Read-only__ The OAuth Client ID. This is used to identify the client, and is a publicly known value (it is not a secret).", - "example": "2737bf16b39ab5d7b4a1", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 1 - }, - "label": { - "description": "__Filterable__ The name of this application. This will be presented to users when they are asked to grant it access to their Account.", - "example": "Test_Client_1", - "maxLength": 512, - "minLength": 1, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "public": { - "default": false, - "description": "__Filterable__ If this is a public or private OAuth Client. Public clients have a slightly different authentication workflow than private clients. See the [OAuth spec](https://oauth.net/2/) for more details.", - "example": false, - "type": "boolean", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 4, - "x-linode-filterable": true - }, - "redirect_uri": { - "description": "The location a successful log in from [login.linode.com](https://login.linode.com) should be redirected to for this client. The receiver of this redirect should be ready to accept an OAuth exchange code and finish the OAuth exchange.", - "example": "https://example.org/oauth/callback", - "format": "url", - "type": "string", - "x-linode-cli-display": 5 - }, - "secret": { - "description": "__Read-only__ The OAuth Client secret, used in the OAuth exchange. This is returned as `` except when an OAuth Client is created or its secret is reset. This is a secret, and should not be shared or disclosed publicly.", - "example": "", - "readOnly": true, - "type": "string" - }, - "status": { - "description": "__Read-only__ The status of this application. `active` by default.", - "enum": [ - "active", - "disabled", - "suspended" - ], - "example": "active", - "readOnly": true, - "type": "string", - "x-linode-cli-color": { - "default_": "white", - "suspended": "red" - }, - "x-linode-cli-display": 3 - }, - "thumbnail_url": { - "description": "__Read-only__ The URL where this client's thumbnail may be viewed, or `null` if this client does not have a thumbnail set.", - "example": "https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail", - "format": "url", - "nullable": true, - "readOnly": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/oauth-client.yaml" - } - }, - "type": "array" - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-get-clients-200.yaml" - } - }, - "added-get-enrolled-beta-programs-200": { - "allOf": [ - { - "additionalProperties": false, - "description": "An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination) for more information.", - "properties": { - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/pagination-envelope.yaml" - } - }, - { - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "An object representing an enrolled Beta Program for the Account.", - "properties": { - "description": { - "description": "__Read-only__ Additional details regarding the Beta Program.", - "example": "This is an open public beta for an example feature.", - "nullable": true, - "readOnly": true, - "type": "string", - "x-linode-cli-display": 3 - }, - "ended": { - "description": "__Filterable__, __Read-only__ The date-time that the Beta Program ended.\n\n`null` indicates that the Beta Program is ongoing.", - "example": null, - "format": "date-time", - "nullable": true, - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 5, - "x-linode-filterable": true - }, - "enrolled": { - "description": "__Filterable__, __Read-only__ The date-time of Account enrollment to the Beta Program.", - "example": "2023-09-11T00:00:00", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 6, - "x-linode-filterable": true - }, - "id": { - "description": "The unique identifier of the Beta Program.", - "example": "example_open", - "type": "string", - "x-linode-cli-display": 1 - }, - "label": { - "description": "__Filterable__, __Read-only__ The name of the Beta Program.", - "example": "Example Open Beta", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "started": { - "description": "__Filterable__, __Read-only__ The start date-time of the Beta Program.", - "example": "2023-07-11T00:00:00", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 4, - "x-linode-filterable": true - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/beta-program-enrolled.yaml" - } - }, - "type": "array" - } - }, - "type": "object" - } - ], - "x-akamai": { - "file-path": "schemas/added-get-enrolled-beta-programs-200.yaml" - } - }, - "added-get-entity-transfers-200": { - "allOf": [ - { - "additionalProperties": false, - "description": "An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination) for more information.", - "properties": { - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/pagination-envelope.yaml" - } - }, - { - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "An object representing an Entity Transfer.", - "properties": { - "created": { - "description": "When this transfer was created.", - "example": "2021-02-11T16:37:03", - "format": "date-time", - "type": "string" - }, - "entities": { - "additionalProperties": false, - "description": "A collection of the entities to include in this transfer request, separated by type.", - "properties": { - "linodes": { - "description": "An array containing the IDs of each of the Linodes included in this transfer.", - "example": [ - 111, - 222 - ], - "items": { - "type": "integer" - }, - "type": "array", - "x-linode-cli-display": 5 - } - }, - "type": "object" - }, - "expiry": { - "description": "When this transfer expires. Transfers will automatically expire 24 hours after creation.", - "example": "2021-02-12T16:37:03", - "format": "date-time", - "type": "string", - "x-linode-cli-display": 3 - }, - "is_sender": { - "description": "__Filterable__ If the requesting account created this transfer.", - "example": true, - "type": "boolean", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 4, - "x-linode-filterable": true - }, - "status": { - "description": "__Filterable__ The status of the transfer request:\n\n`accepted`: The transfer has been accepted by another user and is currently in progress. Transfers can take up to 3 hours to complete.\n`canceled`: The transfer has been canceled by the sender.\n`completed`: The transfer has completed successfully.\n`failed`: The transfer has failed after initiation.\n`pending`: The transfer is ready to be accepted.\n`stale`: The transfer has exceeded its expiration date. It can no longer be accepted or canceled.", - "enum": [ - "accepted", - "canceled", - "completed", - "failed", - "pending", - "stale" - ], - "example": "pending", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-color": { - "accepted": "yellow", - "canceled": "red", - "completed": "green", - "default_": "white", - "failed": "red", - "pending": "yellow", - "stale": "red" - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "token": { - "description": "The token used to identify and accept or cancel this transfer.", - "example": "123E4567-E89B-12D3-A456-426614174000", - "format": "uuid", - "type": "string", - "x-linode-cli-display": 1 - }, - "updated": { - "description": "When this transfer was last updated.", - "example": "2021-02-11T16:37:03", - "format": "date-time", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/entity-transfer.yaml" - } - }, - "type": "array" - } - } - } - ], - "x-akamai": { - "file-path": "schemas/added-get-entity-transfers-200.yaml" - } - }, - "added-get-invoice-items-200": { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "An InvoiceItem object.", - "properties": { - "amount": { - "description": "__Read-only__ The price, in US dollars, of the Invoice Item. Equal to the unit price multiplied by quantity.", - "example": 20.2, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 4 - }, - "from": { - "description": "__Read-only__ The date the Invoice Item started, based on month.", - "example": "2018-01-01T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 2 - }, - "label": { - "description": "__Read-only__ The Invoice Item's display label.", - "example": "Linode 123", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 1 - }, - "quantity": { - "description": "__Read-only__ The quantity of this Item for the specified Invoice.", - "example": 4, - "readOnly": true, - "type": "integer" - }, - "region": { - "description": "__Read-only__ The ID of the applicable Region associated with this Invoice Item.\n\n`null` if there is no applicable Region.", - "example": "us-west", - "nullable": true, - "readOnly": true, - "type": "string", - "x-linode-cli-display": 7 - }, - "tax": { - "description": "__Read-only__ The amount of tax levied on this Item in US Dollars.", - "example": 1.25, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 5 - }, - "to": { - "description": "__Read-only__ The date the Invoice Item ended, based on month.", - "example": "2018-01-31T11:59:59", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 3 - }, - "total": { - "description": "__Read-only__ The price of this Item after taxes in US Dollars.", - "example": 21.45, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 6 - }, - "type": { - "description": "__Read-only__ The type of service, ether `hourly` or `misc`.", - "enum": [ - "hourly", - "misc" - ], - "example": "hourly", - "readOnly": true, - "type": "string" - }, - "unit_price": { - "description": "__Read-only__ The monthly service fee in US Dollars for this Item.", - "example": 5.05, - "readOnly": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/invoice-item.yaml" - } - }, - "type": "array" - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-get-invoice-items-200.yaml" - } - }, - "added-get-invoices-200": { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "Account Invoice object.", - "properties": { - "billing_source": { - "description": "__Filterable__, __Read-only__ `akamai`: This Invoice was generated according to the terms of an agreement between the customer and Akamai.\n\n`linode`: This Invoice was generated according to the default terms, prices, and discounts.", - "enum": [ - "akamai", - "linode" - ], - "example": "linode", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 3.5, - "x-linode-filterable": true - }, - "date": { - "description": "__Filterable__, __Read-only__ When this Invoice was generated.", - "example": "2018-01-01T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "id": { - "description": "__Read-only__ The Invoice's unique ID.", - "example": 123, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 - }, - "label": { - "description": "__Filterable__, __Read-only__ The Invoice's display label.", - "example": "Invoice", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 3, - "x-linode-filterable": true - }, - "subtotal": { - "description": "__Read-only__ The amount of the Invoice before taxes in US Dollars.", - "example": 120.25, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 4 - }, - "tax": { - "description": "__Read-only__ The amount of tax levied on the Invoice in US Dollars.", - "example": 12.25, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 5 - }, - "tax_summary": { - "description": "__Read-only__ The amount of tax broken down into subtotals by source.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "description": "The source of this tax subtotal.", - "example": "PA STATE TAX", - "type": "string" - }, - "tax": { - "description": "The amount of tax subtotal attributable to this source.", - "example": 12.25, - "type": "number" - } - }, - "type": "object" - }, - "readOnly": true, - "type": "array" - }, - "total": { - "description": "__Filterable__, __Read-only__ The amount of the Invoice after taxes in US Dollars.", - "example": 132.5, - "readOnly": true, - "type": "number", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 6, - "x-linode-filterable": true - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/invoice.yaml" - } - }, - "type": "array" - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-get-invoices-200.yaml" - } - }, - "added-get-maintenance-200": { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "Information about maintenance affecting an entity.", - "properties": { - "entity": { - "additionalProperties": false, - "description": "The entity being affected by maintenance.", - "properties": { - "id": { - "description": "The id of the entity being affected by maintenance.", - "example": 1234, - "type": "number" - }, - "label": { - "description": "The label of the entity being affected by maintenance.", - "example": "demo-linode", - "type": "string" - }, - "type": { - "description": "The type of entity.", - "example": "Linode", - "type": "string" - }, - "url": { - "description": "The API endpoint prefix to use in combination with the entity id to find specific information about the entity.", - "example": "https://api.linode.com/v4/linode/instances/{linodeId}", - "type": "string" - } - }, - "type": "object" - }, - "reason": { - "description": "The reason maintenance is being performed.", - "example": "This maintenance will allow us to update the BIOS on the host's motherboard.", - "type": "string" - }, - "status": { - "description": "__Filterable__ The maintenance status.\n\nMaintenance progresses in the following sequence: pending, started, then completed.", - "enum": [ - "completed", - "pending", - "started" - ], - "example": "started", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "type": { - "description": "__Filterable__ The type of maintenance.", - "enum": [ - "reboot", - "cold_migration", - "live_migration" - ], - "example": "reboot", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "when": { - "description": "__Filterable__ When the maintenance will begin.\n\n[Filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) with the following parameters:\n\n- A single value in date-time string format (`%Y-%m-%dT%H:%M:%S`), which returns only matches to that value.\n\n- A dictionary containing pairs of inequality operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single date-time string format values (`%Y-%m-%dT%H:%M:%S`). `+or` accepts an array of values that may consist of single date-time strings or dictionaries of inequality operator pairs.", - "example": "2020-07-09T00:01:01", - "format": "date-time", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/maintenance.yaml" - } - }, - "type": "array" - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-get-maintenance-200.yaml" - } - }, - "added-get-notifications-200": { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "An important, often time-sensitive item related to your account.", - "properties": { - "body": { - "description": "__Read-only__ A full description of this notification, in markdown format. Not all notifications include a `body`.", - "example": null, - "nullable": true, - "readOnly": true, - "type": "string" - }, - "entity": { - "additionalProperties": false, - "description": "__Read-only__ Detailed information about the notification.", - "properties": { - "id": { - "description": "The unique ID of the notification's entity, based on the entity type. Returns `null` for an `account` or `promotion` entity.", - "example": 3456, - "nullable": true, - "type": "integer" - }, - "label": { - "description": "The current label for this notification's entity.\n\nReturns `null` for the following entity types:\n\n- `entity_transfer`\n- `promotion`\n- `region`", - "example": "Linode not booting.", - "nullable": true, - "type": "string" - }, - "type": { - "description": "The type of entity this is related to.", - "enum": [ - "account", - "entity_transfer", - "linode", - "loadbalancers", - "nodebalancer", - "promotion", - "region", - "ticket", - "volume" - ], - "example": "ticket", - "type": "string" - }, - "url": { - "description": "The URL where you can access the notification's object. The URL is relative to the domain where you retrieved the notification. This value is `null` for the `promotion` entity type.", - "example": "/support/tickets/3456", - "nullable": true, - "type": "string" - } - }, - "readOnly": true, - "type": "object" - }, - "label": { - "description": "__Read-only__ A short description of this notification.", - "example": "You have an important ticket open!", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 1 - }, - "message": { - "description": "__Read-only__ A human-readable description of the notification.", - "example": "You have an important ticket open!", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 2 - }, - "severity": { - "description": "__Read-only__ The severity of this notification. This field determines how prominently the notification is displayed and the color of the display text.", - "enum": [ - "minor", - "major", - "critical" - ], - "example": "major", - "readOnly": true, - "type": "string", - "x-linode-cli-color": { - "critical": "b", - "default_": "white", - "minor": "blue" - }, - "x-linode-cli-display": 3 - }, - "type": { - "description": "__Read-only__ The type of notification.", - "enum": [ - "migration_scheduled", - "migration_imminent", - "migration_pending", - "reboot_scheduled", - "outage", - "payment_due", - "ticket_important", - "ticket_abuse", - "notice", - "maintenance", - "promotion", - "tax_id_verifying" - ], - "example": "ticket_important", - "readOnly": true, - "type": "string" - }, - "until": { - "description": "__Read-only__ If this notification has a duration, this is when the event or action will complete. For example, if there's scheduled maintenance for one of our systems, `until` represents the end of the maintenance window.", - "example": null, - "format": "date-time", - "nullable": true, - "readOnly": true, - "type": "string", - "x-linode-cli-color": { - "None": "black", - "default_": "white" - }, - "x-linode-cli-display": 5 - }, - "when": { - "description": "__Read-only__ If this notification is for an event in the future, this specifies when the action occurs. For example, if a compute instance needs to migrate in response to a security advisory, this field sets the approximate time the compute instance will be taken offline for migration.", - "example": null, - "format": "date-time", - "nullable": true, - "readOnly": true, - "type": "string", - "x-linode-cli-color": { - "None": "black", - "default_": "white" - }, - "x-linode-cli-display": 4 - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/notification.yaml" - } - }, - "type": "array" - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-get-notifications-200.yaml" - } - }, - "added-get-payment-methods-200": { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "Payment Method Response Object.", - "properties": { - "created": { - "description": "__Read-only__ When the Payment Method was added to the Account.", - "example": "2018-01-15T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "data": { - "oneOf": [ - { - "additionalProperties": false, - "description": "Credit card information.", - "properties": { - "card_type": { - "description": "__Read-only__ The type of credit card.", - "example": "Discover", - "readOnly": true, - "type": "string" - }, - "expiry": { - "description": "__Read-only__ The expiration month and year of the credit card.", - "example": "06/2022", - "format": "MM/YYYY", - "readOnly": true, - "type": "string" - }, - "last_four": { - "description": "__Read-only__ The last four digits of the credit card number.", - "example": "1234", - "readOnly": true, - "type": "string" - } - }, - "title": "Credit card", - "type": "object", - "x-akamai": { - "file-path": "schemas/credit-card-data.yaml" - }, - "x-linode-ref-name": "Credit Card" - }, - { - "additionalProperties": false, - "description": "Google Pay information.", - "properties": { - "card_type": { - "description": "__Read-only__ The type of credit card.", - "example": "Discover", - "readOnly": true, - "type": "string" - }, - "expiry": { - "description": "__Read-only__ The expiration month and year of the credit card.", - "example": "06/2022", - "format": "MM/YYYY", - "readOnly": true, - "type": "string" - }, - "last_four": { - "description": "__Read-only__ The last four digits of the credit card number.", - "example": "1234", - "readOnly": true, - "type": "string" - } - }, - "title": "Google Pay", - "type": "object", - "x-akamai": { - "file-path": "schemas/google-pay-data.yaml" - }, - "x-linode-ref-name": "Google Pay" - }, - { - "additionalProperties": false, - "description": "PayPal information.", - "properties": { - "email": { - "description": "__Read-only__ The email address associated with your PayPal account.", - "example": "example@linode.com", - "readOnly": true, - "type": "string" - }, - "paypal_id": { - "description": "__Read-only__ PayPal Merchant ID associated with your PayPal account.", - "example": "ABC1234567890", - "readOnly": true, - "type": "string" - } - }, - "title": "Paypal", - "type": "object", - "x-akamai": { - "file-path": "schemas/paypal-data.yaml" - }, - "x-linode-ref-name": "Paypal" - } - ], - "x-linode-cli-display": 4, - "x-linode-cli-format": "json" - }, - "id": { - "description": "The unique ID of this Payment Method.", - "example": 123, - "type": "integer", - "x-linode-cli-display": 1 - }, - "is_default": { - "description": "Whether this Payment Method is the default method for automatically processing service charges.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 3 - }, - "type": { - "description": "The type of Payment Method.", - "enum": [ - "credit_card", - "google_pay", - "paypal" - ], - "example": "credit_card", - "type": "string", - "x-linode-cli-display": 2 - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/payment-method.yaml" - } - }, - "type": "array" - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-get-payment-methods-200.yaml" - } - }, - "added-get-payments-200": { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "Payment object response.", - "properties": { - "date": { - "description": "__Read-only__ When the Payment was made.", - "example": "2018-01-15T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 2 - }, - "id": { - "description": "__Read-only__ The unique ID of the Payment.", - "example": 123, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 - }, - "usd": { - "description": "__Read-only__ The amount, in US dollars, of the Payment.", - "example": "120.50", - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 3 - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/payment.yaml" - } - }, - "type": "array" - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-get-payments-200.yaml" - } - }, - "added-get-service-transfers-200": { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "description": "An object representing a Service Transfer.", - "properties": { - "created": { - "description": "When this transfer was created.", - "example": "2021-02-11T16:37:03", - "format": "date-time", - "type": "string" - }, - "entities": { - "additionalProperties": false, - "description": "A collection of the services to include in this transfer request, separated by type.", - "properties": { - "linodes": { - "description": "An array containing the IDs of each of the Linodes included in this transfer.", - "example": [ - 111, - 222 - ], - "items": { - "type": "integer" - }, - "type": "array", - "x-linode-cli-display": 5 - } - }, - "type": "object" - }, - "expiry": { - "description": "When this transfer expires. Transfers will automatically expire 24 hours after creation.", - "example": "2021-02-12T16:37:03", - "format": "date-time", - "type": "string", - "x-linode-cli-display": 3 - }, - "is_sender": { - "description": "__Filterable__ If the requesting account created this transfer.", - "example": true, - "type": "boolean", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 4, - "x-linode-filterable": true - }, - "status": { - "description": "__Filterable__ The status of the transfer request.\n\n`accepted`: The transfer has been accepted by another user and is currently in progress.\nTransfers can take up to 3 hours to complete.\n\n`canceled`: The transfer has been canceled by the sender.\n\n`completed`: The transfer has completed successfully.\n\n`failed`: The transfer has failed after initiation.\n\n`pending`: The transfer is ready to be accepted.\n\n`stale`: The transfer has exceeded its expiration date. It can no longer be accepted or\ncanceled.", - "enum": [ - "accepted", - "canceled", - "completed", - "failed", - "pending", - "stale" - ], - "example": "pending", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-color": { - "accepted": "yellow", - "canceled": "red", - "completed": "green", - "default_": "white", - "failed": "red", - "pending": "yellow", - "stale": "red" - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "token": { - "description": "The token used to identify and accept or cancel this transfer.", - "example": "123E4567-E89B-12D3-A456-426614174000", - "format": "uuid", - "type": "string", - "x-linode-cli-display": 1 - }, - "updated": { - "description": "When this transfer was last updated.", - "example": "2021-02-11T16:37:03", - "format": "date-time", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/service-transfer.yaml" - } - }, - "type": "array" - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-get-service-transfers-200.yaml" - } - }, - "added-get-user-200": { - "allOf": [ - { - "additionalProperties": false, - "description": "A user on your account. Unrestricted users can log in and access information about your account, while restricted users may only access entities or perform actions they've been granted access to.", - "properties": { - "email": { - "description": "This user's email address. Akamai uses this address for account management communications.", - "example": "example_user@linode.com", - "format": "email", - "type": "string", - "x-linode-cli-display": 2 - }, - "last_login": { - "additionalProperties": false, - "description": "__Read-only__ Details on this user's last login attempt. Returned as `null` if this user hasn't attempted a login since it was created. You can run the [List user logins](https://techdocs.akamai.com/linode-api/reference/get-account-logins) operation for additional login information.", - "nullable": true, - "properties": { - "login_datetime": { - "description": "__Read-only__ The date and time of this user's most recent login attempt.", - "example": "2018-01-01T01:01:01", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", - "enum": [ - "successful", - "failed" - ], - "example": "successful", - "readOnly": true, - "type": "string" - } - }, - "readOnly": true, - "type": "object" - }, - "password_created": { - "description": "__Read-only__ When this user's current password was created. You initially create a password during the account sign-up process, and you can update it using the [Reset Password](https://login.linode.com/forgot/password) webpage. Returned as `null` if this user doesn't have a password set.", - "example": "2018-01-01T01:01:01", - "format": "date-time", - "nullable": true, - "readOnly": true, - "type": "string" - }, - "restricted": { - "description": "If `true`, this user needs specific access granted to perform actions or access entities on your account. Run [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for details on how to configure grants for a restricted user.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 3 - }, - "ssh_keys": { - "description": "__Read-only__ A list of the labels for SSH keys added by this user. Users can add keys with the [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) operation. These keys are deployed when this user is included in the `authorized_users` field of the following requests:\n\n- [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)\n\n- [Rebuild a Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)\n\n- [Create a disk](https://techdocs.akamai.com/linode-api/reference/post-add-linode-disk)", - "example": [ - "home-pc", - "laptop" - ], - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "tfa_enabled": { - "description": "__Read-only__ Whether this user has Two Factor Authentication (TFA) enabled. Run the [Create a two factor secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable) operation to enable TFA.", - "example": true, - "readOnly": true, - "type": "boolean" - }, - "username": { - "description": "__Filterable__ The name of this user. This user needs to use this value to log in. It may also display alongside actions this user performs, including events or public StackScripts.", - "example": "example_user", - "maxLength": 32, - "minLength": 3, - "pattern": "^[a-zA-Z0-9]((?![_-]{2,})[a-zA-Z0-9-_])+[a-zA-Z0-9]$", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 1, - "x-linode-filterable": true - }, - "verified_phone_number": { - "description": "__Read-only__ The [verified](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify) phone number for this user profile. Returned as `null` if the user doesn't have a verified phone number.", - "example": "+5555555555", - "format": "phone", - "nullable": true, - "readOnly": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/user.yaml" - } - }, - { - "additionalProperties": false, - "description": "The type of user on an account. Mostly applies to the use of the parent and child accounts for Akamai partners functionality.", - "properties": { - "user_type": { - "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractural relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", - "enum": [ - "parent", - "child", - "proxy", - "default" - ], - "example": "parent", - "readOnly": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/user-type.yaml" - } - } - ], - "x-akamai": { - "file-path": "schemas/added-get-user-200.yaml" - } - }, - "added-get-users-200": { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "allOf": [ - { - "additionalProperties": false, - "description": "A user on your account. Unrestricted users can log in and access information about your account, while restricted users may only access entities or perform actions they've been granted access to.", - "properties": { - "email": { - "description": "This user's email address. Akamai uses this address for account management communications.", - "example": "example_user@linode.com", - "format": "email", - "type": "string", - "x-linode-cli-display": 2 - }, - "last_login": { - "additionalProperties": false, - "description": "__Read-only__ Details on this user's last login attempt. Returned as `null` if this user hasn't attempted a login since it was created. You can run the [List user logins](https://techdocs.akamai.com/linode-api/reference/get-account-logins) operation for additional login information.", - "nullable": true, - "properties": { - "login_datetime": { - "description": "__Read-only__ The date and time of this user's most recent login attempt.", - "example": "2018-01-01T01:01:01", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", - "enum": [ - "successful", - "failed" - ], - "example": "successful", - "readOnly": true, - "type": "string" - } - }, - "readOnly": true, - "type": "object" - }, - "password_created": { - "description": "__Read-only__ When this user's current password was created. You initially create a password during the account sign-up process, and you can update it using the [Reset Password](https://login.linode.com/forgot/password) webpage. Returned as `null` if this user doesn't have a password set.", - "example": "2018-01-01T01:01:01", - "format": "date-time", - "nullable": true, - "readOnly": true, - "type": "string" - }, - "restricted": { - "description": "If `true`, this user needs specific access granted to perform actions or access entities on your account. Run [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for details on how to configure grants for a restricted user.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 3 - }, - "ssh_keys": { - "description": "__Read-only__ A list of the labels for SSH keys added by this user. Users can add keys with the [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) operation. These keys are deployed when this user is included in the `authorized_users` field of the following requests:\n\n- [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)\n\n- [Rebuild a Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)\n\n- [Create a disk](https://techdocs.akamai.com/linode-api/reference/post-add-linode-disk)", - "example": [ - "home-pc", - "laptop" - ], - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "tfa_enabled": { - "description": "__Read-only__ Whether this user has Two Factor Authentication (TFA) enabled. Run the [Create a two factor secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable) operation to enable TFA.", - "example": true, - "readOnly": true, - "type": "boolean" - }, - "username": { - "description": "__Filterable__ The name of this user. This user needs to use this value to log in. It may also display alongside actions this user performs, including events or public StackScripts.", - "example": "example_user", - "maxLength": 32, - "minLength": 3, - "pattern": "^[a-zA-Z0-9]((?![_-]{2,})[a-zA-Z0-9-_])+[a-zA-Z0-9]$", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 1, - "x-linode-filterable": true - }, - "verified_phone_number": { - "description": "__Read-only__ The [verified](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify) phone number for this user profile. Returned as `null` if the user doesn't have a verified phone number.", - "example": "+5555555555", - "format": "phone", - "nullable": true, - "readOnly": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/user.yaml" - } - }, - { - "additionalProperties": false, - "description": "The type of user on an account. Mostly applies to the use of the parent and child accounts for Akamai partners functionality.", - "properties": { - "user_type": { - "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractural relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", - "enum": [ - "parent", - "child", - "proxy", - "default" - ], - "example": "parent", - "readOnly": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/user-type.yaml" - } - } - ] - }, - "type": "array" - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-get-users-200.yaml" - } - }, - "added-post-beta-program": { - "additionalProperties": false, - "description": "The Beta Program ID to enroll in for your Account.", - "properties": { - "id": { - "description": "The unique identifier of the Beta Program.", - "example": "example_open", - "type": "string", - "x-linode-cli-display": 1 - } - }, - "required": [ - "id" - ], - "type": "object", - "x-akamai": { - "file-path": "schemas/added-post-beta-program.yaml" - } - }, - "added-post-cancel-account": { - "additionalProperties": false, - "properties": { - "comments": { - "description": "Any reason for cancelling the account, and any other comments you might have about your Linode service.", - "example": "I'm consolidating multiple accounts into one.", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-post-cancel-account.yaml" - } - }, - "added-post-cancel-account-200": { - "additionalProperties": false, - "example": { - "survey_link": "https://alinktothesurvey.com" - }, - "properties": { - "survey_link": { - "description": "A link to Linode's exit survey.", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-post-cancel-account-200.yaml" - } - }, - "added-post-cancel-account-409": { - "additionalProperties": false, - "properties": { - "errors": { - "items": { - "additionalProperties": false, - "properties": { - "reason": { - "description": "A string explaining that the account could not be canceled because there is an outstanding balance on the account that must be paid first.", - "example": "We were unable to charge your credit card for services rendered. We cannot cancel this account until the balance has been paid.", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-post-cancel-account-409.yaml" - } - }, - "added-post-cancel-account-504": { - "additionalProperties": false, - "properties": { - "errors": { - "items": { - "additionalProperties": false, - "properties": { - "reason": { - "description": "A string explaining that the account is taking longer to close than expected.", - "example": "Cancellation is taking longer than expected. It may have been successful. Contact customer support to confirm.", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-post-cancel-account-504.yaml" - } - }, - "added-post-client": { - "allOf": [ - { - "additionalProperties": false, - "description": "A third-party application registered to Linode that users may log into with their Linode account through our authentication server at [login.linode.com](https://login.linode.com). Using an OAuth Client, a third-party developer may be given access to some, or all, of a User's account for the purposes of their application.", - "properties": { - "id": { - "description": "__Read-only__ The OAuth Client ID. This is used to identify the client, and is a publicly known value (it is not a secret).", - "example": "2737bf16b39ab5d7b4a1", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 1 - }, - "label": { - "description": "__Filterable__ The name of this application. This will be presented to users when they are asked to grant it access to their Account.", - "example": "Test_Client_1", - "maxLength": 512, - "minLength": 1, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "public": { - "default": false, - "description": "__Filterable__ If this is a public or private OAuth Client. Public clients have a slightly different authentication workflow than private clients. See the [OAuth spec](https://oauth.net/2/) for more details.", - "example": false, - "type": "boolean", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 4, - "x-linode-filterable": true - }, - "redirect_uri": { - "description": "The location a successful log in from [login.linode.com](https://login.linode.com) should be redirected to for this client. The receiver of this redirect should be ready to accept an OAuth exchange code and finish the OAuth exchange.", - "example": "https://example.org/oauth/callback", - "format": "url", - "type": "string", - "x-linode-cli-display": 5 - }, - "secret": { - "description": "__Read-only__ The OAuth Client secret, used in the OAuth exchange. This is returned as `` except when an OAuth Client is created or its secret is reset. This is a secret, and should not be shared or disclosed publicly.", - "example": "", - "readOnly": true, - "type": "string" - }, - "status": { - "description": "__Read-only__ The status of this application. `active` by default.", - "enum": [ - "active", - "disabled", - "suspended" - ], - "example": "active", - "readOnly": true, - "type": "string", - "x-linode-cli-color": { - "default_": "white", - "suspended": "red" - }, - "x-linode-cli-display": 3 - }, - "thumbnail_url": { - "description": "__Read-only__ The URL where this client's thumbnail may be viewed, or `null` if this client does not have a thumbnail set.", - "example": "https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail", - "format": "url", - "nullable": true, - "readOnly": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/oauth-client.yaml" - } - } - ], - "required": [ - "label", - "redirect_uri" - ], - "x-akamai": { - "file-path": "schemas/added-post-client.yaml" - } - }, - "added-post-entity-transfer": { - "additionalProperties": false, - "properties": { - "entities": { - "additionalProperties": false, - "description": "A collection of the entities to include in this transfer request, separated by type.", - "properties": { - "linodes": { - "description": "An array containing the IDs of each of the Linodes included in this transfer.", - "example": [ - 111, - 222 - ], - "items": { - "type": "integer" - }, - "type": "array", - "x-linode-cli-display": 5 - } - }, - "type": "object" - } - }, - "required": [ - "entities" - ], - "type": "object", - "x-akamai": { - "file-path": "schemas/added-post-entity-transfer.yaml" - } - }, - "added-post-pay-pal-payment-200": { - "additionalProperties": false, - "properties": { - "checkout_token": { - "description": "__Read-only__ The checkout token generated for this Payment.", - "example": "EC-1A2B3C4D5E6F7G8H9", - "readOnly": true, - "type": "string" - }, - "payment_id": { - "description": "The paypal-generated ID for this Payment. Used when authorizing the Payment in PayPal's interface.", - "example": "PAY-1234567890ABCDEFGHIJKLMN", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-post-pay-pal-payment-200.yaml" - } - }, - "added-post-payment": { - "additionalProperties": false, - "properties": { - "payment_method_id": { - "description": "The ID of the Payment Method to apply to the Payment.", - "example": 123, - "type": "integer" - }, - "usd": { - "description": "The amount in US Dollars of the Payment.\n\n- Can begin with or without `$`.\n- Commas (`,`) are not accepted.\n- Must end with a decimal expression, such as `.00` or `.99`.\n- Minimum: `$5.00` or the Account balance, whichever is lower.\n- Maximum: `$2000.00` or the Account balance up to `$50000.00`, whichever is greater.", - "example": "$120.50", - "pattern": "^\\$?\\d+\\.\\d{2}$", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/added-post-payment.yaml" - } - }, - "added-post-payment-method": { - "additionalProperties": false, - "description": "Payment Method Request Object.", - "properties": { - "data": { - "additionalProperties": false, - "description": "An object representing the credit card information you have on file with Linode to make Payments against your Account.", - "properties": { - "card_number": { - "description": "Your credit card number. No spaces or hyphens (`-`) allowed.", - "example": 4111111111111111, - "format": "digits", - "maxLength": 24, - "minLength": 14, - "type": "string" - }, - "cvv": { - "description": "CVV (Card Verification Value) of the credit card, typically found on the back of the card.", - "example": "123", - "format": "digits", - "maxLength": 4, - "minLength": 3, - "type": "string" - }, - "expiry_month": { - "description": "A value from 1-12 representing the expiration month of your credit card.\n\n - 1 = January\n - 2 = February\n - 3 = March\n - Etc.", - "example": 12, - "maximum": 12, - "minimum": 1, - "type": "integer" - }, - "expiry_year": { - "description": "A four-digit integer representing the expiration year of your credit card.\n\nThe combination of `expiry_month` and `expiry_year` must result in a month/year combination of the current month or in the future. An expiration date set in the past is invalid.", - "example": 2020, - "maxLength": 4, - "minLength": 4, - "type": "integer" - } - }, - "required": [ - "card_number", - "expiry_month", - "expiry_year", - "cvv" - ], - "type": "object", - "x-akamai": { - "file-path": "schemas/credit-card.yaml" - } - }, - "is_default": { - "description": "Whether this Payment Method is the default method for automatically processing service charges.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 3 - }, - "type": { - "description": "The type of Payment Method.\n\nAlternative Payment Methods including Google Pay and PayPal can be added using the Cloud Manager. See the [Manage Payment Methods](https://www.linode.com/docs/products/platform/billing/guides/payment-methods/) guide\nfor details and instructions.", - "enum": [ - "credit_card" - ], - "example": "credit_card", - "type": "string" - } - }, - "required": [ - "type", - "data", - "is_default" - ], - "type": "object", - "x-akamai": { - "file-path": "schemas/added-post-payment-method.yaml" - } - }, - "added-post-promo-credit": { - "additionalProperties": false, - "properties": { - "promo_code": { - "description": "The Promo Code.", - "maxLength": 32, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "promo_code" - ], - "type": "object", - "x-akamai": { - "file-path": "schemas/added-post-promo-credit.yaml" - } - }, - "added-post-service-transfer": { - "additionalProperties": false, - "properties": { - "entities": { - "additionalProperties": false, - "description": "A collection of the services to include in this transfer request, separated by type.", - "properties": { - "linodes": { - "description": "An array containing the IDs of each of the Linodes included in this transfer.", - "example": [ - 111, - 222 - ], - "items": { - "type": "integer" - }, - "type": "array", - "x-linode-cli-display": 5 - } - }, - "type": "object" - } - }, - "required": [ - "entities" - ], - "type": "object", - "x-akamai": { - "file-path": "schemas/added-post-service-transfer.yaml" - } - }, - "added-post-user": { - "allOf": [ - { - "additionalProperties": false, - "description": "A user on your account. Unrestricted users can log in and access information about your account, while restricted users may only access entities or perform actions they've been granted access to.", - "properties": { - "email": { - "description": "This user's email address. Akamai uses this address for account management communications.", - "example": "example_user@linode.com", - "format": "email", - "type": "string", - "x-linode-cli-display": 2 - }, - "last_login": { - "additionalProperties": false, - "description": "__Read-only__ Details on this user's last login attempt. Returned as `null` if this user hasn't attempted a login since it was created. You can run the [List user logins](https://techdocs.akamai.com/linode-api/reference/get-account-logins) operation for additional login information.", - "nullable": true, - "properties": { - "login_datetime": { - "description": "__Read-only__ The date and time of this user's most recent login attempt.", - "example": "2018-01-01T01:01:01", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", - "enum": [ - "successful", - "failed" - ], - "example": "successful", - "readOnly": true, - "type": "string" - } - }, - "readOnly": true, - "type": "object" - }, - "password_created": { - "description": "__Read-only__ When this user's current password was created. You initially create a password during the account sign-up process, and you can update it using the [Reset Password](https://login.linode.com/forgot/password) webpage. Returned as `null` if this user doesn't have a password set.", - "example": "2018-01-01T01:01:01", - "format": "date-time", - "nullable": true, - "readOnly": true, - "type": "string" - }, - "restricted": { - "description": "If `true`, this user needs specific access granted to perform actions or access entities on your account. Run [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for details on how to configure grants for a restricted user.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 3 - }, - "ssh_keys": { - "description": "__Read-only__ A list of the labels for SSH keys added by this user. Users can add keys with the [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) operation. These keys are deployed when this user is included in the `authorized_users` field of the following requests:\n\n- [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)\n\n- [Rebuild a Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)\n\n- [Create a disk](https://techdocs.akamai.com/linode-api/reference/post-add-linode-disk)", - "example": [ - "home-pc", - "laptop" - ], - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "tfa_enabled": { - "description": "__Read-only__ Whether this user has Two Factor Authentication (TFA) enabled. Run the [Create a two factor secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable) operation to enable TFA.", - "example": true, - "readOnly": true, - "type": "boolean" - }, - "username": { - "description": "__Filterable__ The name of this user. This user needs to use this value to log in. It may also display alongside actions this user performs, including events or public StackScripts.", - "example": "example_user", - "maxLength": 32, - "minLength": 3, - "pattern": "^[a-zA-Z0-9]((?![_-]{2,})[a-zA-Z0-9-_])+[a-zA-Z0-9]$", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 1, - "x-linode-filterable": true - }, - "verified_phone_number": { - "description": "__Read-only__ The [verified](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify) phone number for this user profile. Returned as `null` if the user doesn't have a verified phone number.", - "example": "+5555555555", - "format": "phone", - "nullable": true, - "readOnly": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/user.yaml" - } - } - ], - "required": [ - "username", - "email" - ], - "x-akamai": { - "file-path": "schemas/added-post-user.yaml" - } - }, - "added-put-user-200": { - "allOf": [ - { - "additionalProperties": false, - "description": "A user on your account. Unrestricted users can log in and access information about your account, while restricted users may only access entities or perform actions they've been granted access to.", - "properties": { - "email": { - "description": "This user's email address. Akamai uses this address for account management communications.", - "example": "example_user@linode.com", - "format": "email", - "type": "string", - "x-linode-cli-display": 2 - }, - "last_login": { - "additionalProperties": false, - "description": "__Read-only__ Details on this user's last login attempt. Returned as `null` if this user hasn't attempted a login since it was created. You can run the [List user logins](https://techdocs.akamai.com/linode-api/reference/get-account-logins) operation for additional login information.", - "nullable": true, - "properties": { - "login_datetime": { - "description": "__Read-only__ The date and time of this user's most recent login attempt.", - "example": "2018-01-01T01:01:01", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "status": { - "description": "__Read-only__ The result of this user's most recent login attempt.", - "enum": [ - "successful", - "failed" - ], - "example": "successful", - "readOnly": true, - "type": "string" - } - }, - "readOnly": true, - "type": "object" - }, - "password_created": { - "description": "__Read-only__ When this user's current password was created. You initially create a password during the account sign-up process, and you can update it using the [Reset Password](https://login.linode.com/forgot/password) webpage. Returned as `null` if this user doesn't have a password set.", - "example": "2018-01-01T01:01:01", - "format": "date-time", - "nullable": true, - "readOnly": true, - "type": "string" - }, - "restricted": { - "description": "If `true`, this user needs specific access granted to perform actions or access entities on your account. Run [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for details on how to configure grants for a restricted user.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 3 - }, - "ssh_keys": { - "description": "__Read-only__ A list of the labels for SSH keys added by this user. Users can add keys with the [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) operation. These keys are deployed when this user is included in the `authorized_users` field of the following requests:\n\n- [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)\n\n- [Rebuild a Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance)\n\n- [Create a disk](https://techdocs.akamai.com/linode-api/reference/post-add-linode-disk)", - "example": [ - "home-pc", - "laptop" - ], - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "tfa_enabled": { - "description": "__Read-only__ Whether this user has Two Factor Authentication (TFA) enabled. Run the [Create a two factor secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable) operation to enable TFA.", - "example": true, - "readOnly": true, - "type": "boolean" - }, - "username": { - "description": "__Filterable__ The name of this user. This user needs to use this value to log in. It may also display alongside actions this user performs, including events or public StackScripts.", - "example": "example_user", - "maxLength": 32, - "minLength": 3, - "pattern": "^[a-zA-Z0-9]((?![_-]{2,})[a-zA-Z0-9-_])+[a-zA-Z0-9]$", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 1, - "x-linode-filterable": true - }, - "verified_phone_number": { - "description": "__Read-only__ The [verified](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify) phone number for this user profile. Returned as `null` if the user doesn't have a verified phone number.", - "example": "+5555555555", - "format": "phone", - "nullable": true, - "readOnly": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/user.yaml" - } - }, - { - "additionalProperties": false, - "description": "The type of user on an account. Mostly applies to the use of the parent and child accounts for Akamai partners functionality.", - "properties": { - "user_type": { - "description": "__Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include:\n\n- `parent`. This is a user in an Akamai partner account. Akamai partners have a contractural relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user.\n\n- `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account.\n\n- `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user.\n\n- `default`. This applies to all regular, non-parent-child account users.", - "enum": [ - "parent", - "child", - "proxy", - "default" - ], - "example": "parent", - "readOnly": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/user-type.yaml" - } - } - ], - "x-akamai": { - "file-path": "schemas/added-put-user-200.yaml" - } - }, - "agreements": { - "additionalProperties": false, - "description": "Acknowledgment status for agreements on your account. When acknowledging any agreements, set them to `true` and omit any remainders.", - "properties": { - "billing_agreement": { - "description": "Certain regions require that you share your tax identification number (TIN) with Akamai. When you do, you need to acknowledge Akamai's [privacy statement](https://www.akamai.com/legal/privacy-statement) agreement, in regards to its protection. When set to `true`, you've acknowledged this agreement.", - "type": "boolean" - }, - "eu_model": { - "description": "The acknowledgement status for the [cross-border data transfer](https://www.akamai.com/legal/compliance/privacy-trust-center/cross-border-data-transfer-statement) agreement.", - "example": true, - "type": "boolean" - }, - "master_service_agreement": { - "description": "The acknowledgement status for Akamai's [master service agreement](https://www.linode.com/legal-msa/).", - "example": true, - "type": "boolean" - }, - "privacy_policy": { - "description": "The acknowledgement status for Akamai's [privacy statement](https://www.akamai.com/legal/privacy-statement).", - "example": true, - "type": "boolean" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/agreements.yaml" - } - }, - "beta-program-enrolled": { - "additionalProperties": false, - "description": "An object representing an enrolled Beta Program for the Account.", - "properties": { - "description": { - "description": "__Read-only__ Additional details regarding the Beta Program.", - "example": "This is an open public beta for an example feature.", - "nullable": true, - "readOnly": true, - "type": "string", - "x-linode-cli-display": 3 - }, - "ended": { - "description": "__Filterable__, __Read-only__ The date-time that the Beta Program ended.\n\n`null` indicates that the Beta Program is ongoing.", - "example": null, - "format": "date-time", - "nullable": true, - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 5, - "x-linode-filterable": true - }, - "enrolled": { - "description": "__Filterable__, __Read-only__ The date-time of Account enrollment to the Beta Program.", - "example": "2023-09-11T00:00:00", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 6, - "x-linode-filterable": true - }, - "id": { - "description": "The unique identifier of the Beta Program.", - "example": "example_open", - "type": "string", - "x-linode-cli-display": 1 - }, - "label": { - "description": "__Filterable__, __Read-only__ The name of the Beta Program.", - "example": "Example Open Beta", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "started": { - "description": "__Filterable__, __Read-only__ The start date-time of the Beta Program.", - "example": "2023-07-11T00:00:00", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 4, - "x-linode-filterable": true - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/beta-program-enrolled.yaml" - } - }, - "child-account": { - "additionalProperties": false, - "description": "Child account object.", - "properties": { - "active_since": { - "description": "__Read-only__ The activation date and time for the child account.", - "example": "2018-01-01T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "address_1": { - "description": "__Filterable__ First line of this child account's billing address.", - "example": "123 Main Street", - "maxLength": 64, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "address_2": { - "description": "__Filterable__ Second line of this child account's billing address, if applicable.", - "example": "Suite A", - "maxLength": 64, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "balance": { - "description": "__Read-only__ This child account's balance, in US dollars.", - "example": 200, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 4 - }, - "balance_uninvoiced": { - "description": "__Read-only__ This child account's current estimated invoice in US dollars. This is not your final invoice balance. Transfer charges are not included in the estimate.", - "example": 145, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 4 - }, - "billing_source": { - "description": "__Read-only__ The source of service charges for this account, as determined by its relationship with Akamai. The API returns a value of `external` to describe a child account in a parent-child account environment.", - "enum": [ - "external" - ], - "example": "external", - "readOnly": true, - "type": "string" - }, - "capabilities": { - "description": "__Read-only__ A list of the capabilities the child account supports.", - "example": [ - "Linodes", - "NodeBalancers", - "Block Storage", - "Object Storage" - ], - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "city": { - "description": "__Filterable__ The city for this child account's billing address.", - "example": "San Diego", - "maxLength": 24, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "company": { - "description": "__Filterable__ The company name for the owner of this child account. It can't include any of these characters: `<` `>` `(` `)` `\"` `=`. You can't change this value yourself. We use it to create the proxy users that a parent account uses to access a child account. Talk to your account team if you need to change this value.", - "example": "Acme", - "maxLength": 128, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "country": { - "description": "__Filterable__ The two-letter ISO 3166 country code for this child account's billing address.", - "example": "US", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "credit_card": { - "additionalProperties": false, - "description": "__Read-only__ Information for the credit card you've assigned to this child account.", - "properties": { - "expiry": { - "description": "The expiration month and year of the credit card.", - "example": "11/2024", - "type": "string" - }, - "last_four": { - "description": "The last four digits of the credit card.", - "example": 1111, - "type": "string" - } - }, - "readOnly": true, - "type": "object" - }, - "email": { - "description": "__Filterable__ The email address of the owner of this child account.", - "example": "john.smith@linode.com", - "maxLength": 128, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 3, - "x-linode-filterable": true - }, - "euuid": { - "description": "__Read-only__ An external, unique identifier that Akamai assigned to the child account.", - "example": "A1BC2DEF-34GH-567I-J890KLMN12O34P56", - "format": "uuid", - "readOnly": true, - "type": "string" - }, - "first_name": { - "description": "__Filterable__ The first name of the owner of this child account. It can't include any of these characters: `<` `>` `(` `)` `\"` `=`.", - "example": "John", - "maxLength": 50, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 1, - "x-linode-filterable": true - }, - "last_name": { - "description": "__Filterable__ The last name of the owner of this child account. It can't include any of these characters: `<` `>` `(` `)` `\"` `=`.", - "example": "Smith", - "maxLength": 50, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "phone": { - "description": "__Filterable__ The phone number for the owner of this child account.", - "example": "858-555-1212", - "maxLength": 32, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "state": { - "description": "__Filterable__ The state or province for the billing address (`address_1` and `address_2, if applicable`). If in the United States (US) or Canada (CA), this is the two-letter ISO 3166 State or Province code.\n\n> \ud83d\udcd8\n>\n> If this is a US military address, use state abbreviations (AA, AE, AP).", - "example": "CA", - "maxLength": 24, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "tax_id": { - "description": "The tax identification number for this child account. Use this for tax calculations in some countries. If you live in a country that doesn't collect taxes, ensure this is an empty string (`\"\"`).", - "example": "ATU99999999", - "maxLength": 25, - "type": "string" - }, - "zip": { - "description": "__Filterable__ The zip code of this Account's billing address. The following restrictions apply:\n\n- Can only contain ASCII letters, numbers, and hyphens (`-`).\n- Can't contain more than 9 letter or number characters.", - "example": "92111-1234", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/child-account.yaml" - } - }, - "credit-card": { - "additionalProperties": false, - "description": "An object representing the credit card information you have on file with Linode to make Payments against your Account.", - "properties": { - "card_number": { - "description": "Your credit card number. No spaces or hyphens (`-`) allowed.", - "example": 4111111111111111, - "format": "digits", - "maxLength": 24, - "minLength": 14, - "type": "string" - }, - "cvv": { - "description": "CVV (Card Verification Value) of the credit card, typically found on the back of the card.", - "example": "123", - "format": "digits", - "maxLength": 4, - "minLength": 3, - "type": "string" - }, - "expiry_month": { - "description": "A value from 1-12 representing the expiration month of your credit card.\n\n - 1 = January\n - 2 = February\n - 3 = March\n - Etc.", - "example": 12, - "maximum": 12, - "minimum": 1, - "type": "integer" - }, - "expiry_year": { - "description": "A four-digit integer representing the expiration year of your credit card.\n\nThe combination of `expiry_month` and `expiry_year` must result in a month/year combination of the current month or in the future. An expiration date set in the past is invalid.", - "example": 2020, - "maxLength": 4, - "minLength": 4, - "type": "integer" - } - }, - "required": [ - "card_number", - "expiry_month", - "expiry_year", - "cvv" - ], - "type": "object", - "x-akamai": { - "file-path": "schemas/credit-card.yaml" - } - }, - "credit-card-data": { - "additionalProperties": false, - "description": "Credit card information.", - "properties": { - "card_type": { - "description": "__Read-only__ The type of credit card.", - "example": "Discover", - "readOnly": true, - "type": "string" - }, - "expiry": { - "description": "__Read-only__ The expiration month and year of the credit card.", - "example": "06/2022", - "format": "MM/YYYY", - "readOnly": true, - "type": "string" - }, - "last_four": { - "description": "__Read-only__ The last four digits of the credit card number.", - "example": "1234", - "readOnly": true, - "type": "string" - } - }, - "title": "Credit card", - "type": "object", - "x-akamai": { - "file-path": "schemas/credit-card-data.yaml" - } - }, - "description": { - "description": "__Read-only__ Additional details regarding the Beta Program.", - "example": "This is an open public beta for an example feature.", - "nullable": true, - "readOnly": true, - "type": "string", - "x-linode-cli-display": 3 - }, - "ended": { - "description": "__Filterable__, __Read-only__ The date-time that the Beta Program ended.\n\n`null` indicates that the Beta Program is ongoing.", - "example": null, - "format": "date-time", - "nullable": true, - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 6, - "x-linode-filterable": true - }, - "entities": { - "additionalProperties": false, - "description": "A collection of the entities to include in this transfer request, separated by type.", - "properties": { - "linodes": { - "description": "An array containing the IDs of each of the Linodes included in this transfer.", - "example": [ - 111, - 222 - ], - "items": { - "type": "integer" - }, - "type": "array", - "x-linode-cli-display": 5 - } - }, - "type": "object" - }, - "entity-transfer": { - "additionalProperties": false, - "description": "An object representing an Entity Transfer.", - "properties": { - "created": { - "description": "When this transfer was created.", - "example": "2021-02-11T16:37:03", - "format": "date-time", - "type": "string" - }, - "entities": { - "additionalProperties": false, - "description": "A collection of the entities to include in this transfer request, separated by type.", - "properties": { - "linodes": { - "description": "An array containing the IDs of each of the Linodes included in this transfer.", - "example": [ - 111, - 222 - ], - "items": { - "type": "integer" - }, - "type": "array", - "x-linode-cli-display": 5 - } - }, - "type": "object" - }, - "expiry": { - "description": "When this transfer expires. Transfers will automatically expire 24 hours after creation.", - "example": "2021-02-12T16:37:03", - "format": "date-time", - "type": "string", - "x-linode-cli-display": 3 - }, - "is_sender": { - "description": "__Filterable__ If the requesting account created this transfer.", - "example": true, - "type": "boolean", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 4, - "x-linode-filterable": true - }, - "status": { - "description": "__Filterable__ The status of the transfer request:\n\n`accepted`: The transfer has been accepted by another user and is currently in progress. Transfers can take up to 3 hours to complete.\n`canceled`: The transfer has been canceled by the sender.\n`completed`: The transfer has completed successfully.\n`failed`: The transfer has failed after initiation.\n`pending`: The transfer is ready to be accepted.\n`stale`: The transfer has exceeded its expiration date. It can no longer be accepted or canceled.", - "enum": [ - "accepted", - "canceled", - "completed", - "failed", - "pending", - "stale" - ], - "example": "pending", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-color": { - "accepted": "yellow", - "canceled": "red", - "completed": "green", - "default_": "white", - "failed": "red", - "pending": "yellow", - "stale": "red" - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "token": { - "description": "The token used to identify and accept or cancel this transfer.", - "example": "123E4567-E89B-12D3-A456-426614174000", - "format": "uuid", - "type": "string", - "x-linode-cli-display": 1 - }, - "updated": { - "description": "When this transfer was last updated.", - "example": "2021-02-11T16:37:03", - "format": "date-time", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/entity-transfer.yaml" - } - }, - "error-object": { - "additionalProperties": false, - "description": "An object for describing a single error that occurred during the processing of a request.", - "properties": { - "field": { - "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.", - "example": "fieldname", - "type": "string" - }, - "reason": { - "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.", - "example": "fieldname must be a valid value", - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/error-object.yaml" - } - }, - "event": { - "additionalProperties": false, - "description": "A specific event object. An event is an action taken against an entity related to your account. For example, if you boot a Linode, the system creates an event. The events returned depend on your user grants.", - "properties": { - "action": { - "description": "__Read-only__ The action that caused this event. New actions may be added in the future.", - "enum": [ - "account_agreement_eu_model", - "account_promo_apply", - "account_update", - "account_settings_update", - "backups_enable", - "backups_cancel", - "backups_restore", - "community_question_reply", - "community_like", - "community_mention", - "credit_card_updated", - "database_create", - "database_delete", - "database_update", - "database_failed", - "database_degraded", - "database_create_failed", - "database_update_failed", - "database_backup_create", - "database_backup_restore", - "database_backup_delete", - "database_credentials_reset", - "database_low_disk_space", - "database_scale", - "database_resize", - "database_resize_create", - "database_migrate", - "database_upgrade", - "database_suspend", - "database_resume", - "disk_create", - "disk_delete", - "disk_update", - "disk_duplicate", - "disk_imagize", - "disk_resize", - "dns_record_create", - "dns_record_delete", - "dns_record_update", - "dns_zone_create", - "dns_zone_delete", - "dns_zone_import", - "dns_zone_update", - "entity_transfer_accept", - "entity_transfer_accept_recipient", - "entity_transfer_cancel", - "entity_transfer_create", - "entity_transfer_fail", - "entity_transfer_stale", - "firewall_apply", - "firewall_create", - "firewall_delete", - "firewall_disable", - "firewall_enable", - "firewall_update", - "firewall_device_add", - "firewall_device_remove", - "firewall_rules_update", - "host_reboot", - "image_delete", - "image_update", - "image_upload", - "interface_create", - "interface_delete", - "interface_update", - "ipaddress_update", - "ipv6pool_add", - "ipv6pool_delete", - "lassie_reboot", - "lish_boot", - "linode_addip", - "linode_boot", - "linode_clone", - "linode_create", - "linode_delete", - "linode_update", - "linode_deleteip", - "linode_kvmify", - "linode_migrate", - "linode_migrate_datacenter", - "linode_migrate_datacenter_create", - "linode_mutate", - "linode_mutate_create", - "linode_reboot", - "linode_rebuild", - "linode_resize", - "linode_resize_create", - "linode_resize_warm_create", - "linode_shutdown", - "linode_snapshot", - "linode_config_create", - "linode_config_delete", - "linode_config_update", - "lke_control_plane_acl_create", - "lke_control_plane_acl_update", - "lke_control_plane_acl_delete", - "lke_cluster_create", - "lke_cluster_update", - "lke_cluster_delete", - "lke_cluster_recycle", - "lke_cluster_regenerate", - "lke_node_create", - "lke_node_delete", - "lke_node_recycle", - "lke_pool_create", - "lke_pool_delete", - "lke_pool_recycle", - "lke_kubeconfig_regenerate", - "lke_token_rotate", - "longviewclient_create", - "longviewclient_delete", - "longviewclient_update", - "managed_disabled", - "managed_enabled", - "managed_service_create", - "managed_service_delete", - "nodebalancer_create", - "nodebalancer_delete", - "nodebalancer_update", - "nodebalancer_config_create", - "nodebalancer_config_delete", - "nodebalancer_config_update", - "nodebalancer_node_create", - "nodebalancer_node_delete", - "nodebalancer_node_update", - "oauth_client_create", - "oauth_client_delete", - "oauth_client_secret_reset", - "oauth_client_update", - "obj_access_key_create", - "obj_access_key_delete", - "obj_access_key_update", - "password_reset", - "payment_method_add", - "payment_submitted", - "placement_group_assign", - "placement_group_became_compliant", - "placement_group_became_non_compliant", - "placement_group_create", - "placement_group_delete", - "placement_group_unassign", - "placement_group_update", - "profile_update", - "stackscript_create", - "stackscript_delete", - "stackscript_update", - "stackscript_publicize", - "stackscript_revise", - "subnet_create", - "subnet_delete", - "subnet_update", - "tag_create", - "tag_delete", - "tag_update", - "tax_id_valid", - "tax_id_invalid", - "tfa_disabled", - "tfa_enabled", - "ticket_attachment_upload", - "ticket_create", - "ticket_update", - "token_create", - "token_delete", - "token_update", - "user_create", - "user_update", - "user_delete", - "user_ssh_key_add", - "user_ssh_key_delete", - "user_ssh_key_update", - "vlan_attach", - "vlan_detach", - "volume_attach", - "volume_clone", - "volume_create", - "volume_delete", - "volume_update", - "volume_detach", - "volume_resize", - "volume_migrate", - "volume_migrate_scheduled", - "vpc_create", - "vpc_delete", - "vpc_update" - ], - "example": "ticket_create", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 3 - }, - "created": { - "description": "__Read-only__ When the system created this event.", - "example": "2018-01-01T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 6 - }, - "duration": { - "description": "__Read-only__ The number of seconds that it takes for the event to complete.", - "example": 300.56, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 7 - }, - "entity": { - "additionalProperties": false, - "description": "__Read-only__ Detailed information about the entity that triggered this event.", - "properties": { - "id": { - "description": "The unique identifier assigned to the entity.", - "example": 11111, - "type": "integer" - }, - "label": { - "description": "The name of the entity. The label may reflect changes that occur with this event.", - "example": "Problem booting my Linode", - "type": "string", - "x-linode-cli-display": 5 - }, - "type": { - "description": "__Read-only__ The type of entity that is being referenced by the event.", - "enum": [ - "account", - "backups", - "community", - "disks", - "domain", - "entity_transfer", - "firewall", - "image", - "ipaddress", - "linode", - "longview", - "loadbalancer", - "managed_service", - "nodebalancer", - "oauth_client", - "profile", - "stackscript", - "tag", - "ticket", - "token", - "user", - "user_ssh_key", - "volume" - ], - "example": "ticket", - "readOnly": true, - "type": "string" - }, - "url": { - "description": "The URL where you can access this event's entity. If it's a relative URL, it's relative to the domain where you retrieved the event.", - "example": "/v4/support/tickets/11111", - "type": "string" - } - }, - "readOnly": true, - "type": "object" - }, - "id": { - "description": "__Read-only__ The unique ID of this event.", - "example": 123, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 - }, - "message": { - "description": "Additional information about the event. This can be a more detailed representation of an event that can help you diagnose non-obvious failures.", - "example": "None", - "nullable": true, - "type": "string", - "x-linode-cli-display": 9 - }, - "percent_complete": { - "description": "__Read-only__ A percentage estimating the amount of time remaining for an event. Returned as `null` for notification events.", - "example": null, - "nullable": true, - "readOnly": true, - "type": "integer" - }, - "rate": { - "description": "__Read-only__ The rate of completion of the event. Only some events return a `rate`, such as the `migration` and `resize` events.", - "example": null, - "nullable": true, - "readOnly": true, - "type": "string" - }, - "read": { - "description": "__Read-only__ If a user on your account has [marked an event as read](https://techdocs.akamai.com/linode-api/reference/post-event-read).", - "example": true, - "readOnly": true, - "type": "boolean" - }, - "secondary_entity": { - "additionalProperties": false, - "description": "__Read-only__ Detailed information about the event's secondary entity, if applicable.", - "properties": { - "id": { - "description": "The identifier for the secondary entity object.", - "example": "linode/debian9", - "type": "string" - }, - "label": { - "description": "The name of the secondary entity object.", - "example": "linode1234", - "type": "string" - }, - "type": { - "description": "__Read-only__ The type of secondary entity object that's being referenced by the event.", - "example": "linode", - "readOnly": true, - "type": "string" - }, - "url": { - "description": "The URL where you can access this event's secondary entity object. If it's a relative URL, it's relative to the domain where you retrieved the event.", - "example": "/v4/linode/instances/1234", - "type": "string" - } - }, - "readOnly": true, - "type": "object" - }, - "seen": { - "description": "__Read-only__ If a user on your account has [marked an event as seen](https://techdocs.akamai.com/linode-api/reference/post-event-seen).", - "example": true, - "readOnly": true, - "type": "boolean" - }, - "status": { - "description": "__Read-only__ The current status of this event.", - "enum": [ - "failed", - "finished", - "notification", - "scheduled", - "started" - ], - "readOnly": true, - "type": "string", - "x-linode-cli-color": { - "default_": "white", - "failed": "red", - "finished": "green", - "started": "yellow" - }, - "x-linode-cli-display": 8 - }, - "time_remaining": { - "description": "__Read-only__ The estimated time remaining until the event completes. This is only returned for some in-progress migration events. Otherwise, `percent_complete` indicates how long until completion.", - "example": null, - "nullable": true, - "readOnly": true, - "type": "string" - }, - "username": { - "description": "__Read-only__ The name of the user whose action caused the event.", - "example": "exampleUser", - "nullable": true, - "readOnly": true, - "type": "string", - "x-linode-cli-display": 2 - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/event.yaml" - } - }, - "events": { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "properties": { - "action": { - "description": "__Filterable__ The action that caused this event. New actions may be added in the future.", - "enum": [ - "account_agreement_eu_model", - "account_promo_apply", - "account_update", - "account_settings_update", - "backups_enable", - "backups_cancel", - "backups_restore", - "community_question_reply", - "community_like", - "community_mention", - "credit_card_updated", - "database_create", - "database_delete", - "database_update", - "database_failed", - "database_degraded", - "database_create_failed", - "database_update_failed", - "database_backup_create", - "database_backup_restore", - "database_backup_delete", - "database_credentials_reset", - "database_low_disk_space", - "database_scale", - "database_resize", - "database_resize_create", - "database_migrate", - "database_upgrade", - "database_suspend", - "database_resume", - "disk_create", - "disk_delete", - "disk_update", - "disk_duplicate", - "disk_imagize", - "disk_resize", - "dns_record_create", - "dns_record_delete", - "dns_record_update", - "dns_zone_create", - "dns_zone_delete", - "dns_zone_import", - "dns_zone_update", - "entity_transfer_accept", - "entity_transfer_accept_recipient", - "entity_transfer_cancel", - "entity_transfer_create", - "entity_transfer_fail", - "entity_transfer_stale", - "firewall_apply", - "firewall_create", - "firewall_delete", - "firewall_disable", - "firewall_enable", - "firewall_update", - "firewall_device_add", - "firewall_device_remove", - "firewall_rules_update", - "host_reboot", - "image_delete", - "image_update", - "image_upload", - "interface_create", - "interface_delete", - "interface_update", - "ipaddress_update", - "ipv6pool_add", - "ipv6pool_delete", - "lassie_reboot", - "lish_boot", - "linode_addip", - "linode_boot", - "linode_clone", - "linode_create", - "linode_delete", - "linode_update", - "linode_deleteip", - "linode_kvmify", - "linode_migrate", - "linode_migrate_datacenter", - "linode_migrate_datacenter_create", - "linode_mutate", - "linode_mutate_create", - "linode_reboot", - "linode_rebuild", - "linode_resize", - "linode_resize_create", - "linode_resize_warm_create", - "linode_shutdown", - "linode_snapshot", - "linode_config_create", - "linode_config_delete", - "linode_config_update", - "lke_cluster_create", - "lke_cluster_update", - "lke_cluster_delete", - "lke_cluster_recycle", - "lke_cluster_regenerate", - "lke_control_plane_acl_create", - "lke_control_plane_acl_update", - "lke_control_plane_acl_delete", - "lke_node_create", - "lke_node_delete", - "lke_node_recycle", - "lke_pool_create", - "lke_pool_delete", - "lke_pool_recycle", - "lke_kubeconfig_regenerate", - "lke_token_rotate", - "longviewclient_create", - "longviewclient_delete", - "longviewclient_update", - "managed_disabled", - "managed_enabled", - "managed_service_create", - "managed_service_delete", - "nodebalancer_create", - "nodebalancer_delete", - "nodebalancer_update", - "nodebalancer_config_create", - "nodebalancer_config_delete", - "nodebalancer_config_update", - "nodebalancer_node_create", - "nodebalancer_node_delete", - "nodebalancer_node_update", - "oauth_client_create", - "oauth_client_delete", - "oauth_client_secret_reset", - "oauth_client_update", - "obj_access_key_create", - "obj_access_key_delete", - "obj_access_key_update", - "password_reset", - "payment_method_add", - "payment_submitted", - "placement_group_assign", - "placement_group_became_compliant", - "placement_group_became_non_compliant", - "placement_group_create", - "placement_group_delete", - "placement_group_unassign", - "placement_group_update", - "profile_update", - "stackscript_create", - "stackscript_delete", - "stackscript_update", - "stackscript_publicize", - "stackscript_revise", - "subnet_create", - "subnet_delete", - "subnet_update", - "tag_create", - "tag_delete", - "tag_update", - "tax_id_valid", - "tax_id_invalid", - "tfa_disabled", - "tfa_enabled", - "ticket_attachment_upload", - "ticket_create", - "ticket_update", - "token_create", - "token_delete", - "token_update", - "user_create", - "user_update", - "user_delete", - "user_ssh_key_add", - "user_ssh_key_delete", - "user_ssh_key_update", - "vlan_attach", - "vlan_detach", - "volume_attach", - "volume_clone", - "volume_create", - "volume_delete", - "volume_update", - "volume_detach", - "volume_resize", - "volume_migrate", - "volume_migrate_scheduled", - "vpc_create", - "vpc_delete", - "vpc_update" - ], - "example": "ticket_create", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 3, - "x-linode-filterable": true - }, - "created": { - "description": "__Filterable__ When the system created this event.", - "example": "2018-01-01T00:01:01", - "format": "date-time", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 6, - "x-linode-filterable": true - }, - "duration": { - "description": "The number of seconds that it takes for the event to complete.", - "example": 300.56, - "type": "number", - "x-linode-cli-display": 7 - }, - "entity": { - "additionalProperties": false, - "description": "Detailed information about the entity that triggered this event.", - "properties": { - "id": { - "description": "__Filterable__ The unique identifier assigned to the entity.\n\n> \ud83d\udcd8\n>\n> Consider these points when filtering by `id`:\n>\n> - The `disks` and `backups` entities use the `id` of their parent Linode when filtering for events.\n>\n> - The `account` and `profile` entities don't have an `id`. To filter these entities, use the `type` object instead.\n>\n> - The `tag` entity uses the tag's name as its `id`. Set this value to the tag's name to filter.", - "example": 11111, - "type": "integer", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "label": { - "description": "The name of the entity. The label may reflect changes that occur with this event.", - "example": "Problem booting my Linode", - "type": "string", - "x-linode-cli-display": 5 - }, - "type": { - "description": "__Filterable__ The type of entity that is being referenced by the event.", - "enum": [ - "account", - "backups", - "community", - "disks", - "domain", - "entity_transfer", - "firewall", - "image", - "ipaddress", - "linode", - "longview", - "loadbalancer", - "managed_service", - "nodebalancer", - "oauth_client", - "profile", - "stackscript", - "tag", - "ticket", - "token", - "user", - "user_ssh_key", - "volume" - ], - "example": "ticket", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "url": { - "description": "The URL where you can access this event's entity. If it's a relative URL, it's relative to the domain where you retrieved the event.", - "example": "/v4/support/tickets/11111", - "type": "string" - } - }, - "type": "object" - }, - "id": { - "description": "__Filterable__ The unique ID of this event.", - "example": 123, - "type": "integer", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 1, - "x-linode-filterable": true - }, - "message": { - "description": "Additional information about the event. This can be a more detailed representation of an event that can help you diagnose non-obvious failures.", - "example": "None", - "nullable": true, - "type": "string", - "x-linode-cli-display": 9 - }, - "percent_complete": { - "description": "A percentage estimating the amount of time remaining for an event. Returned as `null` for notification events.", - "example": null, - "nullable": true, - "type": "integer" - }, - "rate": { - "description": "The rate of completion of the event. Only some events return a `rate`, such as the `migration` and `resize` events.", - "example": null, - "nullable": true, - "type": "string" - }, - "read": { - "description": "__Filterable__ If a user on your account has [marked an event as read](https://techdocs.akamai.com/linode-api/reference/post-event-read).", - "example": true, - "type": "boolean", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "secondary_entity": { - "additionalProperties": false, - "description": "Detailed information about the event's secondary entity, if applicable.", - "properties": { - "id": { - "description": "The identifier for the secondary entity object.", - "example": "linode/debian9", - "type": "string" - }, - "label": { - "description": "The name of the secondary entity object.", - "example": "linode1234", - "type": "string" - }, - "type": { - "description": "The type of secondary entity object that's being referenced by the event.", - "example": "linode", - "type": "string" - }, - "url": { - "description": "The URL where you can access this event's secondary entity object. If it's a relative URL, it's relative to the domain where you retrieved the event.", - "example": "/v4/linode/instances/1234", - "type": "string" - } - }, - "type": "object" - }, - "seen": { - "description": "If a user on your account has [marked an event as seen](https://techdocs.akamai.com/linode-api/reference/post-event-seen).", - "example": true, - "type": "boolean" - }, - "status": { - "description": "The current status of this event.", - "enum": [ - "failed", - "finished", - "notification", - "scheduled", - "started" - ], - "type": "string", - "x-linode-cli-color": { - "default_": "white", - "failed": "red", - "finished": "green", - "started": "yellow" - }, - "x-linode-cli-display": 8 - }, - "time_remaining": { - "description": "The estimated time remaining until the event completes. This is only returned for some in-progress migration events. Otherwise, the `percent_complete` attribute indicates how long until completion.", - "example": null, - "nullable": true, - "type": "string" - }, - "username": { - "description": "The name of the user whose action caused the event.", - "example": "exampleUser", - "nullable": true, - "type": "string", - "x-linode-cli-display": 2 - } - }, - "type": "object" - }, - "type": "array" - }, - "page": { - "description": "The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "type": "integer" - }, - "pages": { - "description": "The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "type": "integer" - }, - "results": { - "description": "The total number of results.", - "example": 1, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/events.yaml" - } - }, - "google-pay-data": { - "additionalProperties": false, - "description": "Google Pay information.", - "properties": { - "card_type": { - "description": "__Read-only__ The type of credit card.", - "example": "Discover", - "readOnly": true, - "type": "string" - }, - "expiry": { - "description": "__Read-only__ The expiration month and year of the credit card.", - "example": "06/2022", - "format": "MM/YYYY", - "readOnly": true, - "type": "string" - }, - "last_four": { - "description": "__Read-only__ The last four digits of the credit card number.", - "example": "1234", - "readOnly": true, - "type": "string" - } - }, - "title": "Google Pay", - "type": "object", - "x-akamai": { - "file-path": "schemas/google-pay-data.yaml" - } - }, - "grant": { - "additionalProperties": false, - "description": "Represents the level of access a restricted user has to a specific resource on the account.", - "properties": { - "id": { - "description": "The unique identifier of the resource this grant applies to.", - "example": 123, - "type": "integer" - }, - "label": { - "description": "__Read-only__ The name of the entity this grant applies to. This is only for display purposes.", - "example": "example-entity", - "readOnly": true, - "type": "string" - }, - "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", - "enum": [ - "read_only", - "read_write" - ], - "example": "read_only", - "nullable": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/grant.yaml" - } - }, - "grants-response": { - "additionalProperties": false, - "properties": { - "database": { - "description": "The grants this user has for individual Managed Databases on this account.", - "items": { - "additionalProperties": false, - "description": "Represents the level of access a restricted user has to a specific resource on the account.", - "properties": { - "id": { - "description": "The unique identifier of the resource this grant applies to.", - "example": 123, - "type": "integer" - }, - "label": { - "description": "__Read-only__ The name of the entity this grant applies to. This is only for display purposes.", - "example": "example-entity", - "readOnly": true, - "type": "string" - }, - "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", - "enum": [ - "read_only", - "read_write" - ], - "example": "read_only", - "nullable": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/grant.yaml" - } - }, - "type": "array" - }, - "domain": { - "description": "The grants this user has for individual domains on this account.", - "items": { - "additionalProperties": false, - "description": "Represents the level of access a restricted user has to a specific resource on the account.", - "properties": { - "id": { - "description": "The unique identifier of the resource this grant applies to.", - "example": 123, - "type": "integer" - }, - "label": { - "description": "__Read-only__ The name of the entity this grant applies to. This is only for display purposes.", - "example": "example-entity", - "readOnly": true, - "type": "string" - }, - "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", - "enum": [ - "read_only", - "read_write" - ], - "example": "read_only", - "nullable": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/grant.yaml" - } - }, - "type": "array" - }, - "firewall": { - "description": "The grants this user has for individual firewalls on this account.", - "items": { - "additionalProperties": false, - "description": "Represents the level of access a restricted user has to a specific resource on the account.", - "properties": { - "id": { - "description": "The unique identifier of the resource this grant applies to.", - "example": 123, - "type": "integer" - }, - "label": { - "description": "__Read-only__ The name of the entity this grant applies to. This is only for display purposes.", - "example": "example-entity", - "readOnly": true, - "type": "string" - }, - "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", - "enum": [ - "read_only", - "read_write" - ], - "example": "read_only", - "nullable": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/grant.yaml" - } - }, - "type": "array" - }, - "global": { - "additionalProperties": false, - "description": "The grants the user has to all resources on your account.", - "properties": { - "account_access": { - "description": "The level of access this user has to account-level actions, like billing information and user management.\n\n> \ud83d\udcd8\n>\n> A `restricted` user can't be used to manage users, even if this is set to `read-write`. Only unrestricted users can manage other users on an account.\n\n__Parent and child accounts__\n\nIn a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, this grant can be added to a child account user, to give the user `read-write` access. This gives the child user unrestricted access to expected management operations, such as creating other child users. However, child users don't have write access to billing operations. The API issues a specific error message if a write operation is attempted by a child user.", - "enum": [ - "read_only", - "read_write" - ], - "example": "read_only", - "nullable": true, - "type": "string" - }, - "add_databases": { - "description": "Whether this user can add Managed Databases on the account.", - "example": true, - "type": "boolean" - }, - "add_domains": { - "description": "Whether this user can add domains on the account.", - "example": true, - "type": "boolean" - }, - "add_firewalls": { - "description": "Whether this user can add Firewalls on the account.", - "example": true, - "type": "boolean" - }, - "add_images": { - "description": "Whether this user can create images from disks on your Linodes, on the account.", - "example": true, - "type": "boolean" - }, - "add_linodes": { - "description": "Whether this user can create Linodes.", - "example": true, - "type": "boolean" - }, - "add_longview": { - "description": "Whether this user can create Longview clients and view the current plan.", - "example": true, - "type": "boolean" - }, - "add_nodebalancers": { - "description": "Whether this user can add NodeBalancers on the account.", - "example": true, - "type": "boolean" - }, - "add_stackscripts": { - "description": "Whether this user can add StackScripts on the account.", - "example": true, - "type": "boolean" - }, - "add_volumes": { - "description": "Whether this user can add volumes on the account.", - "example": true, - "type": "boolean" - }, - "add_vpcs": { - "description": "Whether this user can add Virtual Private Clouds (VPCs) on the account.", - "example": true, - "type": "boolean" - }, - "cancel_account": { - "description": "Whether this user can cancel the entire account.", - "example": false, - "type": "boolean" - }, - "child_account_access": { - "description": "In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, this gives a parent account access to operations that can be used to manage child accounts. Unrestricted parent account users have access to this grant, while restricted parent users don't. An unrestricted parent user can set this to `true` to add this grant to a restricted parent user. Displayed as `null` for all non-parent accounts.", - "example": true, - "nullable": true, - "type": "boolean" - }, - "longview_subscription": { - "description": "Whether this user can manage your account's Longview subscription.", - "example": true, - "type": "boolean" - } - }, - "type": "object" - }, - "image": { - "description": "The grants this user has for individual images on this account.", - "items": { - "additionalProperties": false, - "description": "Represents the level of access a restricted user has to a specific resource on the account.", - "properties": { - "id": { - "description": "The unique identifier of the resource this grant applies to.", - "example": 123, - "type": "integer" - }, - "label": { - "description": "__Read-only__ The name of the entity this grant applies to. This is only for display purposes.", - "example": "example-entity", - "readOnly": true, - "type": "string" - }, - "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", - "enum": [ - "read_only", - "read_write" - ], - "example": "read_only", - "nullable": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/grant.yaml" - } - }, - "type": "array" - }, - "linode": { - "description": "The grants this user has for individual Linodes on this account.", - "items": { - "additionalProperties": false, - "description": "Represents the level of access a restricted user has to a specific resource on the account.", - "properties": { - "id": { - "description": "The unique identifier of the resource this grant applies to.", - "example": 123, - "type": "integer" - }, - "label": { - "description": "__Read-only__ The name of the entity this grant applies to. This is only for display purposes.", - "example": "example-entity", - "readOnly": true, - "type": "string" - }, - "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", - "enum": [ - "read_only", - "read_write" - ], - "example": "read_only", - "nullable": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/grant.yaml" - } - }, - "type": "array" - }, - "longview": { - "description": "The grants this user has for individual Longview Clients on this account.", - "items": { - "additionalProperties": false, - "description": "Represents the level of access a restricted user has to a specific resource on the account.", - "properties": { - "id": { - "description": "The unique identifier of the resource this grant applies to.", - "example": 123, - "type": "integer" - }, - "label": { - "description": "__Read-only__ The name of the entity this grant applies to. This is only for display purposes.", - "example": "example-entity", - "readOnly": true, - "type": "string" - }, - "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", - "enum": [ - "read_only", - "read_write" - ], - "example": "read_only", - "nullable": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/grant.yaml" - } - }, - "type": "array" - }, - "nodebalancer": { - "description": "The grants this user has for individual NodeBalancers on this account.", - "items": { - "additionalProperties": false, - "description": "Represents the level of access a restricted user has to a specific resource on the account.", - "properties": { - "id": { - "description": "The unique identifier of the resource this grant applies to.", - "example": 123, - "type": "integer" - }, - "label": { - "description": "__Read-only__ The name of the entity this grant applies to. This is only for display purposes.", - "example": "example-entity", - "readOnly": true, - "type": "string" - }, - "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", - "enum": [ - "read_only", - "read_write" - ], - "example": "read_only", - "nullable": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/grant.yaml" - } - }, - "type": "array" - }, - "stackscript": { - "description": "The grants this User has for individual StackScripts on this account.", - "items": { - "additionalProperties": false, - "description": "Represents the level of access a restricted user has to a specific resource on the account.", - "properties": { - "id": { - "description": "The unique identifier of the resource this grant applies to.", - "example": 123, - "type": "integer" - }, - "label": { - "description": "__Read-only__ The name of the entity this grant applies to. This is only for display purposes.", - "example": "example-entity", - "readOnly": true, - "type": "string" - }, - "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", - "enum": [ - "read_only", - "read_write" - ], - "example": "read_only", - "nullable": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/grant.yaml" - } - }, - "type": "array" - }, - "volume": { - "description": "The grants this user has individual Block Storage Volumes on this account.", - "items": { - "additionalProperties": false, - "description": "Represents the level of access a restricted user has to a specific resource on the account.", - "properties": { - "id": { - "description": "The unique identifier of the resource this grant applies to.", - "example": 123, - "type": "integer" - }, - "label": { - "description": "__Read-only__ The name of the entity this grant applies to. This is only for display purposes.", - "example": "example-entity", - "readOnly": true, - "type": "string" - }, - "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", - "enum": [ - "read_only", - "read_write" - ], - "example": "read_only", - "nullable": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/grant.yaml" - } - }, - "type": "array" - }, - "vpc": { - "description": "The grants this user has individual Virtual Private Clouds (VPCs) on this account.", - "items": { - "additionalProperties": false, - "description": "Represents the level of access a restricted user has to a specific resource on the account.", - "properties": { - "id": { - "description": "The unique identifier of the resource this grant applies to.", - "example": 123, - "type": "integer" - }, - "label": { - "description": "__Read-only__ The name of the entity this grant applies to. This is only for display purposes.", - "example": "example-entity", - "readOnly": true, - "type": "string" - }, - "permissions": { - "description": "The level of access this user has to this entity. If `null`, this user has no access.", - "enum": [ - "read_only", - "read_write" - ], - "example": "read_only", - "nullable": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/grant.yaml" - } - }, - "type": "array" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/grants-response.yaml" - } - }, - "id": { - "description": "The unique identifier of the Beta Program.", - "example": "example_open", - "type": "string", - "x-linode-cli-display": 1 - }, - "invoice": { - "additionalProperties": false, - "description": "Account Invoice object.", - "properties": { - "billing_source": { - "description": "__Filterable__, __Read-only__ `akamai`: This Invoice was generated according to the terms of an agreement between the customer and Akamai.\n\n`linode`: This Invoice was generated according to the default terms, prices, and discounts.", - "enum": [ - "akamai", - "linode" - ], - "example": "linode", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 3.5, - "x-linode-filterable": true - }, - "date": { - "description": "__Filterable__, __Read-only__ When this Invoice was generated.", - "example": "2018-01-01T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "id": { - "description": "__Read-only__ The Invoice's unique ID.", - "example": 123, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 - }, - "label": { - "description": "__Filterable__, __Read-only__ The Invoice's display label.", - "example": "Invoice", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 3, - "x-linode-filterable": true - }, - "subtotal": { - "description": "__Read-only__ The amount of the Invoice before taxes in US Dollars.", - "example": 120.25, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 4 - }, - "tax": { - "description": "__Read-only__ The amount of tax levied on the Invoice in US Dollars.", - "example": 12.25, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 5 - }, - "tax_summary": { - "description": "__Read-only__ The amount of tax broken down into subtotals by source.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "description": "The source of this tax subtotal.", - "example": "PA STATE TAX", - "type": "string" - }, - "tax": { - "description": "The amount of tax subtotal attributable to this source.", - "example": 12.25, - "type": "number" - } - }, - "type": "object" - }, - "readOnly": true, - "type": "array" - }, - "total": { - "description": "__Filterable__, __Read-only__ The amount of the Invoice after taxes in US Dollars.", - "example": 132.5, - "readOnly": true, - "type": "number", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 6, - "x-linode-filterable": true - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/invoice.yaml" - } - }, - "invoice-item": { - "additionalProperties": false, - "description": "An InvoiceItem object.", - "properties": { - "amount": { - "description": "__Read-only__ The price, in US dollars, of the Invoice Item. Equal to the unit price multiplied by quantity.", - "example": 20.2, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 4 - }, - "from": { - "description": "__Read-only__ The date the Invoice Item started, based on month.", - "example": "2018-01-01T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 2 - }, - "label": { - "description": "__Read-only__ The Invoice Item's display label.", - "example": "Linode 123", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 1 - }, - "quantity": { - "description": "__Read-only__ The quantity of this Item for the specified Invoice.", - "example": 4, - "readOnly": true, - "type": "integer" - }, - "region": { - "description": "__Read-only__ The ID of the applicable Region associated with this Invoice Item.\n\n`null` if there is no applicable Region.", - "example": "us-west", - "nullable": true, - "readOnly": true, - "type": "string", - "x-linode-cli-display": 7 - }, - "tax": { - "description": "__Read-only__ The amount of tax levied on this Item in US Dollars.", - "example": 1.25, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 5 - }, - "to": { - "description": "__Read-only__ The date the Invoice Item ended, based on month.", - "example": "2018-01-31T11:59:59", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 3 - }, - "total": { - "description": "__Read-only__ The price of this Item after taxes in US Dollars.", - "example": 21.45, - "readOnly": true, - "type": "number", - "x-linode-cli-display": 6 - }, - "type": { - "description": "__Read-only__ The type of service, ether `hourly` or `misc`.", - "enum": [ - "hourly", - "misc" - ], - "example": "hourly", - "readOnly": true, - "type": "string" - }, - "unit_price": { - "description": "__Read-only__ The monthly service fee in US Dollars for this Item.", - "example": 5.05, - "readOnly": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/invoice-item.yaml" - } - }, - "is_default": { - "description": "Whether this Payment Method is the default method for automatically processing service charges.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 3 - }, - "label": { - "description": "__Filterable__, __Read-only__ The name of the Beta Program.", - "example": "Example Open Beta", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "login": { - "additionalProperties": false, - "description": "An object representing a previous successful login for a User.", - "properties": { - "datetime": { - "description": "__Read-only__ When the login was initiated.", - "example": "2018-01-01T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 2 - }, - "id": { - "description": "__Read-only__ The unique ID of this login object.", - "example": 1234, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 - }, - "ip": { - "description": "__Read-only__ The remote IP address that requested the login.", - "example": "192.0.2.0", - "format": "ip", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 3 - }, - "restricted": { - "description": "__Read-only__ True if the User that attempted the login was a restricted User, false otherwise.", - "example": true, - "readOnly": true, - "type": "boolean", - "x-linode-cli-display": 6 - }, - "status": { - "description": "__Read-only__ Whether the login attempt succeeded or failed.", - "enum": [ - "successful", - "failed" - ], - "example": "successful", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 5 - }, - "username": { - "description": "__Read-only__ The username of the User that attempted the login.", - "example": "example_user", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 4 - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/login.yaml" - } - }, - "maintenance": { - "additionalProperties": false, - "description": "Information about maintenance affecting an entity.", - "properties": { - "entity": { - "additionalProperties": false, - "description": "The entity being affected by maintenance.", - "properties": { - "id": { - "description": "The id of the entity being affected by maintenance.", - "example": 1234, - "type": "number" - }, - "label": { - "description": "The label of the entity being affected by maintenance.", - "example": "demo-linode", - "type": "string" - }, - "type": { - "description": "The type of entity.", - "example": "Linode", - "type": "string" - }, - "url": { - "description": "The API endpoint prefix to use in combination with the entity id to find specific information about the entity.", - "example": "https://api.linode.com/v4/linode/instances/{linodeId}", - "type": "string" - } - }, - "type": "object" - }, - "reason": { - "description": "The reason maintenance is being performed.", - "example": "This maintenance will allow us to update the BIOS on the host's motherboard.", - "type": "string" - }, - "status": { - "description": "__Filterable__ The maintenance status.\n\nMaintenance progresses in the following sequence: pending, started, then completed.", - "enum": [ - "completed", - "pending", - "started" - ], - "example": "started", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "type": { - "description": "__Filterable__ The type of maintenance.", - "enum": [ - "reboot", - "cold_migration", - "live_migration" - ], - "example": "reboot", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - }, - "when": { - "description": "__Filterable__ When the maintenance will begin.\n\n[Filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) with the following parameters:\n\n- A single value in date-time string format (`%Y-%m-%dT%H:%M:%S`), which returns only matches to that value.\n\n- A dictionary containing pairs of inequality operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single date-time string format values (`%Y-%m-%dT%H:%M:%S`). `+or` accepts an array of values that may consist of single date-time strings or dictionaries of inequality operator pairs.", - "example": "2020-07-09T00:01:01", - "format": "date-time", - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-filterable": true - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/maintenance.yaml" - } - }, - "notification": { - "additionalProperties": false, - "description": "An important, often time-sensitive item related to your account.", - "properties": { - "body": { - "description": "__Read-only__ A full description of this notification, in markdown format. Not all notifications include a `body`.", - "example": null, - "nullable": true, - "readOnly": true, - "type": "string" - }, - "entity": { - "additionalProperties": false, - "description": "__Read-only__ Detailed information about the notification.", - "properties": { - "id": { - "description": "The unique ID of the notification's entity, based on the entity type. Returns `null` for an `account` or `promotion` entity.", - "example": 3456, - "nullable": true, - "type": "integer" - }, - "label": { - "description": "The current label for this notification's entity.\n\nReturns `null` for the following entity types:\n\n- `entity_transfer`\n- `promotion`\n- `region`", - "example": "Linode not booting.", - "nullable": true, - "type": "string" - }, - "type": { - "description": "The type of entity this is related to.", - "enum": [ - "account", - "entity_transfer", - "linode", - "loadbalancers", - "nodebalancer", - "promotion", - "region", - "ticket", - "volume" - ], - "example": "ticket", - "type": "string" - }, - "url": { - "description": "The URL where you can access the notification's object. The URL is relative to the domain where you retrieved the notification. This value is `null` for the `promotion` entity type.", - "example": "/support/tickets/3456", - "nullable": true, - "type": "string" - } - }, - "readOnly": true, - "type": "object" - }, - "label": { - "description": "__Read-only__ A short description of this notification.", - "example": "You have an important ticket open!", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 1 - }, - "message": { - "description": "__Read-only__ A human-readable description of the notification.", - "example": "You have an important ticket open!", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 2 - }, - "severity": { - "description": "__Read-only__ The severity of this notification. This field determines how prominently the notification is displayed and the color of the display text.", - "enum": [ - "minor", - "major", - "critical" - ], - "example": "major", - "readOnly": true, - "type": "string", - "x-linode-cli-color": { - "critical": "b", - "default_": "white", - "minor": "blue" - }, - "x-linode-cli-display": 3 - }, - "type": { - "description": "__Read-only__ The type of notification.", - "enum": [ - "migration_scheduled", - "migration_imminent", - "migration_pending", - "reboot_scheduled", - "outage", - "payment_due", - "ticket_important", - "ticket_abuse", - "notice", - "maintenance", - "promotion", - "tax_id_verifying" - ], - "example": "ticket_important", - "readOnly": true, - "type": "string" - }, - "until": { - "description": "__Read-only__ If this notification has a duration, this is when the event or action will complete. For example, if there's scheduled maintenance for one of our systems, `until` represents the end of the maintenance window.", - "example": null, - "format": "date-time", - "nullable": true, - "readOnly": true, - "type": "string", - "x-linode-cli-color": { - "None": "black", - "default_": "white" - }, - "x-linode-cli-display": 5 - }, - "when": { - "description": "__Read-only__ If this notification is for an event in the future, this specifies when the action occurs. For example, if a compute instance needs to migrate in response to a security advisory, this field sets the approximate time the compute instance will be taken offline for migration.", - "example": null, - "format": "date-time", - "nullable": true, - "readOnly": true, - "type": "string", - "x-linode-cli-color": { - "None": "black", - "default_": "white" - }, - "x-linode-cli-display": 4 - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/notification.yaml" - } - }, - "oauth-client": { - "additionalProperties": false, - "description": "A third-party application registered to Linode that users may log into with their Linode account through our authentication server at [login.linode.com](https://login.linode.com). Using an OAuth Client, a third-party developer may be given access to some, or all, of a User's account for the purposes of their application.", - "properties": { - "id": { - "description": "__Read-only__ The OAuth Client ID. This is used to identify the client, and is a publicly known value (it is not a secret).", - "example": "2737bf16b39ab5d7b4a1", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 1 - }, - "label": { - "description": "__Filterable__ The name of this application. This will be presented to users when they are asked to grant it access to their Account.", - "example": "Test_Client_1", - "maxLength": 512, - "minLength": 1, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 2, - "x-linode-filterable": true - }, - "public": { - "default": false, - "description": "__Filterable__ If this is a public or private OAuth Client. Public clients have a slightly different authentication workflow than private clients. See the [OAuth spec](https://oauth.net/2/) for more details.", - "example": false, - "type": "boolean", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 4, - "x-linode-filterable": true - }, - "redirect_uri": { - "description": "The location a successful log in from [login.linode.com](https://login.linode.com) should be redirected to for this client. The receiver of this redirect should be ready to accept an OAuth exchange code and finish the OAuth exchange.", - "example": "https://example.org/oauth/callback", - "format": "url", - "type": "string", - "x-linode-cli-display": 5 - }, - "secret": { - "description": "__Read-only__ The OAuth Client secret, used in the OAuth exchange. This is returned as `` except when an OAuth Client is created or its secret is reset. This is a secret, and should not be shared or disclosed publicly.", - "example": "", - "readOnly": true, - "type": "string" - }, - "status": { - "description": "__Read-only__ The status of this application. `active` by default.", - "enum": [ - "active", - "disabled", - "suspended" - ], - "example": "active", - "readOnly": true, - "type": "string", - "x-linode-cli-color": { - "default_": "white", - "suspended": "red" - }, - "x-linode-cli-display": 3 - }, - "thumbnail_url": { - "description": "__Read-only__ The URL where this client's thumbnail may be viewed, or `null` if this client does not have a thumbnail set.", - "example": "https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail", - "format": "url", - "nullable": true, - "readOnly": true, - "type": "string" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/oauth-client.yaml" - } - }, - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pagination-envelope": { - "additionalProperties": false, - "description": "An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination) for more information.", - "properties": { - "page": { - "description": "__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "pages": { - "description": "__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).", - "example": 1, - "readOnly": true, - "type": "integer" - }, - "results": { - "description": "__Read-only__ The total number of results.", - "example": 1, - "readOnly": true, - "type": "integer" - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/pagination-envelope.yaml" - } - }, - "payment": { - "additionalProperties": false, - "description": "Payment object response.", - "properties": { - "date": { - "description": "__Read-only__ When the Payment was made.", - "example": "2018-01-15T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 2 - }, - "id": { - "description": "__Read-only__ The unique ID of the Payment.", - "example": 123, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 - }, - "usd": { - "description": "__Read-only__ The amount, in US dollars, of the Payment.", - "example": "120.50", - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 3 - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/payment.yaml" - } - }, - "payment-method": { - "additionalProperties": false, - "description": "Payment Method Response Object.", - "properties": { - "created": { - "description": "__Read-only__ When the Payment Method was added to the Account.", - "example": "2018-01-15T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "data": { - "oneOf": [ - { - "additionalProperties": false, - "description": "Credit card information.", - "properties": { - "card_type": { - "description": "__Read-only__ The type of credit card.", - "example": "Discover", - "readOnly": true, - "type": "string" - }, - "expiry": { - "description": "__Read-only__ The expiration month and year of the credit card.", - "example": "06/2022", - "format": "MM/YYYY", - "readOnly": true, - "type": "string" - }, - "last_four": { - "description": "__Read-only__ The last four digits of the credit card number.", - "example": "1234", - "readOnly": true, - "type": "string" - } - }, - "title": "Credit card", - "type": "object", - "x-akamai": { - "file-path": "schemas/credit-card-data.yaml" - }, - "x-linode-ref-name": "Credit Card" - }, - { - "additionalProperties": false, - "description": "Google Pay information.", - "properties": { - "card_type": { - "description": "__Read-only__ The type of credit card.", - "example": "Discover", - "readOnly": true, - "type": "string" - }, - "expiry": { - "description": "__Read-only__ The expiration month and year of the credit card.", - "example": "06/2022", - "format": "MM/YYYY", - "readOnly": true, - "type": "string" - }, - "last_four": { - "description": "__Read-only__ The last four digits of the credit card number.", - "example": "1234", - "readOnly": true, - "type": "string" - } - }, - "title": "Google Pay", - "type": "object", - "x-akamai": { - "file-path": "schemas/google-pay-data.yaml" - }, - "x-linode-ref-name": "Google Pay" - }, - { - "additionalProperties": false, - "description": "PayPal information.", - "properties": { - "email": { - "description": "__Read-only__ The email address associated with your PayPal account.", - "example": "example@linode.com", - "readOnly": true, - "type": "string" - }, - "paypal_id": { - "description": "__Read-only__ PayPal Merchant ID associated with your PayPal account.", - "example": "ABC1234567890", - "readOnly": true, - "type": "string" - } - }, - "title": "Paypal", - "type": "object", - "x-akamai": { - "file-path": "schemas/paypal-data.yaml" - }, - "x-linode-ref-name": "Paypal" - } - ], - "x-linode-cli-display": 4, - "x-linode-cli-format": "json" - }, - "id": { - "description": "The unique ID of this Payment Method.", - "example": 123, - "type": "integer", - "x-linode-cli-display": 1 - }, - "is_default": { - "description": "Whether this Payment Method is the default method for automatically processing service charges.", - "example": true, - "type": "boolean", - "x-linode-cli-display": 3 - }, - "type": { - "description": "The type of Payment Method.", - "enum": [ - "credit_card", - "google_pay", - "paypal" - ], - "example": "credit_card", - "type": "string", - "x-linode-cli-display": 2 - } - }, - "type": "object", - "x-akamai": { - "file-path": "schemas/payment-method.yaml" - } - }, - "paypal": { - "additionalProperties": false, - "description": "An object representing the staging of a Payment via PayPal.", - "properties": { - "cancel_url": { - "description": "The URL to have PayPal redirect to when Payment is canceled.", - "example": "https://example.org", - "type": "string" - }, - "redirect_url": { - "description": "The URL to have PayPal redirect to when Payment is approved.", - "example": "https://example.org", - "type": "string" - }, - "usd": { - "description": "The payment amount in USD. Minimum accepted value of $5 USD. Maximum accepted value of $500 USD or credit card payment limit; whichever value is highest. PayPal's maximum transaction limit is $10,000 USD.", - "example": "120.50", - "type": "string" - } - }, - "required": [ - "cancel_url", - "redirect_url", - "usd" - ], - "type": "object", - "x-akamai": { - "file-path": "schemas/paypal.yaml" - } - }, - "paypal-data": { - "additionalProperties": false, - "description": "PayPal information.", - "properties": { - "email": { - "description": "__Read-only__ The email address associated with your PayPal account.", - "example": "example@linode.com", - "readOnly": true, - "type": "string" - }, - "paypal_id": { - "description": "__Read-only__ PayPal Merchant ID associated with your PayPal account.", - "example": "ABC1234567890", - "readOnly": true, - "type": "string" - } - }, - "title": "Paypal", - "type": "object", - "x-akamai": { - "file-path": "schemas/paypal-data.yaml" - } - }, - "paypal-execute": { - "additionalProperties": false, - "description": "An object representing an execution of Payment to PayPal to capture the funds and credit your Linode Account.", - "properties": { - "payer_id": { - "description": "The PayerID returned by PayPal during the transaction authorization process.", - "example": "ABCDEFGHIJKLM", - "type": "string" - }, - "payment_id": { - "description": "The PaymentID returned from [Stage a PayPal payment](https://techdocs.akamai.com/linode-api/reference/post-pay-pal-payment) that has been approved with PayPal.", - "example": "PAY-1234567890ABCDEFGHIJKLMN", - "type": "string" - } - }, - "required": [ - "payer_id", - "payment_id" - ], - "type": "object", - "x-akamai": { - "file-path": "schemas/paypal-execute.yaml" - } - }, - "promotion": { - "additionalProperties": false, - "description": "__Read-only__ Promotions generally offer a set amount of credit that can be used toward your Linode services, and the promotion expires after a specified date. As well, a monthly cap on the promotional offer is set.\n\nSimply put, a promotion offers a certain amount of credit month, until either the expiration date is passed, or until the total promotional credit is used, whichever comes first.", - "properties": { - "credit_monthly_cap": { - "description": "The amount available to spend per month.", - "example": "10.00", - "type": "string", - "x-linode-cli-display": 5 - }, - "credit_remaining": { - "description": "The total amount of credit left for this promotion.", - "example": "50.00", - "type": "string", - "x-linode-cli-display": 3 - }, - "description": { - "description": "A detailed description of this promotion.", - "example": "Receive up to $10 off your services every month for 6 months! Unused credits will expire once this promotion period ends.", - "type": "string" - }, - "expire_dt": { - "description": "When this promotion's credits expire.", - "example": "2018-01-31T23:59:59", - "type": "string", - "x-linode-cli-display": 2 - }, - "image_url": { - "description": "The location of an image for this promotion.", - "example": "https://linode.com/10_a_month_promotion.svg", - "type": "string" - }, - "service_type": { - "description": "The service to which this promotion applies.", - "enum": [ - "all", - "backup", - "blockstorage", - "db_mysql", - "ip_v4", - "linode", - "linode_disk", - "linode_memory", - "longview", - "managed", - "nodebalancer", - "objectstorage", - "placement_group", - "transfer_tx" - ], - "example": "all", - "type": "string", - "x-linode-cli-display": 1 - }, - "summary": { - "description": "Short details of this promotion.", - "example": "$10 off your Linode a month!", - "type": "string", - "x-linode-cli-display": 10 - }, - "this_month_credit_remaining": { - "description": "The amount of credit left for this month for this promotion.", - "example": "10.00", - "type": "string", - "x-linode-cli-display": 4 - } - }, - "readOnly": true, - "type": "object", - "x-akamai": { - "file-path": "schemas/promotion.yaml" - } - }, - "properties-entities": { - "additionalProperties": false, - "description": "A collection of the services to include in this transfer request, separated by type.", - "properties": { - "linodes": { - "description": "An array containing the IDs of each of the Linodes included in this transfer.", - "example": [ - 111, - 222 - ], - "items": { - "type": "integer" - }, - "type": "array", - "x-linode-cli-display": 5 - } - }, - "type": "object" - }, - "proxy-user-token": { - "additionalProperties": false, - "description": "The token generated manually for a child account so its proxy user can access the API and CLI without going through an OAuth login.", - "properties": { - "created": { - "description": "__Filterable__, __Read-only__ The date and time this token was created.", - "example": "2024-05-01T00:01:01", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-akamai": { - "labels": [ - "Filterable" - ] - }, - "x-linode-cli-display": 4, - "x-linode-filterable": true - }, - "expiry": { - "description": "__Read-only__ When this token expires. This is default set to 15 minutes from the time of creation. Proxy user tokens can't be renewed. After this time, Akamai revokes the token and you need to generate a new one.", - "example": "2024-05-01T00:16:01", - "format": "date-time", - "readOnly": true, - "type": "string", - "x-linode-cli-display": 6 - }, - "id": { - "description": "__Read-only__ The proxy user token's unique ID, which can be used to revoke it.", - "example": 918, - "readOnly": true, - "type": "integer", - "x-linode-cli-display": 1 - }, - "label": { - "description": "__Filterable__ The name of the token. The API automatically sets this to `__How to Create a Linode API Token) - -These variables are sourced at runtime (from the local machine or as CI variables/secrets). - -
- -Using different environment variables - -To use different environment variables (instead of the defaults), use the `--auth` flag of the `stackql` program. For example: - -```bash - -AUTH='{ "linode": { "type": "bearer", "credentialsenvvar": "YOUR_LINODE_TOKEN_VAR" }}' -stackql shell --auth="${AUTH}" - -``` -or using PowerShell: - -```powershell - -$Auth = "{ 'linode': { 'type': 'bearer', 'credentialsenvvar': 'YOUR_LINODE_TOKEN_VAR' }}" -stackql.exe shell --auth=$Auth - -``` +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 `linode` provider, run the following command: + +```bash +REGISTRY PULL linode; +``` +> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). + +## Authentication + +The following system environment variables are used for authentication by default: + +- - Linode API token (see How to Create a Linode API Token) + +These variables are sourced at runtime (from the local machine or as CI variables/secrets). + +
+ +Using different environment variables + +To use different environment variables (instead of the defaults), use the `--auth` flag of the `stackql` program. For example: + +```bash + +AUTH='{ "linode": { "type": "bearer", "credentialsenvvar": "YOUR_LINODE_TOKEN_VAR" }}' +stackql shell --auth="${AUTH}" + +``` +or using PowerShell: + +```powershell + +$Auth = "{ 'linode': { 'type': 'bearer', 'credentialsenvvar': 'YOUR_LINODE_TOKEN_VAR' }}" +stackql.exe shell --auth=$Auth + +```
+## Compute inventory + +All Linode instances on your account, with placement, plan and status: + +```sql +SELECT + id, + label, + region, + type, + status, + ipv4 +FROM linode.linode.instances; +``` + +## Find the right plan and region + +The plan catalog with pricing - `price` is an object, so project the hourly and monthly rates with `json_extract`: + +```sql +SELECT + id, + vcpus, + memory, + disk, + json_extract(price, '$.hourly') as hourly_price, + json_extract(price, '$.monthly') as monthly_price +FROM linode.linode.types +ORDER BY json_extract(price, '$.monthly') +LIMIT 5; +``` + +Regions filtered by capability (for example, only regions where you can run Kubernetes): + +```sql +SELECT + id, + label, + country +FROM linode.regions.regions +WHERE capabilities LIKE '%Kubernetes%'; +``` + +Available images from a given vendor: + +```sql +SELECT + id, + label, + vendor, + size +FROM linode.images.images +WHERE vendor = 'Debian'; +``` + +## Launch a Linode + +`INSERT` columns are the native Linode API body properties (no prefixes). This launches the smallest available plan running Debian 12: + +```sql +INSERT INTO linode.linode.instances ( + label, + region, + type, + image, + root_pass +) +SELECT + 'demo-vm', + 'us-ord', + 'g6-nanode-1', + 'linode/debian12', + ''; +``` + +Watch it come up and grab its address: + +```sql +SELECT id, label, status, ipv4 +FROM linode.linode.instances +WHERE label = 'demo-vm'; +``` + +Lifecycle operations (stop, start, reboot, resize and so on) are `EXEC` methods - named for the action, addressed by the Linode id: + +```sql +EXEC linode.linode.instances.shutdown @linodeId = '12345678'; + +EXEC linode.linode.instances.boot @linodeId = '12345678'; +``` + +Clean it up when you are done: + +```sql +DELETE FROM linode.linode.instances +WHERE linodeId = 12345678; +``` + +## Storage + +Block storage volumes and Object Storage buckets across the account: + +```sql +SELECT + id, + label, + size, + region, + status +FROM linode.volumes.volumes; +``` + +```sql +SELECT + label, + cluster, + size, + objects +FROM linode.object_storage.buckets; +``` + +## Kubernetes + +LKE clusters on the account: + +```sql +SELECT + id, + label, + region, + k8s_version +FROM linode.lke.clusters; +``` + +## Account and billing + +Your account standing at a glance: + +```sql +SELECT + company, + balance, + active_since +FROM linode.account.account; +``` + + ## Services
diff --git a/website/docs/services/account/account/index.md b/website/docs/services/account/account/index.md index 9b4153d..3e14c45 100644 --- a/website/docs/services/account/account/index.md +++ b/website/docs/services/account/account/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an account resource. ## Overview - +
Nameaccount
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an account resource. The following fields are returned by `SELECT` queries: - + Returns a single account object. @@ -98,7 +99,7 @@ Returns a single account object. string - __Read-only__ The source of service charges for this account. Accounts that are associated with Akamai-specific customers return a value of `akamai`. All other accounts return a value of `linode`. (example: akamai) + __Read-only__ The source of service charges for this account. Accounts that are associated with Akamai-specific customers return a value of `akamai`. All other accounts return a value of `linode`. (akamai, linode) (example: akamai) @@ -171,21 +172,21 @@ The following methods are available for this resource: - + Returns the contact and billing information related to your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + Updates contact and billing information related to your account. If you exclude any properties from the request, the operation leaves them unchanged.

> 📘
>
> When updating an account's `country` to `US`, you'll get an error if the account's `zip` is not a valid US zip code.

**Parent and child accounts**

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- You can't change the `company` for a parent account. Akamai uses this value to set the name for a child account parent user (proxy user) on any child account.

- Child account users can't run this operation. These users don't have access to billing-related operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + @@ -213,12 +214,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns the contact and billing information related to your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -254,30 +255,30 @@ FROM linode.account.account ## `REPLACE` examples - + Updates contact and billing information related to your account. If you exclude any properties from the request, the operation leaves them unchanged.

> 📘
>
> When updating an account's `country` to `US`, you'll get an error if the account's `zip` is not a valid US zip code.

**Parent and child accounts**

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- You can't change the `company` for a parent account. Akamai uses this value to set the name for a child account parent user (proxy user) on any child account.

- Child account users can't run this operation. These users don't have access to billing-related operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.account.account SET -data__address_1 = '{{ address_1 }}', -data__address_2 = '{{ address_2 }}', -data__city = '{{ city }}', -data__company = '{{ company }}', -data__country = '{{ country }}', -data__email = '{{ email }}', -data__first_name = '{{ first_name }}', -data__last_name = '{{ last_name }}', -data__phone = '{{ phone }}', -data__state = '{{ state }}', -data__tax_id = '{{ tax_id }}', -data__zip = '{{ zip }}' +address_1 = '{{ address_1 }}', +address_2 = '{{ address_2 }}', +city = '{{ city }}', +company = '{{ company }}', +country = '{{ country }}', +email = '{{ email }}', +first_name = '{{ first_name }}', +last_name = '{{ last_name }}', +phone = '{{ phone }}', +state = '{{ state }}', +tax_id = '{{ tax_id }}', +zip = '{{ zip }}' RETURNING tax_id, first_name, @@ -307,17 +308,17 @@ zip; ## Lifecycle Methods - + Deletes an active account. Akamai attempts to charge the credit card on file for any remaining balance. An error occurs if this charge fails.

> 🚧
>
> - This operation permanently deletes your account and it _can't_ be recovered. Also, there is no warning prompt after you execute this operation.
>
> - Only account users with _unrestricted_ access can run this operation.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- A child account user can't remove a child account.

- You can't remove a parent account if it has an active child account.

- You need to work with your Akamai account team to dissolve any parent-child account relationships before you can fully remove a child or parent account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.account.post_cancel_account +EXEC linode.account.account.cancel @@json= '{ "comments": "{{ comments }}" diff --git a/website/docs/services/account/agreements/index.md b/website/docs/services/account/agreements/index.md index 1398760..e59ead5 100644 --- a/website/docs/services/account/agreements/index.md +++ b/website/docs/services/account/agreements/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an agreements resource. ## Overview - +
Nameagreements
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an agreements resource. The following fields are returned by `SELECT` queries: - + The status of each acceptance agreement for your account. @@ -91,14 +92,14 @@ The following methods are available for this resource: - + Returns all agreements and their acceptance status for your account. __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + @@ -126,12 +127,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns all agreements and their acceptance status for your account. __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -151,17 +152,17 @@ FROM linode.account.agreements ## Lifecycle Methods - + Accept required agreements by setting them to `true`. This remains until the content of the agreement changes. If it does, you need to run this operation again to accept it. If you set this to `false`, the API rejects the request and you need to open a [support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) to reset the agreement. Omitted agreements are left unchanged. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.agreements.post_account_agreements +EXEC linode.account.agreements.acknowledge @@json= '{ "billing_agreement": {{ billing_agreement }}, diff --git a/website/docs/services/account/availability/index.md b/website/docs/services/account/availability/index.md index 939cd69..3c10a5d 100644 --- a/website/docs/services/account/availability/index.md +++ b/website/docs/services/account/availability/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an availability resource. ## Overview - +
Nameavailability
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an availability resource. The following fields are returned by `SELECT` queries: - + The services available in the specified region. @@ -86,9 +87,9 @@ The following methods are available for this resource: - + - + regionId View the available services for your account, in a specific region.

> 📘
>
> Only account users with _unrestricted_ access can run this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -108,18 +109,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The abbreviated value ("slug") for the applicable data center. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the slug for each data center. + ## `SELECT` examples - + View the available services for your account, in a specific region.

> 📘
>
> Only account users with _unrestricted_ access can run this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -129,6 +135,7 @@ available, region, unavailable FROM linode.account.availability +WHERE regionId = '{{ regionId }}' -- required ; ```
diff --git a/website/docs/services/account/available_services/index.md b/website/docs/services/account/available_services/index.md index 32f75d6..b724c07 100644 --- a/website/docs/services/account/available_services/index.md +++ b/website/docs/services/account/available_services/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an available_services reso ## Overview - +
Nameavailable_services
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an available_services reso The following fields are returned by `SELECT` queries: - + List of regions and the services available in each. @@ -86,7 +87,7 @@ The following methods are available for this resource: - + page, page_size @@ -124,12 +125,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a paginated list of the services available to you, for all Linode regions.

> 📘
>
> Only authorized users can run this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) diff --git a/website/docs/services/account/beta_programs/index.md b/website/docs/services/account/beta_programs/index.md index 1f18f58..412b4e4 100644 --- a/website/docs/services/account/beta_programs/index.md +++ b/website/docs/services/account/beta_programs/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a beta_programs resource. ## Overview - +
Namebeta_programs
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a beta_programs resource. The following fields are returned by `SELECT` queries: - + Returns an enrolled Beta Program object for the Account. @@ -84,7 +85,7 @@ Returns an enrolled Beta Program object for the Account. - + Returns a paginated list of all enrolled Beta Program objects for the Account. @@ -148,21 +149,21 @@ The following methods are available for this resource: - + - + betaId Display an enrolled Beta Program for your Account. The Beta Program may be inactive.

Only unrestricted Users can access this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Display all enrolled Beta Programs for your Account. Includes inactive as well as active Beta Programs.

Only unrestricted Users can access this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + id @@ -184,6 +185,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Beta Program. (example: {{betaId}}) + integer @@ -200,13 +206,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Display an enrolled Beta Program for your Account. The Beta Program may be inactive.

Only unrestricted Users can access this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -219,10 +225,11 @@ enrolled, label, started FROM linode.account.beta_programs +WHERE betaId = '{{ betaId }}' -- required ; ```
- + Display all enrolled Beta Programs for your Account. Includes inactive as well as active Beta Programs.

Only unrestricted Users can access this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -246,17 +253,17 @@ AND page_size = '{{ page_size }}' ## Lifecycle Methods - + Enroll your Account in an active Beta Program.

Only unrestricted Users can access this operation.

To view active Beta Programs, run the [List beta programs](https://techdocs.akamai.com/linode-api/reference/get-beta-programs) operation.

Active Beta Programs may have a limited number of enrollments. If a Beta Program has reached is maximum number of enrollments, an error is returned even though the request is successful.

Beta Programs with `"greenlight_only": true` can only be enrolled by Accounts that participate in the [Greenlight](https://www.linode.com/green-light/) program.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.beta_programs.post_beta_program +EXEC linode.account.beta_programs.enroll @@json= '{ "id": "{{ id }}" diff --git a/website/docs/services/account/child_accounts/index.md b/website/docs/services/account/child_accounts/index.md index 680394d..394139b 100644 --- a/website/docs/services/account/child_accounts/index.md +++ b/website/docs/services/account/child_accounts/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a child_accounts resource. ## Overview - +
Namechild_accounts
Name
TypeResource
Id
@@ -32,15 +33,15 @@ Creates, updates, deletes, gets or lists a child_accounts resource. The following fields are returned by `SELECT` queries: - + -Returns the child-level account for a specified `euuid`. +Returns the specified child-level account. @@ -94,7 +95,7 @@ Returns the child-level account for a specified `euuid`. - + @@ -149,7 +150,7 @@ Returns the child-level account for a specified `euuid`.
string__Read-only__ The source of service charges for this account, as determined by its relationship with Akamai. The API returns a value of `external` to describe a child account in a parent-child account environment. (example: external)__Read-only__ The source of service charges for this account, as determined by its relationship with Akamai. The API returns a value of `external` to describe a child account in a parent-child account environment. (external) (example: external)
- + Returns child-level accounts. @@ -163,24 +164,99 @@ Returns child-level accounts. - + + string + The tax identification number for this child account. Use this for tax calculations in some countries. If you live in a country that doesn't collect taxes, ensure this is an empty string (`""`). (example: ATU99999999) + + + + string + __Filterable__ The first name of the owner of this child account. It can't include any of these characters: `<` `>` `(` `)` `"` `=`. (example: John) + + + + string + __Filterable__ The last name of the owner of this child account. It can't include any of these characters: `<` `>` `(` `)` `"` `=`. (example: Smith) + + + + string (date-time) + __Read-only__ The activation date and time for the child account. (example: 2018-01-01T00:01:01) + + + + string + __Filterable__ First line of this child account's billing address. (example: 123 Main Street) + + + + string + __Filterable__ Second line of this child account's billing address, if applicable. (example: Suite A) + + + + number + __Read-only__ This child account's balance, in US dollars. + + + + number + __Read-only__ This child account's current estimated invoice in US dollars. This is not your final invoice balance. Transfer charges are not included in the estimate. + + + + string + __Read-only__ The source of service charges for this account, as determined by its relationship with Akamai. The API returns a value of `external` to describe a child account in a parent-child account environment. (external) (example: external) + + + array - + __Read-only__ A list of the capabilities the child account supports. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__ The city for this child account's billing address. (example: San Diego) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__ The company name for the owner of this child account. It can't include any of these characters: `<` `>` `(` `)` `"` `=`. You can't change this value yourself. We use it to create the proxy users that a parent account uses to access a child account. Talk to your account team if you need to change this value. (example: Acme) - - integer - __Read-only__ The total number of results. + + string + __Filterable__ The two-letter ISO 3166 country code for this child account's billing address. (example: US) + + + + object + __Read-only__ Information for the credit card you've assigned to this child account. + + + + string + __Filterable__ The email address of the owner of this child account. (example: john.smith@linode.com) + + + + string (uuid) + __Read-only__ An external, unique identifier that Akamai assigned to the child account. (example: A1BC2DEF-34GH-567I-J890KLMN12O34P56) + + + + string + __Filterable__ The phone number for the owner of this child account. (example: 858-555-1212) + + + + string + __Filterable__ The state or province for the billing address (`address_1` and `address_2, if applicable`). If in the United States (US) or Canada (CA), this is the two-letter ISO 3166 State or Province code. > 📘 > > If this is a US military address, use state abbreviations (AA, AE, AP). (example: CA) + + + + string + __Filterable__ The zip code of this Account's billing address. The following restrictions apply: - Can only contain ASCII letters, numbers, and hyphens (`-`). - Can't contain more than 9 letter or number characters. (example: 92111-1234) @@ -203,25 +279,25 @@ The following methods are available for this resource: - + + euuId - - View a specific child account based on its `euuid`. See [Parent and Child Accounts for Akamai Partners](https://www.linode.com/docs/guides/parent-child-accounts/) for details on these accounts.

> 📘
>
> This operation can only be accessed by an unrestricted user, or restricted user with the `child_account_access` grant.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + View a specific child account. See [Parent and Child Accounts for Akamai Partners](https://www.linode.com/docs/guides/parent-child-accounts/) for details on these accounts.

> 📘
>
> This operation can only be accessed by an unrestricted user, or restricted user with the `child_account_access` grant.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Returns a paginated list of basic information for the child accounts that exist for your parent account. See [Parent and Child Accounts for Akamai Partners](https://www.linode.com/docs/guides/parent-child-accounts/) for details on these accounts.

> 📘
>
> This operation can only be accessed by an unrestricted parent user, or restricted parent user with the `child_account_access` grant.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + euuId - - Create a short-lived bearer token for a parent user on a child account, using the `euuid` of that child account. In the context of the API, a parent user on a child account is referred to as a "proxy user." When Akamai provisions your parent-child account environment, a proxy user is automatically set in the child account. It follows a specific naming convention:

<Parent account `company` name>_<SHA256 hash of parent `company` name and child account `euuid`>

> 📘
>
> These variables only use the first 15 and 16 characters of these values, respectively.

The token lets a parent account run API operations through the proxy user, as if they are a child user in the child account.

These points apply to the use of this operation:

- To create a token, a parent account user needs the `child_account_access` grant. This lets them use the proxy user on the child account. You can run [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) on a parent account user to check its `child_account_access` setting. To add this access, you can [update](https://techdocs.akamai.com/linode-api/reference/put-user-grants) the parent account user.

- The created token inherits the permissions of the proxy user. It will never have less.

- The API returns the raw token in the response. You can't get it again, so be sure to store it.

Example workflow:

1. [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) and store the `euuid` for the applicable one.
2. Run this operation and store the `token` that's created for the proxy user.
3. As a parent account user with access to the proxy user in the child account, use this `token` to authenticate API operations, as if you were a child user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Create a short-lived bearer token for a parent user on a specific child account. In the context of the API, a parent user on a child account is referred to as a "proxy user." When Akamai provisions your parent-child account environment, a proxy user is automatically set in the child account. It follows a specific naming convention:

<Parent account `company` name>_<SHA256 hash of parent `company` name and child account `euuId`>

> 📘
>
> These variables only use the first 15 and 16 characters of these values, respectively.

The token lets a parent account run API operations through the proxy user, as if they are a child user in the child account.

These points apply to the use of this operation:

- To create a token, a parent account user needs the `child_account_access` grant. This lets them use the proxy user on the child account. You can run [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) on a parent account user to check its `child_account_access` setting. To add this access, you can [update](https://techdocs.akamai.com/linode-api/reference/put-user-grants) the parent account user.

- The created token inherits the permissions of the proxy user. It will never have less.

- The API returns the raw token in the response. You can't get it again, so be sure to store it.

Example workflow:

1. [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) and store the `euuid` for the applicable one.
2. Run this operation and store the `token` that's created for the proxy user.
3. As a parent account user with access to the proxy user in the child account, use this `token` to authenticate API operations, as if you were a child user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -239,6 +315,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The child account to look up. You can run the [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) operation to find the applicable account and store its `euuid` as your `euuId`. (example: {{euuId}}) + integer @@ -255,15 +336,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -View a specific child account based on its `euuid`. See [Parent and Child Accounts for Akamai Partners](https://www.linode.com/docs/guides/parent-child-accounts/) for details on these accounts.

> 📘
>
> This operation can only be accessed by an unrestricted user, or restricted user with the `child_account_access` grant.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +View a specific child account. See [Parent and Child Accounts for Akamai Partners](https://www.linode.com/docs/guides/parent-child-accounts/) for details on these accounts.

> 📘
>
> This operation can only be accessed by an unrestricted user, or restricted user with the `child_account_access` grant.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -287,19 +368,35 @@ phone, state, zip FROM linode.account.child_accounts +WHERE euuId = '{{ euuId }}' -- required ; ```
- + Returns a paginated list of basic information for the child accounts that exist for your parent account. See [Parent and Child Accounts for Akamai Partners](https://www.linode.com/docs/guides/parent-child-accounts/) for details on these accounts.

> 📘
>
> This operation can only be accessed by an unrestricted parent user, or restricted parent user with the `child_account_access` grant.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +tax_id, +first_name, +last_name, +active_since, +address_1, +address_2, +balance, +balance_uninvoiced, +billing_source, +capabilities, +city, +company, +country, +credit_card, +email, +euuid, +phone, +state, +zip FROM linode.account.child_accounts WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -312,18 +409,18 @@ AND page_size = '{{ page_size }}' ## Lifecycle Methods - + -Create a short-lived bearer token for a parent user on a child account, using the `euuid` of that child account. In the context of the API, a parent user on a child account is referred to as a "proxy user." When Akamai provisions your parent-child account environment, a proxy user is automatically set in the child account. It follows a specific naming convention:

<Parent account `company` name>_<SHA256 hash of parent `company` name and child account `euuid`>

> 📘
>
> These variables only use the first 15 and 16 characters of these values, respectively.

The token lets a parent account run API operations through the proxy user, as if they are a child user in the child account.

These points apply to the use of this operation:

- To create a token, a parent account user needs the `child_account_access` grant. This lets them use the proxy user on the child account. You can run [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) on a parent account user to check its `child_account_access` setting. To add this access, you can [update](https://techdocs.akamai.com/linode-api/reference/put-user-grants) the parent account user.

- The created token inherits the permissions of the proxy user. It will never have less.

- The API returns the raw token in the response. You can't get it again, so be sure to store it.

Example workflow:

1. [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) and store the `euuid` for the applicable one.
2. Run this operation and store the `token` that's created for the proxy user.
3. As a parent account user with access to the proxy user in the child account, use this `token` to authenticate API operations, as if you were a child user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Create a short-lived bearer token for a parent user on a specific child account. In the context of the API, a parent user on a child account is referred to as a "proxy user." When Akamai provisions your parent-child account environment, a proxy user is automatically set in the child account. It follows a specific naming convention:

<Parent account `company` name>_<SHA256 hash of parent `company` name and child account `euuId`>

> 📘
>
> These variables only use the first 15 and 16 characters of these values, respectively.

The token lets a parent account run API operations through the proxy user, as if they are a child user in the child account.

These points apply to the use of this operation:

- To create a token, a parent account user needs the `child_account_access` grant. This lets them use the proxy user on the child account. You can run [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) on a parent account user to check its `child_account_access` setting. To add this access, you can [update](https://techdocs.akamai.com/linode-api/reference/put-user-grants) the parent account user.

- The created token inherits the permissions of the proxy user. It will never have less.

- The API returns the raw token in the response. You can't get it again, so be sure to store it.

Example workflow:

1. [List child accounts](https://techdocs.akamai.com/linode-api/reference/get-child-accounts) and store the `euuid` for the applicable one.
2. Run this operation and store the `token` that's created for the proxy user.
3. As a parent account user with access to the proxy user in the child account, use this `token` to authenticate API operations, as if you were a child user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.child_accounts.post_child_account_token - +EXEC linode.account.child_accounts.create_proxy_token +@euuId='{{ euuId }}' --required ; ```
diff --git a/website/docs/services/account/entity_transfers/index.md b/website/docs/services/account/entity_transfers/index.md index 4ed0998..07be4ae 100644 --- a/website/docs/services/account/entity_transfers/index.md +++ b/website/docs/services/account/entity_transfers/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an entity_transfers resour ## Overview - +
Nameentity_transfers
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an entity_transfers resour The following fields are returned by `SELECT` queries: - + Returns an Entity Transfer object containing the details of the transfer for the specified token. @@ -74,7 +75,7 @@ Returns an Entity Transfer object containing the details of the transfer for the string - __Filterable__ The status of the transfer request: `accepted`: The transfer has been accepted by another user and is currently in progress. Transfers can take up to 3 hours to complete. `canceled`: The transfer has been canceled by the sender. `completed`: The transfer has completed successfully. `failed`: The transfer has failed after initiation. `pending`: The transfer is ready to be accepted. `stale`: The transfer has exceeded its expiration date. It can no longer be accepted or canceled. (example: pending) + __Filterable__ The status of the transfer request: `accepted`: The transfer has been accepted by another user and is currently in progress. Transfers can take up to 3 hours to complete. `canceled`: The transfer has been canceled by the sender. `completed`: The transfer has completed successfully. `failed`: The transfer has failed after initiation. `pending`: The transfer is ready to be accepted. `stale`: The transfer has exceeded its expiration date. It can no longer be accepted or canceled. (accepted, canceled, completed, failed, pending, stale) (example: pending) @@ -89,7 +90,7 @@ Returns an Entity Transfer object containing the details of the transfer for the - + Returns a paginated list of Entity Transfer objects containing the details of all transfers that have been created and accepted by this account. @@ -125,7 +126,7 @@ Returns a paginated list of Entity Transfer objects containing the details of al string - __Filterable__ The status of the transfer request: `accepted`: The transfer has been accepted by another user and is currently in progress. Transfers can take up to 3 hours to complete. `canceled`: The transfer has been canceled by the sender. `completed`: The transfer has completed successfully. `failed`: The transfer has failed after initiation. `pending`: The transfer is ready to be accepted. `stale`: The transfer has exceeded its expiration date. It can no longer be accepted or canceled. (example: pending) + __Filterable__ The status of the transfer request: `accepted`: The transfer has been accepted by another user and is currently in progress. Transfers can take up to 3 hours to complete. `canceled`: The transfer has been canceled by the sender. `completed`: The transfer has completed successfully. `failed`: The transfer has failed after initiation. `pending`: The transfer is ready to be accepted. `stale`: The transfer has exceeded its expiration date. It can no longer be accepted or canceled. (accepted, canceled, completed, failed, pending, stale) (example: pending) @@ -158,37 +159,37 @@ The following methods are available for this resource: - + - + token __Deprecated__ Please run [Get a service transfer request](https://techdocs.akamai.com/linode-api/reference/get-service-transfer). __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size __Deprecated__ Please run [List service transfers](https://techdocs.akamai.com/linode-api/reference/get-service-transfers). __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__entities + entities __Deprecated__ Please run [Request a service transfer](https://techdocs.akamai.com/linode-api/reference/post-service-transfer). __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + token __Deprecated__ Please run [Cancel a service transfer](https://techdocs.akamai.com/linode-api/reference/delete-service-transfer). __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + token __Deprecated__ Please run [Accept a service transfer](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer). __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -208,6 +209,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string (uuid) + The UUID of the Entity Transfer. (example: {{token}}) + integer @@ -224,13 +230,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + __Deprecated__ Please run [Get a service transfer request](https://techdocs.akamai.com/linode-api/reference/get-service-transfer). __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -244,10 +250,11 @@ status, token, updated FROM linode.account.entity_transfers +WHERE token = '{{ token }}' -- required ; ```
- + __Deprecated__ Please run [List service transfers](https://techdocs.akamai.com/linode-api/reference/get-service-transfers). __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -272,19 +279,19 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + __Deprecated__ Please run [Request a service transfer](https://techdocs.akamai.com/linode-api/reference/post-service-transfer). __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.account.entity_transfers ( -data__entities +entities ) SELECT '{{ entities }}' /* required */ @@ -301,16 +308,17 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: entity_transfers props: - name: entities - value: object - description: > + description: | A collection of the entities to include in this transfer request, separated by type. - -``` + value: + linodes: + - {{ linodes }} +`} +
@@ -318,17 +326,18 @@ updated ## `DELETE` examples - + __Deprecated__ Please run [Cancel a service transfer](https://techdocs.akamai.com/linode-api/reference/delete-service-transfer). __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.account.entity_transfers +WHERE token = '{{ token }}' --required ; ```
@@ -338,18 +347,18 @@ DELETE FROM linode.account.entity_transfers ## Lifecycle Methods - + __Deprecated__ Please run [Accept a service transfer](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer). __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.entity_transfers.post_accept_entity_transfer - +EXEC linode.account.entity_transfers.accept +@token='{{ token }}' --required ; ```
diff --git a/website/docs/services/account/events/index.md b/website/docs/services/account/events/index.md index 8d883fc..1931059 100644 --- a/website/docs/services/account/events/index.md +++ b/website/docs/services/account/events/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an events resource. ## Overview - +
Nameevents
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an events resource. The following fields are returned by `SELECT` queries: - + An Event object. @@ -59,13 +60,18 @@ An Event object. string - __Read-only__ The action that caused this event. New actions may be added in the future. (example: ticket_create) + __Read-only__ The action that caused this event. New actions may be added in the future. (account_agreement_eu_model, account_promo_apply, account_update, account_settings_update, backups_enable, backups_cancel, backups_restore, community_question_reply, community_like, community_mention, credit_card_updated, database_create, database_delete, database_update, database_failed, database_degraded, database_create_failed, database_update_failed, database_backup_create, database_backup_restore, database_backup_delete, database_credentials_reset, database_low_disk_space, database_scale, database_resize, database_resize_create, database_migrate, database_upgrade, database_suspend, database_resume, disk_create, disk_delete, disk_update, disk_duplicate, disk_imagize, disk_resize, dns_record_create, dns_record_delete, dns_record_update, dns_zone_create, dns_zone_delete, dns_zone_import, dns_zone_update, entity_transfer_accept, entity_transfer_accept_recipient, entity_transfer_cancel, entity_transfer_create, entity_transfer_fail, entity_transfer_stale, firewall_apply, firewall_create, firewall_delete, firewall_disable, firewall_enable, firewall_update, firewall_device_add, firewall_device_remove, firewall_rules_update, host_reboot, image_delete, image_update, image_upload, interface_create, interface_delete, interface_update, ipaddress_update, ipv6pool_add, ipv6pool_delete, lassie_reboot, lish_boot, linode_addip, linode_boot, linode_clone, linode_create, linode_delete, linode_update, linode_deleteip, linode_kvmify, linode_migrate, linode_migrate_datacenter, linode_migrate_datacenter_create, linode_mutate, linode_mutate_create, linode_poweroff_on, linode_reboot, linode_rebuild, linode_resize, linode_resize_create, linode_resize_warm_create, linode_shutdown, linode_snapshot, linode_config_create, linode_config_delete, linode_config_update, lke_control_plane_acl_create, lke_control_plane_acl_update, lke_control_plane_acl_delete, lke_cluster_create, lke_cluster_update, lke_cluster_delete, lke_cluster_recycle, lke_cluster_regenerate, lke_node_create, lke_node_delete, lke_node_recycle, lke_pool_create, lke_pool_delete, lke_pool_recycle, lke_kubeconfig_regenerate, lke_token_rotate, longviewclient_create, longviewclient_delete, longviewclient_update, managed_disabled, managed_enabled, managed_service_create, managed_service_delete, nodebalancer_create, nodebalancer_delete, nodebalancer_update, nodebalancer_config_create, nodebalancer_config_delete, nodebalancer_config_update, nodebalancer_node_create, nodebalancer_node_delete, nodebalancer_node_update, oauth_client_create, oauth_client_delete, oauth_client_secret_reset, oauth_client_update, obj_access_key_create, obj_access_key_delete, obj_access_key_update, password_reset, payment_method_add, payment_submitted, placement_group_assign, placement_group_became_compliant, placement_group_became_non_compliant, placement_group_create, placement_group_delete, placement_group_unassign, placement_group_update, profile_update, stackscript_create, stackscript_delete, stackscript_update, stackscript_publicize, stackscript_revise, subnet_create, subnet_delete, subnet_update, tag_create, tag_delete, tag_update, tax_id_valid, tax_id_invalid, tfa_disabled, tfa_enabled, ticket_attachment_upload, ticket_create, ticket_update, token_create, token_delete, token_update, user_create, user_update, user_delete, user_ssh_key_add, user_ssh_key_delete, user_ssh_key_update, vlan_attach, vlan_detach, volume_attach, volume_clone, volume_create, volume_delete, volume_update, volume_detach, volume_resize, volume_migrate, volume_migrate_scheduled, vpc_create, vpc_delete, vpc_update) (example: ticket_create) string (date-time) __Read-only__ When the system created this event. (example: 2018-01-01T00:01:01) + + + object + __Beta__, __Read-only__ Maintenance details for this event, if any. + number @@ -91,11 +97,6 @@ An Event object. string __Read-only__ The rate of completion of the event. Only some events return a `rate`, such as the `migration` and `resize` events. - - - boolean - __Read-only__ If a user on your account has [marked an event as read](https://techdocs.akamai.com/linode-api/reference/post-event-read). - object @@ -109,7 +110,7 @@ An Event object. string - __Read-only__ The current status of this event. + __Read-only__ The current status of this event. (failed, finished, notification, scheduled, started) @@ -124,7 +125,7 @@ An Event object. - + Returns a paginated list of Event objects from the last 90 days. @@ -138,24 +139,74 @@ Returns a paginated list of Event objects from the last 90 days. - - array - + + integer + __Filterable__ The unique ID of this event. - - integer - The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__ The action that caused this event. New actions may be added in the future. (account_agreement_eu_model, account_promo_apply, account_update, account_settings_update, backups_enable, backups_cancel, backups_restore, community_question_reply, community_like, community_mention, credit_card_updated, database_create, database_delete, database_update, database_failed, database_degraded, database_create_failed, database_update_failed, database_backup_create, database_backup_restore, database_backup_delete, database_credentials_reset, database_low_disk_space, database_scale, database_resize, database_resize_create, database_migrate, database_upgrade, database_suspend, database_resume, disk_create, disk_delete, disk_update, disk_duplicate, disk_imagize, disk_resize, dns_record_create, dns_record_delete, dns_record_update, dns_zone_create, dns_zone_delete, dns_zone_import, dns_zone_update, entity_transfer_accept, entity_transfer_accept_recipient, entity_transfer_cancel, entity_transfer_create, entity_transfer_fail, entity_transfer_stale, firewall_apply, firewall_create, firewall_delete, firewall_disable, firewall_enable, firewall_update, firewall_device_add, firewall_device_remove, firewall_rules_update, host_reboot, image_delete, image_update, image_upload, interface_create, interface_delete, interface_update, ipaddress_update, ipv6pool_add, ipv6pool_delete, lassie_reboot, lish_boot, linode_addip, linode_boot, linode_clone, linode_create, linode_delete, linode_update, linode_deleteip, linode_kvmify, linode_migrate, linode_migrate_datacenter, linode_migrate_datacenter_create, linode_mutate, linode_mutate_create, linode_poweroff_on, linode_reboot, linode_rebuild, linode_resize, linode_resize_create, linode_resize_warm_create, linode_shutdown, linode_snapshot, linode_config_create, linode_config_delete, linode_config_update, lke_cluster_create, lke_cluster_update, lke_cluster_delete, lke_cluster_recycle, lke_cluster_regenerate, lke_control_plane_acl_create, lke_control_plane_acl_update, lke_control_plane_acl_delete, lke_node_create, lke_node_delete, lke_node_recycle, lke_pool_create, lke_pool_delete, lke_pool_recycle, lke_kubeconfig_regenerate, lke_token_rotate, longviewclient_create, longviewclient_delete, longviewclient_update, managed_disabled, managed_enabled, managed_service_create, managed_service_delete, nodebalancer_create, nodebalancer_delete, nodebalancer_update, nodebalancer_config_create, nodebalancer_config_delete, nodebalancer_config_update, nodebalancer_node_create, nodebalancer_node_delete, nodebalancer_node_update, oauth_client_create, oauth_client_delete, oauth_client_secret_reset, oauth_client_update, obj_access_key_create, obj_access_key_delete, obj_access_key_update, password_reset, payment_method_add, payment_submitted, placement_group_assign, placement_group_became_compliant, placement_group_became_non_compliant, placement_group_create, placement_group_delete, placement_group_unassign, placement_group_update, profile_update, stackscript_create, stackscript_delete, stackscript_update, stackscript_publicize, stackscript_revise, subnet_create, subnet_delete, subnet_update, tag_create, tag_delete, tag_update, tax_id_valid, tax_id_invalid, tfa_disabled, tfa_enabled, ticket_attachment_upload, ticket_create, ticket_update, token_create, token_delete, token_update, user_create, user_update, user_delete, user_ssh_key_add, user_ssh_key_delete, user_ssh_key_update, vlan_attach, vlan_detach, volume_attach, volume_clone, volume_create, volume_delete, volume_update, volume_detach, volume_resize, volume_migrate, volume_migrate_scheduled, vpc_create, vpc_delete, vpc_update) (example: ticket_create) - - integer - The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Filterable__ When the system created this event. (example: 2018-01-01T00:01:01) + + + + object + __Beta__ Maintenance details for this event, if any. - + + number + The number of seconds that it takes for the event to complete. + + + + object + Detailed information about the entity that triggered this event. + + + + string + Additional information about the event. This can be a more detailed representation of an event that can help you diagnose non-obvious failures. (example: None) + + + integer - The total number of results. + A percentage estimating the amount of time remaining for an event. Returned as `null` for notification events. + + + + string + The rate of completion of the event. Only some events return a `rate`, such as the `migration` and `resize` events. + + + + object + Detailed information about the event's secondary entity, if applicable. + + + + boolean + If a user on your account has [marked an event as seen](https://techdocs.akamai.com/linode-api/reference/post-event-seen). + + + + string + The current status of this event. (completed, failed, finished, in_progress, notification, scheduled, started) + + + + string + The estimated time remaining until the event completes. This is only returned for some in-progress migration events. Otherwise, the `percent_complete` attribute indicates how long until completion. + + + + string + The name of the user whose action caused the event. (example: exampleUser) @@ -178,23 +229,23 @@ The following methods are available for this resource: - + - + eventId Returns a single event object.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - page, page_size + X-Filter, page, page_size Returns a collection of event objects that represent actions you've taken on your account, over the last 90 days. The events returned depend on your user grants.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + eventId Acknowledge an event by marking it as seen.

> 📘
>
> On June 17, 2025, the "Mark an event as read" operation was sunset. Attempts to call it will return a 404. Use this operation instead.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -214,6 +265,16 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Event to designate as seen. + + + + + Specifies a JSON object to filter down the results. See [Filtering and sorting](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) for details. (example: {{X-Filter}}) + integer @@ -230,13 +291,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a single event object.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -245,33 +306,45 @@ SELECT id, action, created, +details, duration, entity, message, percent_complete, rate, -read, secondary_entity, seen, status, time_remaining, username FROM linode.account.events +WHERE eventId = '{{ eventId }}' -- required ; ```
- + Returns a collection of event objects that represent actions you've taken on your account, over the last 90 days. The events returned depend on your user grants.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +action, +created, +details, +duration, +entity, +message, +percent_complete, +rate, +secondary_entity, +seen, +status, +time_remaining, +username FROM linode.account.events -WHERE page = '{{ page }}' +WHERE X-Filter = '{{ X-Filter }}' +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` @@ -282,18 +355,18 @@ AND page_size = '{{ page_size }}' ## Lifecycle Methods - + Acknowledge an event by marking it as seen.

> 📘
>
> On June 17, 2025, the "Mark an event as read" operation was sunset. Attempts to call it will return a 404. Use this operation instead.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.events.post_event_seen - +EXEC linode.account.events.mark_seen +@eventId='{{ eventId }}' --required ; ```
diff --git a/website/docs/services/account/invoice_items/index.md b/website/docs/services/account/invoice_items/index.md index 301f2bb..7d5b509 100644 --- a/website/docs/services/account/invoice_items/index.md +++ b/website/docs/services/account/invoice_items/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an invoice_items resource. ## Overview - +
Nameinvoice_items
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an invoice_items resource. The following fields are returned by `SELECT` queries: - + A paginated list of InvoiceItem objects. @@ -51,24 +52,54 @@ A paginated list of InvoiceItem objects. - - array - + + number + __Read-only__ The price, in US dollars, of the Invoice Item. Equal to the unit price multiplied by quantity. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ The date the Invoice Item started, based on month. (example: 2018-01-01T00:01:01) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Read-only__ The Invoice Item's display label. (example: Linode 123) - + integer - __Read-only__ The total number of results. + __Read-only__ The quantity of this Item for the specified Invoice. + + + + string + __Read-only__ The ID of the applicable Region associated with this Invoice Item. `null` if there is no applicable Region. (example: us-west) + + + + number + __Read-only__ The amount of tax levied on this Item in US Dollars. + + + + string (date-time) + __Read-only__ The date the Invoice Item ended, based on month. (example: 2018-01-31T11:59:59) + + + + number + __Read-only__ The price of this Item after taxes in US Dollars. + + + + string + __Read-only__ The type of service, ether `hourly` or `misc`. (hourly, misc) (example: hourly) + + + + string + __Read-only__ The monthly service fee in US Dollars for this Item. @@ -91,9 +122,9 @@ The following methods are available for this resource: - + - + invoiceId page, page_size Returns a paginated list of Invoice items.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -113,6 +144,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Invoice. + integer @@ -129,23 +165,30 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a paginated list of Invoice items.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +amount, +from, +label, +quantity, +region, +tax, +to, +total, +type, +unit_price FROM linode.account.invoice_items -WHERE page = '{{ page }}' +WHERE invoiceId = '{{ invoiceId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` diff --git a/website/docs/services/account/invoices/index.md b/website/docs/services/account/invoices/index.md index 2611cd3..4b519fa 100644 --- a/website/docs/services/account/invoices/index.md +++ b/website/docs/services/account/invoices/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an invoices resource. ## Overview - +
Nameinvoices
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an invoices resource. The following fields are returned by `SELECT` queries: - + An Invoice object. @@ -59,7 +60,7 @@ An Invoice object. string - __Filterable__, __Read-only__ `akamai`: This Invoice was generated according to the terms of an agreement between the customer and Akamai. `linode`: This Invoice was generated according to the default terms, prices, and discounts. (example: linode) + __Filterable__, __Read-only__ The source of service charges for this invoice. A value of `akamai` indicates an invoice generated according to the terms of an agreement between the customer and Akamai. A value of `linode` indicates an invoice was generated according to the default terms, prices, and discounts. (akamai, linode) (example: linode) @@ -94,7 +95,7 @@ An Invoice object. - + Returns a paginated list of Invoice objects. @@ -108,24 +109,44 @@ Returns a paginated list of Invoice objects. - - array - + + integer + __Read-only__ The Invoice's unique ID. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__, __Read-only__ The source of service charges for this invoice. A value of `akamai` indicates an invoice generated according to the terms of an agreement between the customer and Akamai. A value of `linode` indicates an invoice was generated according to the default terms, prices, and discounts. (akamai, linode) (example: linode) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Filterable__, __Read-only__ When this Invoice was generated. (example: 2018-01-01T00:01:01) - - integer - __Read-only__ The total number of results. + + string + __Filterable__, __Read-only__ The Invoice's display label. (example: Invoice) + + + + number + __Read-only__ The amount of the Invoice before taxes in US Dollars. + + + + number + __Read-only__ The amount of tax levied on the Invoice in US Dollars. + + + + array + __Read-only__ The amount of tax broken down into subtotals by source. + + + + number + __Filterable__, __Read-only__ The amount of the Invoice after taxes in US Dollars. @@ -148,18 +169,18 @@ The following methods are available for this resource: - + - + invoiceId Returns a single Invoice object.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - page, page_size - Returns a paginated list of Invoices against your Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + X-Filter, page, page_size + Returns a paginated list of invoices against your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -177,6 +198,16 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Invoice. + + + + + Specifies a JSON object to filter down the results. See [Filtering and sorting](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) for details. (example: {{X-Filter}}) + integer @@ -193,13 +224,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a single Invoice object.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -214,21 +245,27 @@ tax, tax_summary, total FROM linode.account.invoices +WHERE invoiceId = '{{ invoiceId }}' -- required ; ```
- + -Returns a paginated list of Invoices against your Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of invoices against your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +billing_source, +date, +label, +subtotal, +tax, +tax_summary, +total FROM linode.account.invoices -WHERE page = '{{ page }}' +WHERE X-Filter = '{{ X-Filter }}' +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` diff --git a/website/docs/services/account/logins/index.md b/website/docs/services/account/logins/index.md index 066b860..9c4519b 100644 --- a/website/docs/services/account/logins/index.md +++ b/website/docs/services/account/logins/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a logins resource. ## Overview - +
Namelogins
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a logins resource. The following fields are returned by `SELECT` queries: - + The requested login object. @@ -74,7 +75,7 @@ The requested login object. string - __Read-only__ Whether the login attempt succeeded or failed. (example: successful) + __Read-only__ Whether the login attempt succeeded or failed. (successful, failed) (example: successful) @@ -84,7 +85,7 @@ The requested login object. - + A collection of successful logins for all users on the account during the last 90 days. @@ -98,24 +99,34 @@ A collection of successful logins for all users on the account during the last 9 - - array - + + integer + __Read-only__ The unique ID of this login object. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ When the login was initiated. (example: 2018-01-01T00:01:01) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (ip) + __Read-only__ The remote IP address that requested the login. (example: 192.0.2.0) - - integer - __Read-only__ The total number of results. + + boolean + __Read-only__ True if the User that attempted the login was a restricted User, false otherwise. + + + + string + __Read-only__ Whether the login attempt succeeded or failed. (successful, failed) (example: successful) + + + + string + __Read-only__ The username of the User that attempted the login. (example: example_user) @@ -138,14 +149,14 @@ The following methods are available for this resource: - + - + loginId Returns a Login object that displays information about a successful login. The logins that can be viewed can be for any user on the account, and are not limited to only the logins of the user that is accessing this API endpoint. This operation can only be accessed by the unrestricted users of the account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + @@ -167,19 +178,24 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the login object to access. + ## `SELECT` examples - + Returns a Login object that displays information about a successful login. The logins that can be viewed can be for any user on the account, and are not limited to only the logins of the user that is accessing this API endpoint. This operation can only be accessed by the unrestricted users of the account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -192,19 +208,22 @@ restricted, status, username FROM linode.account.logins +WHERE loginId = '{{ loginId }}' -- required ; ```
- + Returns a collection of successful logins for all users on the account during the last 90 days. This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +datetime, +ip, +restricted, +status, +username FROM linode.account.logins ; ``` diff --git a/website/docs/services/account/maintenances/index.md b/website/docs/services/account/maintenances/index.md index 3e2ccf7..93d4693 100644 --- a/website/docs/services/account/maintenances/index.md +++ b/website/docs/services/account/maintenances/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a maintenances resource. ## Overview - +
Namemaintenances
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a maintenances resource. The following fields are returned by `SELECT` queries: - + Returns a paginated list of Maintenance objects. @@ -51,24 +52,59 @@ Returns a paginated list of Maintenance objects. - - array - + + string (date-time) + __Beta__, __Filterable__ The time the maintenance completed. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters: - A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value. - Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs. (example: 2020-07-09T00:01:01) + + + + string + __Beta__ Differentiates between scheduled and emergency maintenance. (Scheduled Maintenance, Emergency Maintenance) (example: Scheduled Maintenance) + + + + object + The entity affected by the maintenance. + + + + string + __Beta__, __Filterable__ The maintenance policy configured by the user. (example: linode/migrate) + + + + string (date-time) + __Beta__, __Filterable__ The earliest time when the maintenance can start. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters: - A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value. - Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs. (example: 2020-07-09T00:01:01) + + + + string + The reason maintenance is being performed. (example: This maintenance will allow us to update the BIOS on the host's motherboard.) + + + + string + __Beta__ The origin of the maintenance. A `platform` source indicates that the maintenance was initiated by Akamai. A `user` source indicates that the maintenance was initiated by the user. (platform, user) (example: platform) + + + + string (date-time) + __Beta__, __Filterable__ The time the maintenance started. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters: - A single ISO 8601 timestamp (`yyyy-mm-ddThh:mm:ss`), which returns only matches for that value. - Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs. (example: 2020-07-09T00:01:01) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__ The maintenance status. Maintenance progress follows the sequence `pending`, `scheduled`, `started`, and `completed`. A `scheduled` status is unique to Linodes that require a reboot for [QEMU maintenance](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance). (pending, scheduled, started, in-progress, completed, canceled) (example: started) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__ The type of maintenance. (reboot, cold_migration, live_migration, migrate, power_off_on) (example: reboot) - - integer - __Read-only__ The total number of results. + + string (date-time) + __Filterable__ The start time for the maintenance. This field is [filterable](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) based on these parameters: - A single ISO 8601 timestamp (yyyy-mm-ddThh:mm:ss), which returns only matches for that value. - Pairs of operator string keys (`+or`, `+gt`, `+gte`, `+lt`, `+lte`, or `+neq`) and single ISO 8601 timestamp. The `+or` operator accepts an array of values that can consist of single date-time strings or dictionaries of inequality operator pairs. (example: 2020-07-09T00:01:01) @@ -91,11 +127,11 @@ The following methods are available for this resource: - + - Returns a collection of Maintenance objects for any entity a user has permissions to view. Canceled Maintenance objects are not returned.

Currently, Linodes are the only entities available for viewing.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + Returns maintenance information for any entity your user has permissions to view. If a maintenance object has been canceled, it's not returned.

> 📘
>
> Currently, only Linodes are included as entities for viewing.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -119,21 +155,28 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Returns a collection of Maintenance objects for any entity a user has permissions to view. Canceled Maintenance objects are not returned.

Currently, Linodes are the only entities available for viewing.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) +Returns maintenance information for any entity your user has permissions to view. If a maintenance object has been canceled, it's not returned.

> 📘
>
> Currently, only Linodes are included as entities for viewing.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +complete_time, +description, +entity, +maintenance_policy_set, +not_before, +reason, +source, +start_time, +status, +type, +when FROM linode.account.maintenances ; ``` diff --git a/website/docs/services/account/network_usage/index.md b/website/docs/services/account/network_usage/index.md index e967dc5..da7d7ee 100644 --- a/website/docs/services/account/network_usage/index.md +++ b/website/docs/services/account/network_usage/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a network_usage resource. ## Overview - +
Namenetwork_usage
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a network_usage resource. The following fields are returned by `SELECT` queries: - + Returns a single Transfer object. @@ -91,7 +92,7 @@ The following methods are available for this resource: - + @@ -119,12 +120,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a Transfer object showing your network utilization, in GB, for the current month.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) diff --git a/website/docs/services/account/notifications/index.md b/website/docs/services/account/notifications/index.md index a53986a..31be2b6 100644 --- a/website/docs/services/account/notifications/index.md +++ b/website/docs/services/account/notifications/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a notifications resource. ## Overview - +
Namenotifications
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a notifications resource. The following fields are returned by `SELECT` queries: - + Returns a paginated list of notification objects. @@ -51,24 +52,44 @@ Returns a paginated list of notification objects. - - array - + + string + A full description of this notification, in markdown format. Not all notifications include a `body`. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`. + + + + object + Detailed information about the notification. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`. + + + + string + A short description of this notification. (example: You have an important ticket open!) + + + + string + A human-readable description of the notification. (example: You have an important ticket open!) + + + + string + The severity of this notification. This field determines how prominently the notification is displayed and the color of the display text. (minor, major, critical) (example: major) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__ The type of notification. > 📘 > > A `security_reboot_maintenance_scheduled` event is a global notice that a Linode needs to be rebooted for QEMU upgrade maintenance. Have a look at [this workflow](https://techdocs.akamai.com/linode-api/reference/reboot-your-linodes-for-qemu-maintenance) for guidance on reboooting your Linodes for this maintenance. (migration_scheduled, migration_imminent, migration_pending, reboot_scheduled, outage, payment_due, ticket_important, ticket_abuse, notice, maintenance, maintenance_scheduled, promotion, security_reboot_maintenance_scheduled, tax_id_verifying) (example: ticket_important) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + If this notification has a duration, this is when the event or action will complete. For example, if there's scheduled maintenance for one of our systems, `until` represents the end of the maintenance window. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`. - - integer - __Read-only__ The total number of results. + + string (date-time) + If this notification is for an event in the future, this specifies when the action occurs. For example, if a compute instance needs to migrate in response to a security advisory, this field sets the approximate time the compute instance will be taken offline for migration. Returned as `null` for an event `type` of `security_reboot_maintenance_scheduled`. @@ -91,11 +112,11 @@ The following methods are available for this resource: - + - Returns a collection of notification objects that represent important, often time-sensitive details about your account. You can't interact directly with notifications, and a notification disappears when the circumstances that caused it have been resolved. For example, if you have an important ticket open, you can respond to that ticket to dismiss its notification.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns notifications that represent important, often time-sensitive details about your account. You can't interact directly with notifications, and a notification disappears when you've resolved its cause. For example, if you have an important ticket open, you can respond to that ticket to dismiss its notification.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -119,21 +140,25 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Returns a collection of notification objects that represent important, often time-sensitive details about your account. You can't interact directly with notifications, and a notification disappears when the circumstances that caused it have been resolved. For example, if you have an important ticket open, you can respond to that ticket to dismiss its notification.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns notifications that represent important, often time-sensitive details about your account. You can't interact directly with notifications, and a notification disappears when you've resolved its cause. For example, if you have an important ticket open, you can respond to that ticket to dismiss its notification.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +body, +entity, +label, +message, +severity, +type, +until, +when FROM linode.account.notifications ; ``` diff --git a/website/docs/services/account/oauth_clients/index.md b/website/docs/services/account/oauth_clients/index.md index bb59638..da6e571 100644 --- a/website/docs/services/account/oauth_clients/index.md +++ b/website/docs/services/account/oauth_clients/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an oauth_clients resource. ## Overview - +
Nameoauth_clients
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an oauth_clients resource. The following fields are returned by `SELECT` queries: - + Information about the requested client. @@ -79,7 +80,7 @@ Information about the requested client. string - __Read-only__ The status of this application. `active` by default. (example: active) + __Read-only__ The status of this application. `active` by default. (active, disabled, suspended) (example: active) @@ -89,7 +90,7 @@ Information about the requested client. - + A paginated list of OAuth Clients. @@ -103,24 +104,39 @@ A paginated list of OAuth Clients. - - array - + + string + __Read-only__ The OAuth Client ID. This is used to identify the client, and is a publicly known value (it is not a secret). (example: 2737bf16b39ab5d7b4a1) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__ The name of this application. This will be presented to users when they are asked to grant it access to their Account. (example: Test_Client_1) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + boolean + __Filterable__ If this is a public or private OAuth Client. Public clients have a slightly different authentication workflow than private clients. See the [OAuth spec](https://oauth.net/2/) for more details. - - integer - __Read-only__ The total number of results. + + string (url) + The location a successful log in from [login.linode.com](https://login.linode.com) should be redirected to for this client. The receiver of this redirect should be ready to accept an OAuth exchange code and finish the OAuth exchange. (example: https://example.org/oauth/callback) + + + + string + __Read-only__ The OAuth Client secret, used in the OAuth exchange. This is returned as `` except when an OAuth Client is created or its secret is reset. This is a secret, and should not be shared or disclosed publicly. (example: <REDACTED>) + + + + string + __Read-only__ The status of this application. `active` by default. (active, disabled, suspended) (example: active) + + + + string (url) + __Read-only__ The URL where this client's thumbnail may be viewed, or `null` if this client does not have a thumbnail set. (example: https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail) @@ -143,60 +159,60 @@ The following methods are available for this resource: - + - + clientId Returns information about a single OAuth client.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Returns a paginated list of OAuth Clients registered to your Account. OAuth Clients allow users to log into applications you write or host using their Linode Account, and may allow them to grant some level of access to their Linodes or other entities to your application.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__label, data__redirect_uri + label, redirect_uri Creates an OAuth Client, which can be used to allow users (using their Linode account) to log in to your own application, and optionally grant your application some amount of access to their Linodes or other entities.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clientId Update information about an OAuth Client on your Account. This can be especially useful to update the `redirect_uri` of your client in the event that the callback URL changed in your application.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clientId Deletes an OAuth Client registered with Linode. The Client ID and Client secret will no longer be accepted by [login.linode.com](https://login.linode.com), and all tokens issued to this client will be invalidated (meaning that if your application was using a token, it will no longer work).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clientId Resets the OAuth Client secret for a client you own, and returns the OAuth Client with the plaintext secret. This secret is not supposed to be publicly known or disclosed anywhere. This can be used to generate a new secret in case the one you have has been leaked, or to get a new secret if you lost the original. The old secret is expired immediately, and logins to your client with the old secret will fail.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + clientId - - Returns the PNG thumbnail for this OAuth Client. This is a publicly viewable endpoint, and can be accessed without authentication. + Returns the PNG thumbnail for this OAuth client. This is a publicly viewable operation, and you can access it without authentication. - + + clientId - - Upload a thumbnail for a client you own. You must upload a PNG image file that will be returned when the thumbnail is retrieved. This image will be publicly viewable. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Upload a thumbnail for a client you own. You need to upload a PNG image file that the Linode API returns when the thumbnail is retrieved. This image is publicly viewable. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -214,6 +230,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The OAuth Client ID to look up. (example: {{clientId}}) + integer @@ -230,13 +251,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns information about a single OAuth client.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -250,19 +271,23 @@ secret, status, thumbnail_url FROM linode.account.oauth_clients +WHERE clientId = '{{ clientId }}' -- required ; ```
- + Returns a paginated list of OAuth Clients registered to your Account. OAuth Clients allow users to log into applications you write or host using their Linode Account, and may allow them to grant some level of access to their Linodes or other entities to your application.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +label, +public, +redirect_uri, +secret, +status, +thumbnail_url FROM linode.account.oauth_clients WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -275,21 +300,21 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Creates an OAuth Client, which can be used to allow users (using their Linode account) to log in to your own application, and optionally grant your application some amount of access to their Linodes or other entities.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.account.oauth_clients ( -data__label, -data__public, -data__redirect_uri +label, +public, +redirect_uri ) SELECT '{{ label }}' /* required */, @@ -308,27 +333,24 @@ thumbnail_url
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: oauth_clients props: - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ The name of this application. This will be presented to users when they are asked to grant it access to their Account. - - name: public - value: boolean - description: > + value: {{ public }} + description: | __Filterable__ If this is a public or private OAuth Client. Public clients have a slightly different authentication workflow than private clients. See the [OAuth spec](https://oauth.net/2/) for more details. - default: false - name: redirect_uri - value: string - description: > + value: "{{ redirect_uri }}" + description: | The location a successful log in from [login.linode.com](https://login.linode.com) should be redirected to for this client. The receiver of this redirect should be ready to accept an OAuth exchange code and finish the OAuth exchange. - -``` +`} +
@@ -336,21 +358,23 @@ thumbnail_url ## `REPLACE` examples - + Update information about an OAuth Client on your Account. This can be especially useful to update the `redirect_uri` of your client in the event that the callback URL changed in your application.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.account.oauth_clients SET -data__label = '{{ label }}', -data__public = {{ public }}, -data__redirect_uri = '{{ redirect_uri }}' +label = '{{ label }}', +public = {{ public }}, +redirect_uri = '{{ redirect_uri }}' +WHERE +clientId = '{{ clientId }}' --required RETURNING id, label, @@ -367,17 +391,18 @@ thumbnail_url; ## `DELETE` examples - + Deletes an OAuth Client registered with Linode. The Client ID and Client secret will no longer be accepted by [login.linode.com](https://login.linode.com), and all tokens issued to this client will be invalidated (meaning that if your application was using a token, it will no longer work).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.account.oauth_clients +WHERE clientId = '{{ clientId }}' --required ; ```
@@ -387,40 +412,40 @@ DELETE FROM linode.account.oauth_clients ## Lifecycle Methods - + Resets the OAuth Client secret for a client you own, and returns the OAuth Client with the plaintext secret. This secret is not supposed to be publicly known or disclosed anywhere. This can be used to generate a new secret in case the one you have has been leaked, or to get a new secret if you lost the original. The old secret is expired immediately, and logins to your client with the old secret will fail.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.oauth_clients.post_reset_client_secret - +EXEC linode.account.oauth_clients.reset_secret +@clientId='{{ clientId }}' --required ; ```
- + -Returns the PNG thumbnail for this OAuth Client. This is a publicly viewable endpoint, and can be accessed without authentication. +Returns the PNG thumbnail for this OAuth client. This is a publicly viewable operation, and you can access it without authentication. ```sql -EXEC linode.account.oauth_clients.get_client_thumbnail - +EXEC linode.account.oauth_clients.get_thumbnail +@clientId='{{ clientId }}' --required ; ``` - + -Upload a thumbnail for a client you own. You must upload a PNG image file that will be returned when the thumbnail is retrieved. This image will be publicly viewable. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Upload a thumbnail for a client you own. You need to upload a PNG image file that the Linode API returns when the thumbnail is retrieved. This image is publicly viewable. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.oauth_clients.put_client_thumbnail - +EXEC linode.account.oauth_clients.update_thumbnail +@clientId='{{ clientId }}' --required ; ```
diff --git a/website/docs/services/account/payment_methods/index.md b/website/docs/services/account/payment_methods/index.md index fc75c97..b842546 100644 --- a/website/docs/services/account/payment_methods/index.md +++ b/website/docs/services/account/payment_methods/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a payment_methods resource ## Overview - +
Namepayment_methods
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a payment_methods resource The following fields are returned by `SELECT` queries: - + Returns a Payment Method Object. @@ -63,8 +64,8 @@ Returns a Payment Method Object. - - (x-linode-cli-format: json) + object + Credit card information. (x-linode-cli-format: json, title: Credit card, x-linode-ref-name: Credit Card) @@ -74,12 +75,12 @@ Returns a Payment Method Object. string - The type of Payment Method. (example: credit_card) + The type of Payment Method. (credit_card, google_pay, paypal) (example: credit_card) - + Returns a paginated list of Payment Method objects. @@ -93,24 +94,29 @@ Returns a paginated list of Payment Method objects. - - array - + + integer + The unique ID of this Payment Method. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ When the Payment Method was added to the Account. (example: 2018-01-15T00:01:01) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + + (x-linode-cli-format: json) - - integer - __Read-only__ The total number of results. + + boolean + Whether this Payment Method is the default method for automatically processing service charges. + + + + string + The type of Payment Method. (credit_card, google_pay, paypal) (example: credit_card) @@ -133,37 +139,37 @@ The following methods are available for this resource: - + - + paymentMethodId View the details of the specified Payment Method.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Returns a paginated list of Payment Methods for this Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__type, data__data, data__is_default + type, data, is_default Adds a Payment Method to your Account with the option to set it as the default method.

- Adding a default Payment Method removes the default status from any other Payment Method.

- An Account can have up to 6 active Payment Methods.

- Up to 60 Payment Methods can be added each day.

- Prior to adding a Payment Method, ensure that your billing address information is up-to-date with a valid `zip` by running the [Update your account](https://techdocs.akamai.com/linode-api/reference/put-account) operation.

- A `payment_method_add` event is generated when a payment is successfully submitted.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- Child account users can't run this operation. These users don't have access to billing-related operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + paymentMethodId Deactivate the specified Payment Method.

The default Payment Method can not be deleted. To add a new default Payment Method, run the [Add a payment method](https://techdocs.akamai.com/linode-api/reference/post-payment-method) operation. To designate an existing Payment Method as the default method, run the [Set a default payment method](https://techdocs.akamai.com/linode-api/reference/post-make-payment-method-default) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + paymentMethodId Make the specified Payment Method the default method for automatically processing payments. Removes the default status from any other Payment Method.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- Child account users can't run this operation. These users don't have access to billing-related operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -183,6 +189,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Payment Method to make default. + integer @@ -199,13 +210,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + View the details of the specified Payment Method.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -217,19 +228,21 @@ data, is_default, type FROM linode.account.payment_methods +WHERE paymentMethodId = '{{ paymentMethodId }}' -- required ; ```
- + Returns a paginated list of Payment Methods for this Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT +id, +created, data, -page, -pages, -results +is_default, +type FROM linode.account.payment_methods WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -242,55 +255,57 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Adds a Payment Method to your Account with the option to set it as the default method.

- Adding a default Payment Method removes the default status from any other Payment Method.

- An Account can have up to 6 active Payment Methods.

- Up to 60 Payment Methods can be added each day.

- Prior to adding a Payment Method, ensure that your billing address information is up-to-date with a valid `zip` by running the [Update your account](https://techdocs.akamai.com/linode-api/reference/put-account) operation.

- A `payment_method_add` event is generated when a payment is successfully submitted.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- Child account users can't run this operation. These users don't have access to billing-related operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.account.payment_methods ( -data__data, -data__is_default, -data__type +data, +is_default, +type ) SELECT '{{ data }}' /* required */, {{ is_default }} /* required */, '{{ type }}' /* required */ +RETURNING +message ; ```
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: payment_methods props: - name: data - value: object - description: > + description: | An object representing the credit card information you have on file with Linode to make Payments against your Account. - + value: + card_number: "{{ card_number }}" + cvv: "{{ cvv }}" + expiry_month: {{ expiry_month }} + expiry_year: {{ expiry_year }} - name: is_default - value: boolean - description: > + value: {{ is_default }} + description: | Whether this Payment Method is the default method for automatically processing service charges. - - name: type - value: string - description: > + value: "{{ type }}" + description: | The type of Payment Method. - -Alternative Payment Methods including Google Pay and PayPal can be added using the Cloud Manager. See the [Manage Payment Methods](https://www.linode.com/docs/products/platform/billing/guides/payment-methods/) guide -for details and instructions. - + Alternative Payment Methods including Google Pay and PayPal can be added using the Cloud Manager. See the [Manage Payment Methods](https://www.linode.com/docs/products/platform/billing/guides/payment-methods/) guide + for details and instructions. valid_values: ['credit_card'] -``` +`} +
@@ -298,17 +313,18 @@ for details and instructions. ## `DELETE` examples - + Deactivate the specified Payment Method.

The default Payment Method can not be deleted. To add a new default Payment Method, run the [Add a payment method](https://techdocs.akamai.com/linode-api/reference/post-payment-method) operation. To designate an existing Payment Method as the default method, run the [Set a default payment method](https://techdocs.akamai.com/linode-api/reference/post-make-payment-method-default) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.account.payment_methods +WHERE paymentMethodId = '{{ paymentMethodId }}' --required ; ```
@@ -318,18 +334,18 @@ DELETE FROM linode.account.payment_methods ## Lifecycle Methods - + Make the specified Payment Method the default method for automatically processing payments. Removes the default status from any other Payment Method.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- Child account users can't run this operation. These users don't have access to billing-related operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.payment_methods.post_make_payment_method_default - +EXEC linode.account.payment_methods.make_default +@paymentMethodId='{{ paymentMethodId }}' --required ; ```
diff --git a/website/docs/services/account/payments/index.md b/website/docs/services/account/payments/index.md index aafb599..9109481 100644 --- a/website/docs/services/account/payments/index.md +++ b/website/docs/services/account/payments/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a payments resource. ## Overview - +
Namepayments
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a payments resource. The following fields are returned by `SELECT` queries: - + A Payment object. @@ -54,24 +55,24 @@ A Payment object. integer - __Read-only__ The unique ID of the Payment. + __Read-only__ The unique ID of the payment. string (date-time) - __Read-only__ When the Payment was made. (example: 2018-01-15T00:01:01) + __Filterable__, __Read-only__ When the payment was made. (example: 2018-01-15T00:01:01) integer - __Read-only__ The amount, in US dollars, of the Payment. (example: 120.50) + __Filterable__, __Read-only__ The amount, in US dollars, of the payment. (example: 120.50) - + -Returns a paginated list of Payment objects. +Returns a paginated list of payment objects. @@ -83,24 +84,19 @@ Returns a paginated list of Payment objects. - - - - - - + - + - - - + + + - + - +
array
integer__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).__Read-only__ The unique ID of the payment.
integer__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).string (date-time)__Filterable__, __Read-only__ When the payment was made. (example: 2018-01-15T00:01:01)
integer__Read-only__ The total number of results.__Filterable__, __Read-only__ The amount, in US dollars, of the payment. (example: 120.50)
@@ -123,42 +119,42 @@ The following methods are available for this resource: - + - + paymentId Returns information about a specific Payment.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - page, page_size - Returns a paginated list of Payments made on this Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + X-Filter, page, page_size + Returns a paginated list of payments made on this Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__card_number, data__expiry_month, data__expiry_year, data__cvv + card_number, expiry_month, expiry_year, cvv __Deprecated__ Please run [Add a payment method](https://techdocs.akamai.com/linode-api/reference/post-payment-method).

Adds a credit card Payment Method to your account and sets it as the default method. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - Makes a Payment to your Account.

- The requested amount is charged to the default Payment Method if no `payment_method_id` is specified.

- A `payment_submitted` event is generated when a payment is successfully submitted.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- Child account users can't run this operation. These users don't have access to billing-related operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Makes a payment to your account.

- The requested amount is charged to the default payment method if no `payment_method_id` is specified.

- A `payment_submitted` event is generated when a payment is successfully submitted.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- Child account users can't run this operation. These users don't have access to billing-related operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + cancel_url, redirect_url, usd __Deprecated__ This operation is disabled and no longer accessible. PayPal can be designated as a Payment Method for automated payments using the Cloud Manager. See [Manage Payment Methods](https://www.linode.com/docs/products/platform/billing/guides/payment-methods/). __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + payer_id, payment_id @@ -180,6 +176,16 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Payment to look up. + + + + + Specifies a JSON object to filter down the results. See [Filtering and sorting](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) for details. (example: {{X-Filter}}) + integer @@ -196,13 +202,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns information about a specific Payment.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -212,21 +218,22 @@ id, date, usd FROM linode.account.payments +WHERE paymentId = '{{ paymentId }}' -- required ; ```
- + -Returns a paginated list of Payments made on this Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of payments made on this Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +date, +usd FROM linode.account.payments -WHERE page = '{{ page }}' +WHERE X-Filter = '{{ X-Filter }}' +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` @@ -237,65 +244,61 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + __Deprecated__ Please run [Add a payment method](https://techdocs.akamai.com/linode-api/reference/post-payment-method).

Adds a credit card Payment Method to your account and sets it as the default method. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.account.payments ( -data__card_number, -data__cvv, -data__expiry_month, -data__expiry_year +card_number, +cvv, +expiry_month, +expiry_year ) SELECT '{{ card_number }}' /* required */, '{{ cvv }}' /* required */, {{ expiry_month }} /* required */, {{ expiry_year }} /* required */ +RETURNING +message ; ```
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: payments props: - name: card_number - value: string - description: > - Your credit card number. No spaces or hyphens (`-`) allowed. - + value: "{{ card_number }}" + description: | + Your credit card number. No spaces or hyphens (\`-\`) allowed. - name: cvv - value: string - description: > + value: "{{ cvv }}" + description: | CVV (Card Verification Value) of the credit card, typically found on the back of the card. - - name: expiry_month - value: integer - description: > + value: {{ expiry_month }} + description: | A value from 1-12 representing the expiration month of your credit card. - - - 1 = January - - 2 = February - - 3 = March - - Etc. - + - 1 = January + - 2 = February + - 3 = March + - Etc. - name: expiry_year - value: integer - description: > + value: {{ expiry_year }} + description: | A four-digit integer representing the expiration year of your credit card. + The combination of \`expiry_month\` and \`expiry_year\` must result in a month/year combination of the current month or in the future. An expiration date set in the past is invalid. +`} -The combination of `expiry_month` and `expiry_year` must result in a month/year combination of the current month or in the future. An expiration date set in the past is invalid. - -```
@@ -303,19 +306,19 @@ The combination of `expiry_month` and `expiry_year` must result in a month/year ## Lifecycle Methods - + -Makes a Payment to your Account.

- The requested amount is charged to the default Payment Method if no `payment_method_id` is specified.

- A `payment_submitted` event is generated when a payment is successfully submitted.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- Child account users can't run this operation. These users don't have access to billing-related operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Makes a payment to your account.

- The requested amount is charged to the default payment method if no `payment_method_id` is specified.

- A `payment_submitted` event is generated when a payment is successfully submitted.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- Child account users can't run this operation. These users don't have access to billing-related operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.payments.post_payment +EXEC linode.account.payments.make_payment @@json= '{ "payment_method_id": {{ payment_method_id }}, @@ -324,12 +327,12 @@ EXEC linode.account.payments.post_payment ; ```
- + __Deprecated__ This operation is disabled and no longer accessible. PayPal can be designated as a Payment Method for automated payments using the Cloud Manager. See [Manage Payment Methods](https://www.linode.com/docs/products/platform/billing/guides/payment-methods/). __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.payments.post_pay_pal_payment +EXEC linode.account.payments.stage_paypal_payment @@json= '{ "cancel_url": "{{ cancel_url }}", @@ -339,12 +342,12 @@ EXEC linode.account.payments.post_pay_pal_payment ; ```
- + __Deprecated__ This operation is disabled and no longer accessible. PayPal can be designated as a Payment Method for automated payments using the Cloud Manager. See [Manage Payment Methods](https://www.linode.com/docs/products/platform/billing/guides/payment-methods/). __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.payments.post_execute_pay_pal_payment +EXEC linode.account.payments.execute_paypal_payment @@json= '{ "payer_id": "{{ payer_id }}", diff --git a/website/docs/services/account/promo_credits/index.md b/website/docs/services/account/promo_credits/index.md index a86e5a6..9743f63 100644 --- a/website/docs/services/account/promo_credits/index.md +++ b/website/docs/services/account/promo_credits/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a promo_credits resource. ## Overview - +
Namepromo_credits
Name
TypeResource
Id
@@ -50,9 +51,9 @@ The following methods are available for this resource: - + - data__promo_code + promo_code Adds an expiring Promo Credit to your account. The following restrictions apply:

- Your account needs to be less than 90 days old.

- You can't already have a Promo Credit on your account.

- The user making the request needs to be unrestricted. You can run the [Update a user](https://techdocs.akamai.com/linode-api/reference/put-user) operation to change a user's restricted status.

- The `promo_code` needs to be valid and unexpired.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- Child account users can't run this operation. These users don't have access to billing-related operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -78,19 +79,19 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `INSERT` examples - + Adds an expiring Promo Credit to your account. The following restrictions apply:

- Your account needs to be less than 90 days old.

- You can't already have a Promo Credit on your account.

- The user making the request needs to be unrestricted. You can run the [Update a user](https://techdocs.akamai.com/linode-api/reference/put-user) operation to change a user's restricted status.

- The `promo_code` needs to be valid and unexpired.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- Child account users can't run this operation. These users don't have access to billing-related operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.account.promo_credits ( -data__promo_code +promo_code ) SELECT '{{ promo_code }}' /* required */ @@ -108,15 +109,14 @@ this_month_credit_remaining
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: promo_credits props: - name: promo_code - value: string - description: > + value: "{{ promo_code }}" + description: | The Promo Code. - -``` +`} +
diff --git a/website/docs/services/account/service_transfers/index.md b/website/docs/services/account/service_transfers/index.md index 40b4fb0..b82e724 100644 --- a/website/docs/services/account/service_transfers/index.md +++ b/website/docs/services/account/service_transfers/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a service_transfers resour ## Overview - +
Nameservice_transfers
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a service_transfers resour The following fields are returned by `SELECT` queries: - + Returns a Service Transfer object containing the details of the transfer for the specified token. @@ -74,7 +75,7 @@ Returns a Service Transfer object containing the details of the transfer for the string - __Filterable__ The status of the transfer request. `accepted`: The transfer has been accepted by another user and is currently in progress. Transfers can take up to 3 hours to complete. `canceled`: The transfer has been canceled by the sender. `completed`: The transfer has completed successfully. `failed`: The transfer has failed after initiation. `pending`: The transfer is ready to be accepted. `stale`: The transfer has exceeded its expiration date. It can no longer be accepted or canceled. (example: pending) + __Filterable__ The status of the transfer request. `accepted`: The transfer has been accepted by another user and is currently in progress. Transfers can take up to 3 hours to complete. `canceled`: The transfer has been canceled by the sender. `completed`: The transfer has completed successfully. `failed`: The transfer has failed after initiation. `pending`: The transfer is ready to be accepted. `stale`: The transfer has exceeded its expiration date. It can no longer be accepted or canceled. (accepted, canceled, completed, failed, pending, stale) (example: pending) @@ -89,7 +90,7 @@ Returns a Service Transfer object containing the details of the transfer for the - + Returns a paginated list of Service Transfer objects containing the details of all transfers that have been created and accepted by this account. @@ -103,24 +104,39 @@ Returns a paginated list of Service Transfer objects containing the details of a - - array - + + string (date-time) + When this transfer was created. (example: 2021-02-11T16:37:03) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + A collection of the services to include in this transfer request, separated by type. - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + When this transfer expires. Transfers will automatically expire 24 hours after creation. (example: 2021-02-12T16:37:03) - - integer - __Read-only__ The total number of results. + + boolean + __Filterable__ If the requesting account created this transfer. + + + + string + __Filterable__ The status of the transfer request. `accepted`: The transfer has been accepted by another user and is currently in progress. Transfers can take up to 3 hours to complete. `canceled`: The transfer has been canceled by the sender. `completed`: The transfer has completed successfully. `failed`: The transfer has failed after initiation. `pending`: The transfer is ready to be accepted. `stale`: The transfer has exceeded its expiration date. It can no longer be accepted or canceled. (accepted, canceled, completed, failed, pending, stale) (example: pending) + + + + string (uuid) + The token used to identify and accept or cancel this transfer. (example: 123E4567-E89B-12D3-A456-426614174000) + + + + string (date-time) + When this transfer was last updated. (example: 2021-02-11T16:37:03) @@ -143,37 +159,37 @@ The following methods are available for this resource: - + - + token Returns the details of the Service Transfer for the provided token.

While a transfer is pending, any unrestricted user _of any account_ can access this operation. After a transfer has been accepted, it can only be viewed by unrestricted users of the accounts that created and accepted the transfer. If canceled or expired, only unrestricted users of the account that created the transfer can view it.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Returns a collection of all created and accepted Service Transfers for this account, regardless of the user that created or accepted the transfer.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__entities + entities Creates a transfer request for the specified services. A request can contain any of the specified service types and any number of each service type. At this time, only Linodes can be transferred.

When created successfully, a confirmation email is sent to the account that created this transfer containing a transfer token and instructions on completing the transfer.

When a transfer is [accepted](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer), the requested services are moved to the receiving account. Linode services will not experience interruptions due to the transfer process. Backups for Linodes are transferred as well.

DNS records that are associated with requested services will not be transferred or updated. Please ensure that associated DNS records have been updated or communicated to the recipient prior to the transfer.

A transfer can take up to three hours to complete once accepted. When a transfer is completed, billing for transferred services ends for the sending account and begins for the receiving account.

This operation can only be accessed by the unrestricted users of an account.

There are several conditions that you need to meet to successfully create a transfer request:

1. The account creating the transfer can't have a past due balance or active Terms of Service violation.

1. The service needs to be owned by the account that is creating the transfer.

1. The service can't be assigned to another Service Transfer that is pending or that's been accepted and is incomplete.

1. Linodes can't:

- be assigned to a NodeBalancer, Firewall, VLAN, VPC, or Managed Service.

- have any attached Block Storage Volumes.

- have any shared IP addresses.

- have any assigned /32, /56, /64, or /116 IPv6 ranges.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + token Cancels the Service Transfer for the provided token. Once canceled, a transfer cannot be accepted or otherwise acted on in any way. If canceled in error, the transfer must be [created](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) again.

When canceled, an email notification for the cancellation is sent to the account that created this transfer. Transfers can not be canceled if they are expired or have been accepted.

This operation can only be accessed by the unrestricted users of the account that created this transfer.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + token Accept a Service Transfer for the provided token to receive the services included in the transfer to your account. At this time, only Linodes can be transferred.

When accepted, email confirmations are sent to the accounts that created and accepted the transfer. A transfer can take up to three hours to complete once accepted. Once a transfer is completed, billing for transferred services ends for the sending account and begins for the receiving account.

This operation can only be accessed by the unrestricted users of the account that receives the transfer. Users of the same account that created a transfer cannot accept the transfer.

There are several conditions that must be met in order to accept a transfer request:

1. Only transfers with a `pending` status can be accepted.

1. The account accepting the transfer must have a registered payment method and must not have a past due balance or other account limitations for the services to be transferred.

1. Both the account that created the transfer and the account that is accepting the transfer must not have any active Terms of Service violations.

1. The service must still be owned by the account that created the transfer.

1. Linodes must not:

- be assigned to a NodeBalancer, Firewall, VLAN, or Managed Service.

- have any attached Block Storage Volumes.

- have any shared IP addresses.

- have any assigned /56, /64, or /116 IPv6 ranges.

Any and all of the above conditions must be cured and maintained by the relevant account prior to the transfer's expiration to allow the transfer to be accepted by the receiving account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -193,6 +209,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string (uuid) + The UUID of the Service Transfer. (example: {{token}}) + integer @@ -209,13 +230,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns the details of the Service Transfer for the provided token.

While a transfer is pending, any unrestricted user _of any account_ can access this operation. After a transfer has been accepted, it can only be viewed by unrestricted users of the accounts that created and accepted the transfer. If canceled or expired, only unrestricted users of the account that created the transfer can view it.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -229,19 +250,23 @@ status, token, updated FROM linode.account.service_transfers +WHERE token = '{{ token }}' -- required ; ```
- + Returns a collection of all created and accepted Service Transfers for this account, regardless of the user that created or accepted the transfer.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +created, +entities, +expiry, +is_sender, +status, +token, +updated FROM linode.account.service_transfers WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -254,19 +279,19 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Creates a transfer request for the specified services. A request can contain any of the specified service types and any number of each service type. At this time, only Linodes can be transferred.

When created successfully, a confirmation email is sent to the account that created this transfer containing a transfer token and instructions on completing the transfer.

When a transfer is [accepted](https://techdocs.akamai.com/linode-api/reference/post-accept-service-transfer), the requested services are moved to the receiving account. Linode services will not experience interruptions due to the transfer process. Backups for Linodes are transferred as well.

DNS records that are associated with requested services will not be transferred or updated. Please ensure that associated DNS records have been updated or communicated to the recipient prior to the transfer.

A transfer can take up to three hours to complete once accepted. When a transfer is completed, billing for transferred services ends for the sending account and begins for the receiving account.

This operation can only be accessed by the unrestricted users of an account.

There are several conditions that you need to meet to successfully create a transfer request:

1. The account creating the transfer can't have a past due balance or active Terms of Service violation.

1. The service needs to be owned by the account that is creating the transfer.

1. The service can't be assigned to another Service Transfer that is pending or that's been accepted and is incomplete.

1. Linodes can't:

- be assigned to a NodeBalancer, Firewall, VLAN, VPC, or Managed Service.

- have any attached Block Storage Volumes.

- have any shared IP addresses.

- have any assigned /32, /56, /64, or /116 IPv6 ranges.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.account.service_transfers ( -data__entities +entities ) SELECT '{{ entities }}' /* required */ @@ -283,16 +308,17 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: service_transfers props: - name: entities - value: object - description: > + description: | A collection of the services to include in this transfer request, separated by type. - -``` + value: + linodes: + - {{ linodes }} +`} +
@@ -300,17 +326,18 @@ updated ## `DELETE` examples - + Cancels the Service Transfer for the provided token. Once canceled, a transfer cannot be accepted or otherwise acted on in any way. If canceled in error, the transfer must be [created](https://techdocs.akamai.com/linode-api/reference/post-service-transfer) again.

When canceled, an email notification for the cancellation is sent to the account that created this transfer. Transfers can not be canceled if they are expired or have been accepted.

This operation can only be accessed by the unrestricted users of the account that created this transfer.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.account.service_transfers +WHERE token = '{{ token }}' --required ; ```
@@ -320,18 +347,18 @@ DELETE FROM linode.account.service_transfers ## Lifecycle Methods - + Accept a Service Transfer for the provided token to receive the services included in the transfer to your account. At this time, only Linodes can be transferred.

When accepted, email confirmations are sent to the accounts that created and accepted the transfer. A transfer can take up to three hours to complete once accepted. Once a transfer is completed, billing for transferred services ends for the sending account and begins for the receiving account.

This operation can only be accessed by the unrestricted users of the account that receives the transfer. Users of the same account that created a transfer cannot accept the transfer.

There are several conditions that must be met in order to accept a transfer request:

1. Only transfers with a `pending` status can be accepted.

1. The account accepting the transfer must have a registered payment method and must not have a past due balance or other account limitations for the services to be transferred.

1. Both the account that created the transfer and the account that is accepting the transfer must not have any active Terms of Service violations.

1. The service must still be owned by the account that created the transfer.

1. Linodes must not:

- be assigned to a NodeBalancer, Firewall, VLAN, or Managed Service.

- have any attached Block Storage Volumes.

- have any shared IP addresses.

- have any assigned /56, /64, or /116 IPv6 ranges.

Any and all of the above conditions must be cured and maintained by the relevant account prior to the transfer's expiration to allow the transfer to be accepted by the receiving account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.service_transfers.post_accept_service_transfer - +EXEC linode.account.service_transfers.accept +@token='{{ token }}' --required ; ```
diff --git a/website/docs/services/account/settings/index.md b/website/docs/services/account/settings/index.md index 8219be8..bcd069f 100644 --- a/website/docs/services/account/settings/index.md +++ b/website/docs/services/account/settings/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a settings resource. ## Overview - +
Namesettings
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a settings resource. The following fields are returned by `SELECT` queries: - + Returns a single Account settings object. @@ -58,13 +59,18 @@ Returns a single Account settings object. string - __Beta__ Defines if new Linodes can use legacy configuration interfaces: - `legacy_config_only`. All new Linodes need to use legacy configuration interfaces. Prevously created Linodes with Linode Interfaces can still exist. Linodes using legacy configuration interfaces can't be upgraded to use Linode Interfaces. - `legacy_config_default_but_linode_allowed`. New Linodes can use legacy configuration interfaces or Linode Interfaces, depending on the `interface_generation` setting specified when creating the Linode. By default, new Linodes use legacy configuration interfaces unless otherwise specified. Linodes that use legacy configuration interfaces can upgrade to Linode Interfaces. This is the default setting for existing accounts. - `linode_default_but_legacy_config_allowed`. New Linodes can use legacy configuration interfaces or Linode Interfaces, depending on the `interface_generation` setting specified when creating the Linode. By default, new Linodes use Linode Interfaces unless otherwise specified. Linodes that use legacy configuration interfaces can upgrade to Linode interfaces. This is the default setting for new accounts. - `linode_only`. All new Linodes need to use Linode Interfaces. Prevously created Linodes with legacy configuration profile interfaces can still exist if they were created under a previous setting. Linodes using legacy configuration interfaces can be upgraded to Linode Interfaces. (example: linode_only) + __Beta__ Defines if new Linodes can use legacy configuration interfaces: - `legacy_config_only`. All new Linodes need to use legacy configuration interfaces. Prevously created Linodes with Linode Interfaces can still exist. Linodes using legacy configuration interfaces can't be upgraded to use Linode Interfaces. - `legacy_config_default_but_linode_allowed`. New Linodes can use legacy configuration interfaces or Linode Interfaces, depending on the `interface_generation` setting specified when creating the Linode. By default, new Linodes use legacy configuration interfaces unless otherwise specified. Linodes that use legacy configuration interfaces can upgrade to Linode Interfaces. This is the default setting for existing accounts. - `linode_default_but_legacy_config_allowed`. New Linodes can use legacy configuration interfaces or Linode Interfaces, depending on the `interface_generation` setting specified when creating the Linode. By default, new Linodes use Linode Interfaces unless otherwise specified. Linodes that use legacy configuration interfaces can upgrade to Linode interfaces. This is the default setting for new accounts. - `linode_only`. All new Linodes need to use Linode Interfaces. Prevously created Linodes with legacy configuration profile interfaces can still exist if they were created under a previous setting. Linodes using legacy configuration interfaces can be upgraded to Linode Interfaces. (legacy_config_only, legacy_config_default_but_linode_allowed, linode_default_but_legacy_config_allowed, linode_only) (example: linode_only) string __Read-only__ The Longview Pro tier you are currently subscribed to. The value must be a [Longview subscription](https://techdocs.akamai.com/linode-api/reference/get-longview-subscriptions) ID or `null` for Longview Free. (example: longview-3) + + + string + __Beta__ Defines the default maintenance policy for new Linodes created on this account. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details. (linode/migrate, linode/power_off_on) (example: linode/migrate) + boolean @@ -78,7 +84,7 @@ Returns a single Account settings object. string - __Read-only__ A string describing the status of this account's Object Storage service enrollment. (default: disabled, example: active) + __Read-only__ A string describing the status of this account's Object Storage service enrollment. (disabled, suspended, active) (default: disabled, example: active) @@ -101,21 +107,21 @@ The following methods are available for this resource: - + Returns information related to your Account settings: Managed service subscription, interface settings for new Linodes, Longview subscription, and Network Helper.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + Updates your account settings. For a Longview subscription plan, see [Update a Longview plan](https://techdocs.akamai.com/linode-api/reference/put-longview-plan).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + @@ -143,12 +149,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns information related to your Account settings: Managed service subscription, interface settings for new Linodes, Longview subscription, and Network Helper.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -157,6 +163,7 @@ SELECT backups_enabled, interfaces_for_new_linodes, longview_subscription, +maintenance_policy, managed, network_helper, object_storage @@ -170,25 +177,27 @@ FROM linode.account.settings ## `REPLACE` examples - + Updates your account settings. For a Longview subscription plan, see [Update a Longview plan](https://techdocs.akamai.com/linode-api/reference/put-longview-plan).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.account.settings SET -data__backups_enabled = {{ backups_enabled }}, -data__interfaces_for_new_linodes = '{{ interfaces_for_new_linodes }}', -data__network_helper = {{ network_helper }} +backups_enabled = {{ backups_enabled }}, +interfaces_for_new_linodes = '{{ interfaces_for_new_linodes }}', +maintenance_policy = '{{ maintenance_policy }}', +network_helper = {{ network_helper }} RETURNING backups_enabled, interfaces_for_new_linodes, longview_subscription, +maintenance_policy, managed, network_helper, object_storage; @@ -200,17 +209,17 @@ object_storage; ## Lifecycle Methods - + Enables Linode Managed for the entire account and sends a welcome email to the account's associated email address. Linode Managed can monitor any service or software stack reachable over TCP or HTTP. See our [Linode Managed guide](https://www.linode.com/docs/guides/linode-managed/) to learn more.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.account.settings.post_enable_account_managed +EXEC linode.account.settings.enable_managed ; ``` diff --git a/website/docs/services/account/user_grants/index.md b/website/docs/services/account/user_grants/index.md index 5047812..2d903c4 100644 --- a/website/docs/services/account/user_grants/index.md +++ b/website/docs/services/account/user_grants/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a user_grants resource. ## Overview - +
Nameuser_grants
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a user_grants resource. The following fields are returned by `SELECT` queries: - + The User's grants. @@ -126,18 +127,18 @@ The following methods are available for this resource: - + + username - - Returns the full grants structure for an account username you specify. This includes all entities on the account, and the level of access this user has to each of them.

This doesn't apply to the account owner or the current authenticated user. You can run the [List grants](https://techdocs.akamai.com/linode-api/reference/get-profile-grants) operation to view those grants. However, this doesn't show the entities that they _don't_ have access to.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns the full grants structure for an account username you specify. This includes all entities on the account, and the level of access this user has to each of them.

This doesn't apply to the account owner or the current authenticated user. You can run the [List grants](https://techdocs.akamai.com/linode-api/reference/get-profile-grants) operation to view those grants. However, this doesn't show the entities that they _don't_ have access to.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management. __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + username - - Update the grants for a [restricted](https://techdocs.akamai.com/linode-api/reference/post-user) user. This can be used to give a user access to new entities or actions, or take access away. Omit a grant object from the request to keep its current setting.

> 📘
>
> - This operation can only be accessed by account users with _unrestricted_ access.
>
> - This operation only applies to _restricted_ users. An unrestricted user has access to everything and doesn't use grants.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- No child account user can modify the `account_access` grant for the child account parent user (proxy user).

- An unrestricted child account user can configure all other grants for the proxy user, with the `global` object.

- An unrestricted child account user can enable the `account_access` grant for other child account users. However, enabled child users are still subject to child user restrictions--they can't perform write operations for any billing or account information. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Update the grants for a [restricted](https://techdocs.akamai.com/linode-api/reference/post-user) user. This can be used to give a user access to new entities or actions, or take access away. Omit a grant object from the request to keep its current setting.

> 📘
>
> - This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.
>
> - This operation only applies to _restricted_ users. An unrestricted user has access to everything and doesn't use grants.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- No child account user can modify the `account_access` grant for the child account parent user (proxy user).

- An unrestricted child account user can configure all other grants for the proxy user, with the `global` object.

- An unrestricted child account user can enable the `account_access` grant for other child account users. However, enabled child users are still subject to child user restrictions--they can't perform write operations for any billing or account information. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -155,20 +156,25 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The username to look up. (example: {{username}}) + ## `SELECT` examples - + -Returns the full grants structure for an account username you specify. This includes all entities on the account, and the level of access this user has to each of them.

This doesn't apply to the account owner or the current authenticated user. You can run the [List grants](https://techdocs.akamai.com/linode-api/reference/get-profile-grants) operation to view those grants. However, this doesn't show the entities that they _don't_ have access to.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns the full grants structure for an account username you specify. This includes all entities on the account, and the level of access this user has to each of them.

This doesn't apply to the account owner or the current authenticated user. You can run the [List grants](https://techdocs.akamai.com/linode-api/reference/get-profile-grants) operation to view those grants. However, this doesn't show the entities that they _don't_ have access to.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management. __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -184,6 +190,7 @@ stackscript, volume, vpc FROM linode.account.user_grants +WHERE username = '{{ username }}' -- required ; ```
@@ -193,29 +200,31 @@ FROM linode.account.user_grants ## `REPLACE` examples - + -Update the grants for a [restricted](https://techdocs.akamai.com/linode-api/reference/post-user) user. This can be used to give a user access to new entities or actions, or take access away. Omit a grant object from the request to keep its current setting.

> 📘
>
> - This operation can only be accessed by account users with _unrestricted_ access.
>
> - This operation only applies to _restricted_ users. An unrestricted user has access to everything and doesn't use grants.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- No child account user can modify the `account_access` grant for the child account parent user (proxy user).

- An unrestricted child account user can configure all other grants for the proxy user, with the `global` object.

- An unrestricted child account user can enable the `account_access` grant for other child account users. However, enabled child users are still subject to child user restrictions--they can't perform write operations for any billing or account information. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Update the grants for a [restricted](https://techdocs.akamai.com/linode-api/reference/post-user) user. This can be used to give a user access to new entities or actions, or take access away. Omit a grant object from the request to keep its current setting.

> 📘
>
> - This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.
>
> - This operation only applies to _restricted_ users. An unrestricted user has access to everything and doesn't use grants.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- No child account user can modify the `account_access` grant for the child account parent user (proxy user).

- An unrestricted child account user can configure all other grants for the proxy user, with the `global` object.

- An unrestricted child account user can enable the `account_access` grant for other child account users. However, enabled child users are still subject to child user restrictions--they can't perform write operations for any billing or account information. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.account.user_grants SET -data__database = '{{ database }}', -data__domain = '{{ domain }}', -data__firewall = '{{ firewall }}', -data__global = '{{ global }}', -data__image = '{{ image }}', -data__linode = '{{ linode }}', -data__longview = '{{ longview }}', -data__nodebalancer = '{{ nodebalancer }}', -data__stackscript = '{{ stackscript }}', -data__volume = '{{ volume }}', -data__vpc = '{{ vpc }}' +database = '{{ database }}', +domain = '{{ domain }}', +firewall = '{{ firewall }}', +global = '{{ global }}', +image = '{{ image }}', +linode = '{{ linode }}', +longview = '{{ longview }}', +nodebalancer = '{{ nodebalancer }}', +stackscript = '{{ stackscript }}', +volume = '{{ volume }}', +vpc = '{{ vpc }}' +WHERE +username = '{{ username }}' --required RETURNING database, domain, diff --git a/website/docs/services/account/users/index.md b/website/docs/services/account/users/index.md index 97aed98..bebade4 100644 --- a/website/docs/services/account/users/index.md +++ b/website/docs/services/account/users/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a users resource. ## Overview - +
Nameusers
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a users resource. The following fields are returned by `SELECT` queries: - + The requested User object. @@ -54,7 +55,7 @@ The requested User object. - + A paginated list of users. @@ -68,24 +69,49 @@ A paginated list of users. - + + string (email) + This user's email address. Akamai uses this address for account management communications. (example: example_user@linode.com) + + + + object + __Read-only__ Details on this user's last login attempt. Returned as `null` if this user hasn't attempted a login since it was created. You can run the [List user logins](https://techdocs.akamai.com/linode-api/reference/get-account-logins) operation for additional login information. + + + + string (date-time) + __Read-only__ When this user's current password was created. You initially create a password during the account sign-up process, and you can update it using the [Reset Password](https://login.linode.com/forgot/password) webpage. Returned as `null` if this user doesn't have a password set. (example: 2018-01-01T01:01:01) + + + + boolean + If `true`, this user needs specific access granted to perform actions or access entities on your account. Run [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for details on how to configure grants for a restricted user. + + + array - + __Read-only__ A list of the labels for SSH keys added by this user. Users can add keys with the [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) operation. These keys are deployed when this user is included in the `authorized_users` field of the following requests: - [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) - [Rebuild a Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance) - [Create a disk](https://techdocs.akamai.com/linode-api/reference/post-add-linode-disk) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + boolean + __Read-only__ Whether this user has Two Factor Authentication (TFA) enabled. Run the [Create a two factor secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable) operation to enable TFA. - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Read-only__ If the user belongs to a [parent or child account](https://www.linode.com/docs/guides/parent-child-accounts/) relationship, this defines the user type in the respective account. Possible values include: - `parent`. This is a user in an Akamai partner account. Akamai partners have a contractual relationship with their end customers, to sell Akamai services. This user can either have full access (a parent account admin user) or limited access. Limited users don't have access to manage child accounts, but they can be granted this access by an admin user. - `child`. This is an Akamai partner's end customer user, in a child account. A child user can have either full or limited access. Full access lets the user manage other child users and the proxy user in a child account. - `proxy`. This is a user on a child account that gives parent account users access to that child account. A parent account user with the `child_account_access` grant can [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) from the parent account. The parent user can use this token to run API operations from the child account, as if they were a child user. - `default`. This applies to all regular, non-parent-child account users. (parent, child, proxy, default) (example: parent) - - integer - __Read-only__ The total number of results. + + string + __Filterable__ The name of this user. This user needs to use this value to log in. It may also display alongside actions this user performs, including events or public StackScripts. (example: example_user, pattern: ^[a-zA-Z0-9]((?![_-]{2,})[a-zA-Z0-9-_])+[a-zA-Z0-9]$) + + + + string (phone) + __Read-only__ The [verified](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify) phone number for this user profile. Returned as `null` if the user doesn't have a verified phone number. (example: +5555555555) @@ -108,39 +134,39 @@ The following methods are available for this resource: - + + username - - Returns information about a single user on your account.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns information about a single user on your account.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size - Returns a paginated list of all users on your account.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

A user can access all or part of an account based on their access status and grants:

- __Unrestricted access__. These users can access everything on an account.

- __Restricted access__. These users can only access entities or perform actions they've been given specific grants to.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a paginated list of all users on your account.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

A user can access all or part of an account based on their access status and grants:

- __Unrestricted access__. These users can access everything on an account.

- __Restricted access__. These users can only access entities or perform actions they've been given specific grants to.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__username, data__email + username, email - Creates a user on your account. You determine the new user's account access by setting it to restricted or unrestricted and by defining its grants. After completion, the API sends a confirmation message containing password creation and login instructions to the user's `email` address.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- A parent account user can create new parent account users.

- A child account can [update](https://techdocs.akamai.com/linode-api/reference/put-user) the child account parent user (proxy user) to `unrestricted`. This gives the proxy user access to create new child account users.

- A child account user can create new child account users.

- You can't create a proxy user. The proxy user in a child account is predefined when you initially provision the parent-child relationship.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Creates a user on your account. You determine the new user's account access by setting it to restricted or unrestricted and by defining its grants. After completion, the API sends a confirmation message containing password creation and login instructions to the user's `email` address.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- A parent account user can create new parent account users.

- A child account can [update](https://techdocs.akamai.com/linode-api/reference/put-user) the child account parent user (proxy user) to `unrestricted`. This gives the proxy user access to create new child account users.

- A child account user can create new child account users.

- You can't create a proxy user. The proxy user in a child account is predefined when you initially provision the parent-child relationship.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + username - - Update information about a user on your account, including its restricted status. When setting a user to `restricted`, the API sets no grants for it. You need to set grants so that user can access things on the account.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- You can't edit the `username` or `email` values for the child account parent user (proxy user). These are predefined for the proxy user when you initially provision the parent-child relationship. Only a proxy user's `restricted` status can be modified. This can only be done by an unrestricted child account user.

- A parent account using an unrestricted proxy user in a child account can modify the `username`, `email`, and `restricted` status for an existing child account user.

- A restricted account user--parent or child--can't change their user to `unrestricted`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Update information about a user on your account, including its restricted status. When setting a user to `restricted`, the API sets no grants for it. You need to set grants so that user can access things on the account.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- You can't edit the `username` or `email` values for the child account parent user (proxy user). These are predefined for the proxy user when you initially provision the parent-child relationship. Only a proxy user's `restricted` status can be modified. This can only be done by an unrestricted child account user.

- A parent account using an unrestricted proxy user in a child account can modify the `username`, `email`, and `restricted` status for an existing child account user.

- A restricted account user--parent or child--can't change their user to `unrestricted`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + username - - Deletes a user. The API immediately logs the user out and removes all of its `grants`.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- You can't delete a child account parent user (proxy user). The API returns a 403 error if you target a proxy user with this operation.

- A parent account using an unrestricted proxy user can use this operation to delete a child account user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Deletes a user. The API immediately logs the user out and removes all of its `grants`.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- You can't delete a child account parent user (proxy user). The API returns a 403 error if you target a proxy user with this operation.

- A parent account using an unrestricted proxy user can use this operation to delete a child account user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -158,6 +184,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The username to look up. (example: {{username}}) + integer @@ -174,33 +205,39 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Returns information about a single user on your account.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns information about a single user on your account.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT * FROM linode.account.users +WHERE username = '{{ username }}' -- required ; ```
- + -Returns a paginated list of all users on your account.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

A user can access all or part of an account based on their access status and grants:

- __Unrestricted access__. These users can access everything on an account.

- __Restricted access__. These users can only access entities or perform actions they've been given specific grants to.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of all users on your account.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

A user can access all or part of an account based on their access status and grants:

- __Unrestricted access__. These users can access everything on an account.

- __Restricted access__. These users can only access entities or perform actions they've been given specific grants to.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +email, +last_login, +password_created, +restricted, +ssh_keys, +tfa_enabled, +user_type, +username, +verified_phone_number FROM linode.account.users WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -213,21 +250,21 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + -Creates a user on your account. You determine the new user's account access by setting it to restricted or unrestricted and by defining its grants. After completion, the API sends a confirmation message containing password creation and login instructions to the user's `email` address.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- A parent account user can create new parent account users.

- A child account can [update](https://techdocs.akamai.com/linode-api/reference/put-user) the child account parent user (proxy user) to `unrestricted`. This gives the proxy user access to create new child account users.

- A child account user can create new child account users.

- You can't create a proxy user. The proxy user in a child account is predefined when you initially provision the parent-child relationship.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Creates a user on your account. You determine the new user's account access by setting it to restricted or unrestricted and by defining its grants. After completion, the API sends a confirmation message containing password creation and login instructions to the user's `email` address.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- A parent account user can create new parent account users.

- A child account can [update](https://techdocs.akamai.com/linode-api/reference/put-user) the child account parent user (proxy user) to `unrestricted`. This gives the proxy user access to create new child account users.

- A child account user can create new child account users.

- You can't create a proxy user. The proxy user in a child account is predefined when you initially provision the parent-child relationship.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.account.users ( -data__email, -data__restricted, -data__username +email, +restricted, +username ) SELECT '{{ email }}' /* required */, @@ -247,26 +284,23 @@ verified_phone_number
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: users props: - name: email - value: string - description: > + value: "{{ email }}" + description: | This user's email address. Akamai uses this address for account management communications. - - name: restricted - value: boolean - description: > - If `true`, this user needs specific access granted to perform actions or access entities on your account. Run [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for details on how to configure grants for a restricted user. - + value: {{ restricted }} + description: | + If \`true\`, this user needs specific access granted to perform actions or access entities on your account. Run [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for details on how to configure grants for a restricted user. - name: username - value: string - description: > + value: "{{ username }}" + description: | __Filterable__ The name of this user. This user needs to use this value to log in. It may also display alongside actions this user performs, including events or public StackScripts. - -``` +`} +
@@ -274,21 +308,23 @@ verified_phone_number ## `REPLACE` examples - + -Update information about a user on your account, including its restricted status. When setting a user to `restricted`, the API sets no grants for it. You need to set grants so that user can access things on the account.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- You can't edit the `username` or `email` values for the child account parent user (proxy user). These are predefined for the proxy user when you initially provision the parent-child relationship. Only a proxy user's `restricted` status can be modified. This can only be done by an unrestricted child account user.

- A parent account using an unrestricted proxy user in a child account can modify the `username`, `email`, and `restricted` status for an existing child account user.

- A restricted account user--parent or child--can't change their user to `unrestricted`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Update information about a user on your account, including its restricted status. When setting a user to `restricted`, the API sets no grants for it. You need to set grants so that user can access things on the account.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- You can't edit the `username` or `email` values for the child account parent user (proxy user). These are predefined for the proxy user when you initially provision the parent-child relationship. Only a proxy user's `restricted` status can be modified. This can only be done by an unrestricted child account user.

- A parent account using an unrestricted proxy user in a child account can modify the `username`, `email`, and `restricted` status for an existing child account user.

- A restricted account user--parent or child--can't change their user to `unrestricted`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.account.users SET -data__email = '{{ email }}', -data__restricted = {{ restricted }}, -data__username = '{{ username }}' +email = '{{ email }}', +restricted = {{ restricted }}, +username = '{{ username }}' +WHERE +username = '{{ username }}' --required RETURNING email, last_login, @@ -307,17 +343,18 @@ verified_phone_number; ## `DELETE` examples - + -Deletes a user. The API immediately logs the user out and removes all of its `grants`.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- You can't delete a child account parent user (proxy user). The API returns a 403 error if you target a proxy user with this operation.

- A parent account using an unrestricted proxy user can use this operation to delete a child account user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Deletes a user. The API immediately logs the user out and removes all of its `grants`.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

__Parent and child accounts__

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- You can't delete a child account parent user (proxy user). The API returns a 403 error if you target a proxy user with this operation.

- A parent account using an unrestricted proxy user can use this operation to delete a child account user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.account.users +WHERE username = '{{ username }}' --required ; ```
diff --git a/website/docs/services/betas/beta_programs/index.md b/website/docs/services/betas/beta_programs/index.md index 436a8d6..c1b215a 100644 --- a/website/docs/services/betas/beta_programs/index.md +++ b/website/docs/services/betas/beta_programs/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a beta_programs resource. ## Overview - +
Namebeta_programs
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a beta_programs resource. The following fields are returned by `SELECT` queries: - + Returns a paginated list of all available Beta Program objects. @@ -89,7 +90,7 @@ Returns a paginated list of all available Beta Program objects. - + Returns a paginated list of all available Beta Program objects. @@ -158,14 +159,14 @@ The following methods are available for this resource: - + - + betaId Display information about a Beta Program. This operation can be used to access inactive as well as active Beta Programs.

Only unrestricted Users can access this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + page, page_size @@ -187,6 +188,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Beta Program. (example: {{betaId}}) + integer @@ -203,13 +209,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Display information about a Beta Program. This operation can be used to access inactive as well as active Beta Programs.

Only unrestricted Users can access this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -223,10 +229,11 @@ label, more_info, started FROM linode.betas.beta_programs +WHERE betaId = '{{ betaId }}' -- required ; ```
- + Display all active Beta Programs.

Only unrestricted Users can access this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) diff --git a/website/docs/services/databases/engines/index.md b/website/docs/services/databases/engines/index.md index d9e2b15..b7e1f12 100644 --- a/website/docs/services/databases/engines/index.md +++ b/website/docs/services/databases/engines/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an engines resource. ## Overview - +
Nameengines
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an engines resource. The following fields are returned by `SELECT` queries: - + Returns information for a single Managed Databases engine type and version. @@ -69,7 +70,7 @@ Returns information for a single Managed Databases engine type and version. - + Returns a paginated list of all available Managed Databases engines and versions. @@ -118,14 +119,14 @@ The following methods are available for this resource: - + - + engineId page, page_size Display information for a single Managed Databases engine type and version. Run the [List Managed Databases engines](https://techdocs.akamai.com/linode-api/reference/get-databases-engines) operation and store the `id` for the applicable database engine.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + page, page_size @@ -147,6 +148,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Managed Database engine. (example: {{engineId}}) + integer @@ -163,13 +169,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Display information for a single Managed Databases engine type and version. Run the [List Managed Databases engines](https://techdocs.akamai.com/linode-api/reference/get-databases-engines) operation and store the `id` for the applicable database engine.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -179,12 +185,13 @@ id, engine, version FROM linode.databases.engines -WHERE page = '{{ page }}' +WHERE engineId = '{{ engineId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ```
- + Display all available Managed Databases engine types and versions. Use an engine's `id` to create a new Managed Databases instance.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) diff --git a/website/docs/services/databases/instances/index.md b/website/docs/services/databases/instances/index.md index 4d2786c..006cecc 100644 --- a/website/docs/services/databases/instances/index.md +++ b/website/docs/services/databases/instances/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an instances resource. ## Overview - +
Nameinstances
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an instances resource. The following fields are returned by `SELECT` queries: - + Returns a paginated list of all accessible Managed Databases on your account. @@ -63,7 +64,7 @@ Returns a paginated list of all accessible Managed Databases on your account. integer - The number of Linode instance nodes deployed to the Managed Database. - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes. - A `2` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. + The number of Linode instance nodes deployed to the Managed Database. - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes. - A `2` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. (1, 2, 3) @@ -78,7 +79,7 @@ Returns a paginated list of all accessible Managed Databases on your account. string - __Filterable__, __Read-only__ The Managed Database engine type. (example: mysql) + __Filterable__, __Read-only__ The Managed Database engine type. (mysql, postgresql) (example: mysql) @@ -88,7 +89,7 @@ Returns a paginated list of all accessible Managed Databases on your account. object - __Read-only__ The primary and secondary hosts for the Managed Database. These are assigned after provisioning is complete. + __Read-only__ The primary hostname and secondary read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database. @@ -102,8 +103,8 @@ Returns a paginated list of all accessible Managed Databases on your account. - object - __Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`. + string + __Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`. (opaque JSON object) @@ -113,7 +114,7 @@ Returns a paginated list of all accessible Managed Databases on your account. string - __Filterable__, __Read-only__ The back-end platform for relational databases used by the service. (example: rdbms-default) + __Filterable__, __Read-only__ The back-end platform for relational databases used by the service. (rdbms-legacy, rdbms-default) (example: rdbms-default) @@ -123,12 +124,12 @@ Returns a paginated list of all accessible Managed Databases on your account. string - __Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database. (example: us-east) + __Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives. (example: us-east) string - __Filterable__, __Read-only__ The operating status of the Managed Database. (example: active) + __Filterable__, __Read-only__ The operating status of the Managed Database. (provisioning, active, suspending, suspended, resuming, failed, degraded, updating, resizing) (example: active) @@ -181,7 +182,7 @@ The following methods are available for this resource: - + page, page_size @@ -219,12 +220,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Display all Managed Databases accessible to your user, regardless of engine type. For more detailed information on a particular database instance, make a request to its `instance_uri`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) diff --git a/website/docs/services/databases/mysql_config/index.md b/website/docs/services/databases/mysql_config/index.md index e897f15..d6d157b 100644 --- a/website/docs/services/databases/mysql_config/index.md +++ b/website/docs/services/databases/mysql_config/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a mysql_config resource. ## Overview - +
Namemysql_config
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a mysql_config resource. The following fields are returned by `SELECT` queries: - + MySQL Managed Database advanced parameters. @@ -81,7 +82,7 @@ The following methods are available for this resource: - + @@ -109,12 +110,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + All advanced parameters you can apply to a MySQL Managed Database, via our partner [Aiven](https://aiven.io/docs/products/mysql/reference/advanced-params).

> 📘
>
> Aiven may offer other parameters, but Akamai Managed Databases only supports the ones listed in this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) diff --git a/website/docs/services/databases/mysql_instance_credentials/index.md b/website/docs/services/databases/mysql_instance_credentials/index.md index c4978c1..f94d306 100644 --- a/website/docs/services/databases/mysql_instance_credentials/index.md +++ b/website/docs/services/databases/mysql_instance_credentials/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a mysql_instance_credentials -Namemysql_instance_credentials +Name TypeResource Id @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a mysql_instance_credentials - + MySQL Managed Database root username and password. @@ -81,16 +82,16 @@ The following methods are available for this resource: - + - + instanceId Display the root username and password for an accessible MySQL Managed Database. The database's status needs to be `active`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + instanceId Reset the root password for a MySQL Managed Database. A new root password is randomly generated and accessible with the [Get MySQL Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials) operation.

- The database's status needs to be `active`.

- Only unrestricted users can access this operation. These users have access regardless of the acting token's OAuth scopes.

- It may take several seconds for credentials to reset.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -110,18 +111,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Managed MySQL Database. + ## `SELECT` examples - + Display the root username and password for an accessible MySQL Managed Database. The database's status needs to be `active`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -130,6 +136,7 @@ SELECT password, username FROM linode.databases.mysql_instance_credentials +WHERE instanceId = '{{ instanceId }}' -- required ; ```
@@ -139,18 +146,18 @@ FROM linode.databases.mysql_instance_credentials ## Lifecycle Methods - + Reset the root password for a MySQL Managed Database. A new root password is randomly generated and accessible with the [Get MySQL Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials) operation.

- The database's status needs to be `active`.

- Only unrestricted users can access this operation. These users have access regardless of the acting token's OAuth scopes.

- It may take several seconds for credentials to reset.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.databases.mysql_instance_credentials.post_databases_mysql_instance_credentials_reset - +EXEC linode.databases.mysql_instance_credentials.reset_credentials +@instanceId='{{ instanceId }}' --required ; ```
diff --git a/website/docs/services/databases/mysql_instances/index.md b/website/docs/services/databases/mysql_instances/index.md index 8455ff0..704cb73 100644 --- a/website/docs/services/databases/mysql_instances/index.md +++ b/website/docs/services/databases/mysql_instances/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a mysql_instances resource ## Overview - +
Namemysql_instances
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a mysql_instances resource The following fields are returned by `SELECT` queries: - + Returns information for a single MySQL Managed Database. @@ -64,7 +65,7 @@ Returns information for a single MySQL Managed Database. integer - The number of Linode instance nodes deployed to the Managed Database. - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes. - A `2` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. + The number of Linode instance nodes deployed to the Managed Database. - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes. - A `2` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. (1, 2, 3) @@ -94,7 +95,7 @@ Returns information for a single MySQL Managed Database. object - __Read-only__ The primary and secondary hosts for the Managed Database. These are assigned after provisioning is complete. + __Read-only__ The primary hostname and secondary read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database. @@ -103,8 +104,8 @@ Returns information for a single MySQL Managed Database. - object - __Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`. + string + __Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`. (opaque JSON object) @@ -114,17 +115,22 @@ Returns information for a single MySQL Managed Database. string - __Filterable__, __Read-only__ The back-end platform for relational databases used by the service. (example: rdbms-default) + __Filterable__, __Read-only__ The back-end platform for relational databases used by the service. (rdbms-legacy, rdbms-default) (example: rdbms-default) integer __Read-only__ The access port for this Managed Database. + + + object + __Beta__ Restricts access to a MySQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured. + string - __Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database. (example: us-east) + __Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives. (example: us-east) @@ -134,7 +140,7 @@ Returns information for a single MySQL Managed Database. string - __Filterable__, __Read-only__ The operating status of the Managed Database. (example: active) + __Filterable__, __Read-only__ The operating status of the Managed Database. (provisioning, active, suspending, suspended, resuming, failed, degraded, updating, resizing) (example: active) @@ -169,7 +175,7 @@ Returns information for a single MySQL Managed Database. - + Returns a paginated list of all accessible MySQL Managed Databases on your account. @@ -195,7 +201,7 @@ Returns a paginated list of all accessible MySQL Managed Databases on your accou integer - The number of Linode instance nodes deployed to the Managed Database. - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes. - A `2` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. + The number of Linode instance nodes deployed to the Managed Database. - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes. - A `2` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. (1, 2, 3) @@ -225,7 +231,7 @@ Returns a paginated list of all accessible MySQL Managed Databases on your accou object - __Read-only__ The primary and secondary hosts for the Managed Database. These are assigned after provisioning is complete. + __Read-only__ The primary hostname and secondary read-only hostname for the Managed Database. The API assigns these hostnames after it successfully creates the Managed Database. @@ -234,8 +240,8 @@ Returns a paginated list of all accessible MySQL Managed Databases on your accou - object - __Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`. + string + __Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`. (opaque JSON object) @@ -245,17 +251,22 @@ Returns a paginated list of all accessible MySQL Managed Databases on your accou string - __Filterable__, __Read-only__ The back-end platform for relational databases used by the service. (example: rdbms-default) + __Filterable__, __Read-only__ The back-end platform for relational databases used by the service. (rdbms-legacy, rdbms-default) (example: rdbms-default) integer __Read-only__ The access port for this Managed Database. + + + object + __Beta__ Restricts access to a MySQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured. + string - __Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database. (example: us-east) + __Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives. (example: us-east) @@ -265,7 +276,7 @@ Returns a paginated list of all accessible MySQL Managed Databases on your accou string - __Filterable__, __Read-only__ The operating status of the Managed Database. (example: active) + __Filterable__, __Read-only__ The operating status of the Managed Database. (provisioning, active, suspending, suspended, resuming, failed, degraded, updating, resizing) (example: active) @@ -318,58 +329,58 @@ The following methods are available for this resource: - + - + instanceId Display information for a single, accessible MySQL Managed Database.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Display all accessible MySQL Managed Databases.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__label, data__type, data__engine, data__region + label, type, engine, region - **Provision a MySQL Managed Database**

Use this operation to create a new MySQL Managed Database.

- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).

- New instances can take 10 to 15 minutes to deploy.

- When you create a new MySQL Managed Database, our partner [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption) automatically enables disk encryption on each cluster.

- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the MySQL Managed Database. Configure the maintenance window for these updates with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. You should adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

**Restore a MySQL Managed Database**

Include the `fork` object in the request to target a backed-up database. Your user needs `read_write` access to the target database and its status can be `active`, `degraded`, or `failed`.

> 📘
>
> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing. __CLI for create operation__.

```
linode-cli databases mysql-create \
--label example-db1 \
--region us-east \
--type g6-dedicated-2 \
--cluster_size 3 \
--engine mysql/8.0.26 \
--engine_config.binlog_retention_period 60 \
--engine_config.mysql.connect_timeout 10 \
--engine_config.mysql.default_time_zone +03:00 \
--ssl_connection true \
--allow_list 203.0.113.1 \
--allow_list 192.0.1.0/24
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + **Provision a MySQL Managed Database**

Use this operation to create a new MySQL Managed Database.

- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).

- New instances can take 10 to 15 minutes to deploy.

- When you create a new MySQL Managed Database, our partner [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption) automatically enables disk encryption on each cluster.

- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the MySQL Managed Database. Configure the maintenance window for these updates with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. You should adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

**Beta** **Virtual Private Cloud (VPC) support**

You can create a MySQL Managed Database in a VPC using the `private_network` object in the request. Talk to your Akamai account team for more details.

> 📘
>
> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.

**Restore a MySQL Managed Database**

Include the `fork` object in the request to target a backed-up database. Your user needs `read_write` access to the target database and its status can be `active`, `degraded`, or `failed`.

> 📘
>
> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing. __CLI for create operation__.

```
linode-cli databases mysql-create \
--label example-db1 \
--region us-east \
--type g6-dedicated-2 \
--cluster_size 3 \
--engine mysql/8.0.26 \
--engine_config.binlog_retention_period 60 \
--engine_config.mysql.connect_timeout 10 \
--engine_config.mysql.default_time_zone +03:00 \
--ssl_connection true \
--allow_list 203.0.113.1 \
--allow_list 192.0.1.0/24
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + instanceId - - Apply security patches and updates to the underlying operating system of the MySQL Managed Database. This function runs during regular maintenance windows, which you can configure with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status meeds to be `active`.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_upgrade` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Apply security patches and updates to the underlying operating system of the MySQL Managed Database. This function runs during regular maintenance windows, which you can configure with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_upgrade` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + instanceId - - Make changes to an existing MySQL Managed Database.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List MySQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation.

- Updates to your `allow_list` may take a short time to complete, making this operation inappropriate for rapid successive updates.

- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed MySQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- You can't update `engine_config` advanced parameter settings for a suspended database. You'll need to [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-mysql-instance) it first.

- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Make changes to an existing MySQL Managed Database.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List MySQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation.

- Updates to your `allow_list` may take a short time to complete, making this operation inappropriate for rapid successive updates.

- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed MySQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- You can't update `engine_config` advanced parameter settings for a suspended database. You'll need to [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-mysql-instance) it first.

- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

- **Beta**. You can update an existing MySQL Managed Database to move it to a Virtual Private Cloud (VPC) using the `private_network` object in the request. This support is in beta. Talk to your Akamai account team for more details.

> 📘
>
> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + instanceId Remove a MySQL Managed Database from your account.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status can be `active`, `failed`, or `degraded`.

- Only unrestricted users can access this operation. They have access regardless of the acting token's OAuth scopes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + instanceId Resume a suspended MySQL Managed Database from your account. This resumes billing for the cluster.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `suspended`.

- A successful request triggers a `database_resume` [event](https://techdocs.akamai.com/linode-api/reference/get-events). __OAuth scopes__.

```
databases:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + instanceId Suspend a MySQL Managed Database from your account, releasing idle resources and keeping only necessary data. All service data is lost if there are no backups available. This halts billing for the cluster.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- Akamai deletes suspended clusters after 180 days.

- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events). __OAuth scopes__.

```
databases:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -389,6 +400,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Managed PostgreSQL Database. + integer @@ -405,13 +421,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Display information for a single, accessible MySQL Managed Database.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -431,6 +447,7 @@ members, oldest_restore_time, platform, port, +private_network, region, ssl_connection, status, @@ -441,10 +458,11 @@ updates, used_disk_size_gb, version FROM linode.databases.mysql_instances +WHERE instanceId = '{{ instanceId }}' -- required ; ```
- + Display all accessible MySQL Managed Databases.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -464,6 +482,7 @@ members, oldest_restore_time, platform, port, +private_network, region, ssl_connection, status, @@ -485,27 +504,28 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + -**Provision a MySQL Managed Database**

Use this operation to create a new MySQL Managed Database.

- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).

- New instances can take 10 to 15 minutes to deploy.

- When you create a new MySQL Managed Database, our partner [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption) automatically enables disk encryption on each cluster.

- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the MySQL Managed Database. Configure the maintenance window for these updates with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. You should adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

**Restore a MySQL Managed Database**

Include the `fork` object in the request to target a backed-up database. Your user needs `read_write` access to the target database and its status can be `active`, `degraded`, or `failed`.

> 📘
>
> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing. __CLI for create operation__.

```
linode-cli databases mysql-create \
--label example-db1 \
--region us-east \
--type g6-dedicated-2 \
--cluster_size 3 \
--engine mysql/8.0.26 \
--engine_config.binlog_retention_period 60 \
--engine_config.mysql.connect_timeout 10 \
--engine_config.mysql.default_time_zone +03:00 \
--ssl_connection true \
--allow_list 203.0.113.1 \
--allow_list 192.0.1.0/24
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +**Provision a MySQL Managed Database**

Use this operation to create a new MySQL Managed Database.

- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).

- New instances can take 10 to 15 minutes to deploy.

- When you create a new MySQL Managed Database, our partner [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption) automatically enables disk encryption on each cluster.

- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the MySQL Managed Database. Configure the maintenance window for these updates with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. You should adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

**Beta** **Virtual Private Cloud (VPC) support**

You can create a MySQL Managed Database in a VPC using the `private_network` object in the request. Talk to your Akamai account team for more details.

> 📘
>
> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.

**Restore a MySQL Managed Database**

Include the `fork` object in the request to target a backed-up database. Your user needs `read_write` access to the target database and its status can be `active`, `degraded`, or `failed`.

> 📘
>
> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing. __CLI for create operation__.

```
linode-cli databases mysql-create \
--label example-db1 \
--region us-east \
--type g6-dedicated-2 \
--cluster_size 3 \
--engine mysql/8.0.26 \
--engine_config.binlog_retention_period 60 \
--engine_config.mysql.connect_timeout 10 \
--engine_config.mysql.default_time_zone +03:00 \
--ssl_connection true \
--allow_list 203.0.113.1 \
--allow_list 192.0.1.0/24
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.databases.mysql_instances ( -data__allow_list, -data__cluster_size, -data__engine, -data__engine_config, -data__fork, -data__label, -data__region, -data__ssl_connection, -data__type +allow_list, +cluster_size, +engine, +engine_config, +fork, +label, +private_network, +region, +ssl_connection, +type ) SELECT '{{ allow_list }}', @@ -514,6 +534,7 @@ SELECT '{{ engine_config }}', '{{ fork }}', '{{ label }}' /* required */, +'{{ private_network }}', '{{ region }}' /* required */, {{ ssl_connection }}, '{{ type }}' /* required */ @@ -532,6 +553,7 @@ members, oldest_restore_time, platform, port, +private_network, region, ssl_connection, status, @@ -546,77 +568,98 @@ version
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: mysql_instances props: - name: allow_list - value: array - description: > + value: + - "{{ allow_list }}" + description: | Controls access to the Managed Database. - -- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - -- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. - -- An empty array (`[]`) blocks all public and private connections to the Managed Database. - + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. + - A standalone value of \`0.0.0.0/0\` allows all IP addresses access to the Managed Database. + - An empty array (\`[]\`) blocks all public and private connections to the Managed Database. - name: cluster_size - value: integer - description: > + value: {{ cluster_size }} + description: | The number of Linode instance nodes deployed to the Managed Database. - - - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes. - -- A `2` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. - + - Choose \`3\` nodes to create a high availability cluster that consists of one primary node and two replica nodes. + - A \`2\` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. valid_values: ['1', '2', '3'] default: 1 - name: engine - value: string - description: > + value: "{{ engine }}" + description: | The Managed Database engine in engine/version format. - - name: engine_config - value: object - description: > + description: | Advanced parameters you can apply to a MySQL Managed Database, via our partner [Aiven's specification](https://aiven.io/docs/products/mysql/reference/advanced-params). Only include the objects for parameters you want to set in your database. Omit objects for parameters you don't want to define or change. - -> 📘 -> -> Aiven may offer additional parameters in their specification. Currently, only those listed here are supported for use in a MySQL Managed Database. You can also run the [List MySQL Managed Database advanced parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-config) operation to see an up-to-date list. - + > 📘 + > + > Aiven may offer additional parameters in their specification. Currently, only those listed here are supported for use in a MySQL Managed Database. You can also run the [List MySQL Managed Database advanced parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-config) operation to see an up-to-date list. + value: + binlog_retention_period: {{ binlog_retention_period }} + mysql: + connect_timeout: {{ connect_timeout }} + default_time_zone: "{{ default_time_zone }}" + group_concat_max_len: {{ group_concat_max_len }} + information_schema_stats_expiry: {{ information_schema_stats_expiry }} + innodb_change_buffer_max_size: {{ innodb_change_buffer_max_size }} + innodb_flush_neighbors: {{ innodb_flush_neighbors }} + innodb_ft_min_token_size: {{ innodb_ft_min_token_size }} + innodb_ft_server_stopword_table: "{{ innodb_ft_server_stopword_table }}" + innodb_lock_wait_timeout: {{ innodb_lock_wait_timeout }} + innodb_log_buffer_size: {{ innodb_log_buffer_size }} + innodb_online_alter_log_max_size: {{ innodb_online_alter_log_max_size }} + innodb_read_io_threads: {{ innodb_read_io_threads }} + innodb_rollback_on_timeout: {{ innodb_rollback_on_timeout }} + innodb_thread_concurrency: {{ innodb_thread_concurrency }} + innodb_write_io_threads: {{ innodb_write_io_threads }} + interactive_timeout: {{ interactive_timeout }} + internal_tmp_mem_storage_engine: "{{ internal_tmp_mem_storage_engine }}" + max_allowed_packet: {{ max_allowed_packet }} + max_heap_table_size: {{ max_heap_table_size }} + net_buffer_length: {{ net_buffer_length }} + net_read_timeout: {{ net_read_timeout }} + net_write_timeout: {{ net_write_timeout }} + sql_mode: "{{ sql_mode }}" + sql_require_primary_key: {{ sql_require_primary_key }} + tmp_table_size: {{ tmp_table_size }} + wait_timeout: {{ wait_timeout }} - name: fork - value: object - description: > + description: | Include this object to restore a Managed Database by forking from a backup. - -- If you include this object, all other fields are optional. - -- Don't include this object if you're creating a new Managed Database. - + - If you include this object, all other fields are optional. + - Don't include this object if you're creating a new Managed Database. + value: + restore_time: "{{ restore_time }}" + source: {{ source }} - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ A unique, user-defined string referring to the Managed Database. This string needs to be unique per Managed Database engine type. - + - name: private_network + description: | + __Beta__ Restricts access on a MySQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. + value: + public_access: {{ public_access }} + subnet_id: {{ subnet_id }} + vpc_id: {{ vpc_id }} - name: region - value: string - description: > - __Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database. - + value: "{{ region }}" + description: | + __Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives. - name: ssl_connection - value: boolean - description: > - Currently required to be `true`. Whether to require SSL credentials to establish a connection to the Managed Database. Run the [Get managed MySQL database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials) operation for access information. - + value: {{ ssl_connection }} + description: | + Currently required to be \`true\`. Whether to require SSL credentials to establish a connection to the Managed Database. Run the [Get managed MySQL database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials) operation for access information. default: true - name: type - value: string - description: > + value: "{{ type }}" + description: | __Filterable__ The Linode Instance type used by the Managed Database for its nodes. - -``` +`} +
@@ -624,19 +667,24 @@ version ## `UPDATE` examples - + -Apply security patches and updates to the underlying operating system of the MySQL Managed Database. This function runs during regular maintenance windows, which you can configure with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status meeds to be `active`.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_upgrade` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Apply security patches and updates to the underlying operating system of the MySQL Managed Database. This function runs during regular maintenance windows, which you can configure with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_upgrade` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql UPDATE linode.databases.mysql_instances SET --- No updatable properties; +-- No updatable properties +WHERE +instanceId = '{{ instanceId }}' --required +RETURNING +instanceId, +message; ```
@@ -645,24 +693,27 @@ SET ## `REPLACE` examples - + -Make changes to an existing MySQL Managed Database.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List MySQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation.

- Updates to your `allow_list` may take a short time to complete, making this operation inappropriate for rapid successive updates.

- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed MySQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- You can't update `engine_config` advanced parameter settings for a suspended database. You'll need to [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-mysql-instance) it first.

- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Make changes to an existing MySQL Managed Database.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List MySQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation.

- Updates to your `allow_list` may take a short time to complete, making this operation inappropriate for rapid successive updates.

- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed MySQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- You can't update `engine_config` advanced parameter settings for a suspended database. You'll need to [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-mysql-instance) it first.

- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

- **Beta**. You can update an existing MySQL Managed Database to move it to a Virtual Private Cloud (VPC) using the `private_network` object in the request. This support is in beta. Talk to your Akamai account team for more details.

> 📘
>
> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.databases.mysql_instances SET -data__allow_list = '{{ allow_list }}', -data__engine_config = '{{ engine_config }}', -data__label = '{{ label }}', -data__type = '{{ type }}', -data__updates = '{{ updates }}', -data__version = '{{ version }}' +allow_list = '{{ allow_list }}', +engine_config = '{{ engine_config }}', +label = '{{ label }}', +private_network = '{{ private_network }}', +type = '{{ type }}', +updates = '{{ updates }}', +version = '{{ version }}' +WHERE +instanceId = '{{ instanceId }}' --required RETURNING id, allow_list, @@ -678,6 +729,7 @@ members, oldest_restore_time, platform, port, +private_network, region, ssl_connection, status, @@ -695,17 +747,18 @@ version; ## `DELETE` examples - + Remove a MySQL Managed Database from your account.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status can be `active`, `failed`, or `degraded`.

- Only unrestricted users can access this operation. They have access regardless of the acting token's OAuth scopes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.databases.mysql_instances +WHERE instanceId = '{{ instanceId }}' --required ; ```
@@ -715,29 +768,29 @@ DELETE FROM linode.databases.mysql_instances ## Lifecycle Methods - + Resume a suspended MySQL Managed Database from your account. This resumes billing for the cluster.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `suspended`.

- A successful request triggers a `database_resume` [event](https://techdocs.akamai.com/linode-api/reference/get-events). __OAuth scopes__.

```
databases:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.databases.mysql_instances.resume_databases_mysql_instance - +EXEC linode.databases.mysql_instances.resume +@instanceId='{{ instanceId }}' --required ; ```
- + Suspend a MySQL Managed Database from your account, releasing idle resources and keeping only necessary data. All service data is lost if there are no backups available. This halts billing for the cluster.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- Akamai deletes suspended clusters after 180 days.

- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events). __OAuth scopes__.

```
databases:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.databases.mysql_instances.suspend_databases_mysql_instance - +EXEC linode.databases.mysql_instances.suspend +@instanceId='{{ instanceId }}' --required ; ```
diff --git a/website/docs/services/databases/mysql_ssl_certificates/index.md b/website/docs/services/databases/mysql_ssl_certificates/index.md index cdf3dfe..4bea902 100644 --- a/website/docs/services/databases/mysql_ssl_certificates/index.md +++ b/website/docs/services/databases/mysql_ssl_certificates/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a mysql_ssl_certificates r ## Overview - +
Namemysql_ssl_certificates
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a mysql_ssl_certificates r The following fields are returned by `SELECT` queries: - + Returns the SSL CA certificate of a single MySQL Managed Database. @@ -76,9 +77,9 @@ The following methods are available for this resource: - + - + instanceId Display the SSL CA certificate for an accessible MySQL Managed Database. The database's status needs to be `active`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -98,18 +99,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Managed MySQL Database. + ## `SELECT` examples - + Display the SSL CA certificate for an accessible MySQL Managed Database. The database's status needs to be `active`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -117,6 +123,7 @@ Display the SSL CA certificate for an accessible MySQL Managed Database. The dat SELECT ca_certificate FROM linode.databases.mysql_ssl_certificates +WHERE instanceId = '{{ instanceId }}' -- required ; ```
diff --git a/website/docs/services/databases/postgresql_config/index.md b/website/docs/services/databases/postgresql_config/index.md index 6d39358..05a10a4 100644 --- a/website/docs/services/databases/postgresql_config/index.md +++ b/website/docs/services/databases/postgresql_config/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a postgresql_config resour ## Overview - +
Namepostgresql_config
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a postgresql_config resour The following fields are returned by `SELECT` queries: - + PostgreSQL Managed Database advanced parameters. @@ -96,7 +97,7 @@ The following methods are available for this resource: - + @@ -124,12 +125,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + All advanced parameters you can apply to a PostgreSQL Managed Database, via our partner [Aiven](https://aiven.io/docs/products/postgresql/reference/advanced-params).

> 📘
>
> Aiven may offer other parameters, but Akamai Managed Databases only supports the ones listed in this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) diff --git a/website/docs/services/databases/postgresql_instance_credentials/index.md b/website/docs/services/databases/postgresql_instance_credentials/index.md index b6f2f9e..ab5af9f 100644 --- a/website/docs/services/databases/postgresql_instance_credentials/index.md +++ b/website/docs/services/databases/postgresql_instance_credentials/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a postgresql_instance_credentials ## Overview - +
Namepostgresql_instance_credentials
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a postgresql_instance_credentials The following fields are returned by `SELECT` queries: - + PostgreSQL Managed Database root username and password. @@ -81,16 +82,16 @@ The following methods are available for this resource: - + - + instanceId Display the root username and password for an accessible PostgreSQL Managed Database. The database's status needs to be `active`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + instanceId Reset the root password for a PostgreSQL Managed Database. A new root password is randomly generated and accessible with the [Get PostgreSQL Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-credentials) operation.

- The database's status needs to be `active`.

- Only unrestricted users can access this operation. These users have access regardless of the acting token's OAuth scopes.

- It may take several seconds for credentials to reset.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -110,18 +111,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Managed PostgreSQL Database. + ## `SELECT` examples - + Display the root username and password for an accessible PostgreSQL Managed Database. The database's status needs to be `active`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -130,6 +136,7 @@ SELECT password, username FROM linode.databases.postgresql_instance_credentials +WHERE instanceId = '{{ instanceId }}' -- required ; ```
@@ -139,18 +146,18 @@ FROM linode.databases.postgresql_instance_credentials ## Lifecycle Methods - + Reset the root password for a PostgreSQL Managed Database. A new root password is randomly generated and accessible with the [Get PostgreSQL Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-credentials) operation.

- The database's status needs to be `active`.

- Only unrestricted users can access this operation. These users have access regardless of the acting token's OAuth scopes.

- It may take several seconds for credentials to reset.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.databases.postgresql_instance_credentials.post_databases_postgre_sql_instance_credentials_reset - +EXEC linode.databases.postgresql_instance_credentials.reset_credentials +@instanceId='{{ instanceId }}' --required ; ```
diff --git a/website/docs/services/databases/postgresql_instances/index.md b/website/docs/services/databases/postgresql_instances/index.md index fa72eed..0935334 100644 --- a/website/docs/services/databases/postgresql_instances/index.md +++ b/website/docs/services/databases/postgresql_instances/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a postgresql_instances res ## Overview - +
Namepostgresql_instances
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a postgresql_instances res The following fields are returned by `SELECT` queries: - + Returns information for a single PostgreSQL Managed Database. @@ -64,7 +65,7 @@ Returns information for a single PostgreSQL Managed Database. integer - The number of Linode instance nodes deployed to the Managed Database. - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes. - A `2` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. + The number of Linode instance nodes deployed to the Managed Database. - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes. - A `2` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. (1, 2, 3) @@ -103,8 +104,8 @@ Returns information for a single PostgreSQL Managed Database. - object - __Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`. + string + __Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`. (opaque JSON object) @@ -114,17 +115,22 @@ Returns information for a single PostgreSQL Managed Database. string - __Filterable__, __Read-only__ The back-end platform for relational databases used by the service. (example: rdbms-default) + __Filterable__, __Read-only__ The back-end platform for relational databases used by the service. (rdbms-legacy, rdbms-default) (example: rdbms-default) integer __Read-only__ The access port for this Managed Database. + + + object + __Beta__ Restricts access to a PostgreSQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured. + string - __Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database. (example: us-east) + __Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives. (example: us-east) @@ -134,7 +140,7 @@ Returns information for a single PostgreSQL Managed Database. string - __Filterable__, __Read-only__ The operating status of the Managed Database. (example: active) + __Filterable__, __Read-only__ The operating status of the Managed Database. (provisioning, active, suspending, suspended, resuming, failed, degraded, updating, resizing) (example: active) @@ -169,7 +175,7 @@ Returns information for a single PostgreSQL Managed Database. - + Returns a paginated list of all accessible PostgreSQL Managed Databases on your account. @@ -195,7 +201,7 @@ Returns a paginated list of all accessible PostgreSQL Managed Databases on your integer - The number of Linode instance nodes deployed to the Managed Database. - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes. - A `2` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. + The number of Linode instance nodes deployed to the Managed Database. - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes. - A `2` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. (1, 2, 3) @@ -234,8 +240,8 @@ Returns a paginated list of all accessible PostgreSQL Managed Databases on your - object - __Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`. + string + __Read-only__ A mapping between IP addresses and strings designating them as `primary` or `failover`. (opaque JSON object) @@ -245,17 +251,22 @@ Returns a paginated list of all accessible PostgreSQL Managed Databases on your string - __Filterable__, __Read-only__ The back-end platform for relational databases used by the service. (example: rdbms-default) + __Filterable__, __Read-only__ The back-end platform for relational databases used by the service. (rdbms-legacy, rdbms-default) (example: rdbms-default) integer __Read-only__ The access port for this Managed Database. + + + object + __Beta__ Restricts access to a PostgreSQL Managed Database using a Virtual Private Cloud (VPC). Displayed as `null` if no VPC is configured. + string - __Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database. (example: us-east) + __Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives. (example: us-east) @@ -265,7 +276,7 @@ Returns a paginated list of all accessible PostgreSQL Managed Databases on your string - __Filterable__, __Read-only__ The operating status of the Managed Database. (example: active) + __Filterable__, __Read-only__ The operating status of the Managed Database. (provisioning, active, suspending, suspended, resuming, failed, degraded, updating, resizing) (example: active) @@ -318,58 +329,58 @@ The following methods are available for this resource: - + - + instanceId Display information for a single, accessible PostgreSQL Managed Database.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Display all accessible PostgreSQL Managed Databases.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__label, data__type, data__engine, data__region + label, type, engine, region - **Provision a PostgreSQL Managed Database**

Use this operation to create a new PostgreSQL Managed Database.

- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).

- New instances can take 10 to 15 minutes to deploy.

- When you create a new PostgreSQL Managed Database, our partner [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption) automatically enables disk encryption on each cluster.

- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the PostgreSQL Managed Database. Configure the maintenance window for these updates with the [Update a managed PostgreSQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance) operation.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

**Restore a PostgreSQL Managed Database**

Include the `fork` object in the request to target a backed-up database. Your user needs `read_write` access to the target database and its status can be `active`, `degraded`, or `failed`.

> 📘
>
> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + **Provision a PostgreSQL Managed Database**

Use this operation to create a new PostgreSQL Managed Database.

- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).

- New instances can take 10 to 15 minutes to deploy.

- When you create a new PostgreSQL Managed Database, our partner [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption) automatically enables disk encryption on each cluster.

- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the PostgreSQL Managed Database. Configure the maintenance window for these updates with the [Update a managed PostgreSQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance) operation.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

**Beta** **Virtual Private Cloud (VPC) support**

You can create a PostgreSQL Managed Database in a VPC using the `private_network` object in the request. Talk to your Akamai account team for more details.

> 📘
>
> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.

**Restore a PostgreSQL Managed Database**

Include the `fork` object in the request to target a backed-up database. Your user needs `read_write` access to the target database and its status can be `active`, `degraded`, or `failed`.

> 📘
>
> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + instanceId Apply security patches and updates to the underlying operating system of the PostgreSQL Managed Database. This function runs during regular maintenance windows, which you can configure with the [Update a managed PostgreSQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance) operation.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_upgrade` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + instanceId - - Make changes to an existing PostgreSQL Managed Database.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation.

- Updates to your `allow_list` may take a short period of time to complete, making this operation inappropriate for rapid successive updates.

- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed PostgreSQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- You can't update `engine_config` advanced parameter settings for a suspended database. You'll need to [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-postgre-sql-instance) it first.

- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Make changes to an existing PostgreSQL Managed Database.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation.

- Updates to your `allow_list` may take a short period of time to complete, making this operation inappropriate for rapid successive updates.

- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed PostgreSQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- You can't update `engine_config` advanced parameter settings for a suspended database. You'll need to [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-postgre-sql-instance) it first.

- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

- **Beta**. You can update an existing PostgreSQL Managed Database to move it to a Virtual Private Cloud (VPC) using the `private_network` object in the request. This support is in beta. Talk to your Akamai account team for more details.

> 📘
>
> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + instanceId Remove a PostgreSQL Managed Database from your account.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status can be `active`, `failed`, or `degraded`.

- Only unrestricted users can access this operation. They have access regardless of the acting token's OAuth scopes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + instanceId Resume a suspended PostgreSQL Managed Database from your account. This resumes billing for the cluster.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `suspended`.

- A successful request triggers a `database_resume` [event](https://techdocs.akamai.com/linode-api/reference/get-events). __OAuth scopes__.

```
databases:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + instanceId Suspend a PostgreSQL Managed Database from your account, releasing idle resources and keeping only necessary data. All service data is lost if there are no backups available. This halts billing for the cluster.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- Akamai deletes suspended clusters after 180 days.

- A successful request triggers a `database_suspend` [event](https://techdocs.akamai.com/linode-api/reference/get-events). __OAuth scopes__.

```
databases:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -389,6 +400,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Managed PostgreSQL Database. + integer @@ -405,13 +421,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Display information for a single, accessible PostgreSQL Managed Database.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -431,6 +447,7 @@ members, oldest_restore_time, platform, port, +private_network, region, ssl_connection, status, @@ -441,10 +458,11 @@ updates, used_disk_size_gb, version FROM linode.databases.postgresql_instances +WHERE instanceId = '{{ instanceId }}' -- required ; ```
- + Display all accessible PostgreSQL Managed Databases.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -464,6 +482,7 @@ members, oldest_restore_time, platform, port, +private_network, region, ssl_connection, status, @@ -485,27 +504,28 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + -**Provision a PostgreSQL Managed Database**

Use this operation to create a new PostgreSQL Managed Database.

- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).

- New instances can take 10 to 15 minutes to deploy.

- When you create a new PostgreSQL Managed Database, our partner [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption) automatically enables disk encryption on each cluster.

- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the PostgreSQL Managed Database. Configure the maintenance window for these updates with the [Update a managed PostgreSQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance) operation.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

**Restore a PostgreSQL Managed Database**

Include the `fork` object in the request to target a backed-up database. Your user needs `read_write` access to the target database and its status can be `active`, `degraded`, or `failed`.

> 📘
>
> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +**Provision a PostgreSQL Managed Database**

Use this operation to create a new PostgreSQL Managed Database.

- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).

- New instances can take 10 to 15 minutes to deploy.

- When you create a new PostgreSQL Managed Database, our partner [Aiven](https://aiven.io/docs/platform/concepts/cloud-security#data-encryption) automatically enables disk encryption on each cluster.

- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the PostgreSQL Managed Database. Configure the maintenance window for these updates with the [Update a managed PostgreSQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance) operation.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

**Beta** **Virtual Private Cloud (VPC) support**

You can create a PostgreSQL Managed Database in a VPC using the `private_network` object in the request. Talk to your Akamai account team for more details.

> 📘
>
> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.

**Restore a PostgreSQL Managed Database**

Include the `fork` object in the request to target a backed-up database. Your user needs `read_write` access to the target database and its status can be `active`, `degraded`, or `failed`.

> 📘
>
> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.databases.postgresql_instances ( -data__allow_list, -data__cluster_size, -data__engine, -data__engine_config, -data__fork, -data__label, -data__region, -data__ssl_connection, -data__type +allow_list, +cluster_size, +engine, +engine_config, +fork, +label, +private_network, +region, +ssl_connection, +type ) SELECT '{{ allow_list }}', @@ -514,6 +534,7 @@ SELECT '{{ engine_config }}', '{{ fork }}', '{{ label }}' /* required */, +'{{ private_network }}', '{{ region }}' /* required */, {{ ssl_connection }}, '{{ type }}' /* required */ @@ -545,77 +566,119 @@ version
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: postgresql_instances props: - name: allow_list - value: array - description: > + value: + - "{{ allow_list }}" + description: | Controls access to the Managed Database. - -- Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - -- A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. - -- An empty array (`[]`) blocks all public and private connections to the Managed Database. - + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. + - A standalone value of \`0.0.0.0/0\` allows all IP addresses access to the Managed Database. + - An empty array (\`[]\`) blocks all public and private connections to the Managed Database. - name: cluster_size - value: integer - description: > + value: {{ cluster_size }} + description: | The number of Linode instance nodes deployed to the Managed Database. - - - Choose `3` nodes to create a high availability cluster that consists of one primary node and two replica nodes. - -- A `2` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. - + - Choose \`3\` nodes to create a high availability cluster that consists of one primary node and two replica nodes. + - A \`2\` node cluster is only available with a dedicated plan. It consists of one primary node and one replica node. valid_values: ['1', '2', '3'] default: 1 - name: engine - value: string - description: > + value: "{{ engine }}" + description: | The Managed Database engine in engine/version format. - - name: engine_config - value: object - description: > + description: | Advanced parameters you can apply to a PostgreSQL Managed Database, via our partner [Aiven's specification](https://aiven.io/docs/products/postgresql/reference/advanced-params). Only include the objects for parameters you want to set in your database. Omit objects for parameters you don't want to define or change. - -> 📘 -> -> Aiven may offer additional parameters in their specification. Currently, only those listed here are supported for use in a PostgreSQL Managed Database. You can also run the [List PostgreSQL Managed Database advanced parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-postgresql-config) operation to see an up-to-date list. - + > 📘 + > + > Aiven may offer additional parameters in their specification. Currently, only those listed here are supported for use in a PostgreSQL Managed Database. You can also run the [List PostgreSQL Managed Database advanced parameters](https://techdocs.akamai.com/linode-api/reference/get-databases-postgresql-config) operation to see an up-to-date list. + value: + pg: + autovacuum_analyze_scale_factor: {{ autovacuum_analyze_scale_factor }} + autovacuum_analyze_threshold: {{ autovacuum_analyze_threshold }} + autovacuum_max_workers: {{ autovacuum_max_workers }} + autovacuum_naptime: {{ autovacuum_naptime }} + autovacuum_vacuum_cost_delay: {{ autovacuum_vacuum_cost_delay }} + autovacuum_vacuum_cost_limit: {{ autovacuum_vacuum_cost_limit }} + autovacuum_vacuum_scale_factor: {{ autovacuum_vacuum_scale_factor }} + autovacuum_vacuum_threshold: {{ autovacuum_vacuum_threshold }} + bgwriter_delay: {{ bgwriter_delay }} + bgwriter_flush_after: {{ bgwriter_flush_after }} + bgwriter_lru_maxpages: {{ bgwriter_lru_maxpages }} + bgwriter_lru_multiplier: {{ bgwriter_lru_multiplier }} + deadlock_timeout: {{ deadlock_timeout }} + default_toast_compression: "{{ default_toast_compression }}" + idle_in_transaction_session_timeout: {{ idle_in_transaction_session_timeout }} + jit: {{ jit }} + max_files_per_process: {{ max_files_per_process }} + max_locks_per_transaction: {{ max_locks_per_transaction }} + max_logical_replication_workers: {{ max_logical_replication_workers }} + max_parallel_workers: {{ max_parallel_workers }} + max_parallel_workers_per_gather: {{ max_parallel_workers_per_gather }} + max_pred_locks_per_transaction: {{ max_pred_locks_per_transaction }} + max_replication_slots: {{ max_replication_slots }} + max_slot_wal_keep_size: {{ max_slot_wal_keep_size }} + max_stack_depth: {{ max_stack_depth }} + max_standby_archive_delay: {{ max_standby_archive_delay }} + max_standby_streaming_delay: {{ max_standby_streaming_delay }} + max_wal_senders: {{ max_wal_senders }} + max_worker_processes: {{ max_worker_processes }} + password_encryption: "{{ password_encryption }}" + pg_partman_bgw.interval: {{ pg_partman_bgw.interval }} + pg_partman_bgw.role: "{{ pg_partman_bgw.role }}" + pg_stat_monitor.pgsm_enable_query_plan: {{ pg_stat_monitor.pgsm_enable_query_plan }} + pg_stat_monitor.pgsm_max_buckets: {{ pg_stat_monitor.pgsm_max_buckets }} + pg_stat_statements.track: "{{ pg_stat_statements.track }}" + temp_file_limit: {{ temp_file_limit }} + timezone: "{{ timezone }}" + track_activity_query_size: {{ track_activity_query_size }} + track_commit_timestamp: "{{ track_commit_timestamp }}" + track_functions: "{{ track_functions }}" + track_io_timing: "{{ track_io_timing }}" + wal_sender_timeout: {{ wal_sender_timeout }} + wal_writer_delay: {{ wal_writer_delay }} + pg_stat_monitor_enable: {{ pg_stat_monitor_enable }} + pglookout: + max_failover_replication_time_lag: {{ max_failover_replication_time_lag }} + shared_buffers_percentage: {{ shared_buffers_percentage }} + work_mem: {{ work_mem }} - name: fork - value: object - description: > + description: | Include this object to restore a Managed Database by forking from a backup. - -- If you include this object, all other fields are optional. - -- Don't include this object if you're creating a new Managed Database. - + - If you include this object, all other fields are optional. + - Don't include this object if you're creating a new Managed Database. + value: + restore_time: "{{ restore_time }}" + source: {{ source }} - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ A unique, user-defined string referring to the Managed Database. This string needs to be unique per Managed Database engine type. - + - name: private_network + description: | + __Beta__ Restricts access on a PostgreSQL Managed Database to a specific Virtual Private Cloud (VPC) configured for the cluster. + value: + public_access: {{ public_access }} + subnet_id: {{ subnet_id }} + vpc_id: {{ vpc_id }} - name: region - value: string - description: > - __Filterable__ The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the Managed Database. - + value: "{{ region }}" + description: | + __Filterable__ The unique identifier for the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Managed Database lives. - name: ssl_connection - value: boolean - description: > - Currently required to be `true`. Whether to require SSL credentials to establish a connection to the Managed Database. Run the [Get managed PostgreSQL database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-credentials) operation for access information. - + value: {{ ssl_connection }} + description: | + Currently required to be \`true\`. Whether to require SSL credentials to establish a connection to the Managed Database. Run the [Get managed PostgreSQL database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-credentials) operation for access information. default: true - name: type - value: string - description: > + value: "{{ type }}" + description: | __Filterable__ The Linode Instance type used by the Managed Database for its nodes. - -``` +`} +
@@ -623,19 +686,24 @@ version ## `UPDATE` examples - + Apply security patches and updates to the underlying operating system of the PostgreSQL Managed Database. This function runs during regular maintenance windows, which you can configure with the [Update a managed PostgreSQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance) operation.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- A successful request triggers a `database_upgrade` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql UPDATE linode.databases.postgresql_instances SET --- No updatable properties; +-- No updatable properties +WHERE +instanceId = '{{ instanceId }}' --required +RETURNING +instanceId, +message; ```
@@ -644,24 +712,27 @@ SET ## `REPLACE` examples - + -Make changes to an existing PostgreSQL Managed Database.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation.

- Updates to your `allow_list` may take a short period of time to complete, making this operation inappropriate for rapid successive updates.

- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed PostgreSQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- You can't update `engine_config` advanced parameter settings for a suspended database. You'll need to [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-postgre-sql-instance) it first.

- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Make changes to an existing PostgreSQL Managed Database.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation.

- Updates to your `allow_list` may take a short period of time to complete, making this operation inappropriate for rapid successive updates.

- Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans.

- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed PostgreSQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates.

- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/aiven-database-clusters#high-availability) plan to avoid any maintenance downtime.

- Major upgrades are optional until the service reaches end of service, and can be done in place.

- You can't update `engine_config` advanced parameter settings for a suspended database. You'll need to [resume](https://techdocs.akamai.com/linode-api/reference/resume-databases-postgre-sql-instance) it first.

- A successful request triggers a `database_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

- **Beta**. You can update an existing PostgreSQL Managed Database to move it to a Virtual Private Cloud (VPC) using the `private_network` object in the request. This support is in beta. Talk to your Akamai account team for more details.

> 📘
>
> Currently, VPC subnets associated with Managed Database instances don't automatically block outbound connections outside the subnet. To limit network exposure, you should configure Cloud Firewall rules to explicitly deny outbound connections beyond the intended subnet. For more details on configuring rules, see the [Cloud Firewall](https://techdocs.akamai.com/cloud-computing/docs/cloud-firewall) documentation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.databases.postgresql_instances SET -data__allow_list = '{{ allow_list }}', -data__engine_config = '{{ engine_config }}', -data__label = '{{ label }}', -data__type = '{{ type }}', -data__updates = '{{ updates }}', -data__version = '{{ version }}' +allow_list = '{{ allow_list }}', +engine_config = '{{ engine_config }}', +label = '{{ label }}', +private_network = '{{ private_network }}', +type = '{{ type }}', +updates = '{{ updates }}', +version = '{{ version }}' +WHERE +instanceId = '{{ instanceId }}' --required RETURNING id, allow_list, @@ -677,6 +748,7 @@ members, oldest_restore_time, platform, port, +private_network, region, ssl_connection, status, @@ -694,17 +766,18 @@ version; ## `DELETE` examples - + Remove a PostgreSQL Managed Database from your account.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status can be `active`, `failed`, or `degraded`.

- Only unrestricted users can access this operation. They have access regardless of the acting token's OAuth scopes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.databases.postgresql_instances +WHERE instanceId = '{{ instanceId }}' --required ; ```
@@ -714,29 +787,29 @@ DELETE FROM linode.databases.postgresql_instances ## Lifecycle Methods - + Resume a suspended PostgreSQL Managed Database from your account. This resumes billing for the cluster.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `suspended`.

- A successful request triggers a `database_resume` [event](https://techdocs.akamai.com/linode-api/reference/get-events). __OAuth scopes__.

```
databases:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.databases.postgresql_instances.resume_databases_postgre_sql_instance - +EXEC linode.databases.postgresql_instances.resume +@instanceId='{{ instanceId }}' --required ; ```
- + Suspend a PostgreSQL Managed Database from your account, releasing idle resources and keeping only necessary data. All service data is lost if there are no backups available. This halts billing for the cluster.

- The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database.

- The database's status needs to be `active`.

- Akamai deletes suspended clusters after 180 days.

- A successful request triggers a `database_suspend` [event](https://techdocs.akamai.com/linode-api/reference/get-events). __OAuth scopes__.

```
databases:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.databases.postgresql_instances.suspend_databases_postgre_sql_instance - +EXEC linode.databases.postgresql_instances.suspend +@instanceId='{{ instanceId }}' --required ; ```
diff --git a/website/docs/services/databases/postgresql_ssl_certificates/index.md b/website/docs/services/databases/postgresql_ssl_certificates/index.md index a5a2133..e95e8b5 100644 --- a/website/docs/services/databases/postgresql_ssl_certificates/index.md +++ b/website/docs/services/databases/postgresql_ssl_certificates/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a postgresql_ssl_certificates -Namepostgresql_ssl_certificates +Name TypeResource Id @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a postgresql_ssl_certificates - + Returns the SSL CA certificate of a single PostgreSQL Managed Database. @@ -76,9 +77,9 @@ The following methods are available for this resource: - + - + instanceId Display the SSL CA certificate for an accessible PostgreSQL Managed Database. The database's status needs to be `active`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -98,18 +99,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Managed PostgreSQL Database. + ## `SELECT` examples - + Display the SSL CA certificate for an accessible PostgreSQL Managed Database. The database's status needs to be `active`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -117,6 +123,7 @@ Display the SSL CA certificate for an accessible PostgreSQL Managed Database. Th SELECT ca_certificate FROM linode.databases.postgresql_ssl_certificates +WHERE instanceId = '{{ instanceId }}' -- required ; ```
diff --git a/website/docs/services/databases/types/index.md b/website/docs/services/databases/types/index.md index 6a06eec..65c77bb 100644 --- a/website/docs/services/databases/types/index.md +++ b/website/docs/services/databases/types/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a types resource. ## Overview - +
Nametypes
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a types resource. The following fields are returned by `SELECT` queries: - + Returns a single Managed Databases type. @@ -59,7 +60,7 @@ Returns a single Managed Databases type. string - The compute class category. (example: nanode) + The Linode class category. This can be [dedicated](https://techdocs.akamai.com/cloud-computing/docs/dedicated-cpu-compute-instances), [shared](https://techdocs.akamai.com/cloud-computing/docs/shared-cpu-compute-instances), or [premium](https://techdocs.akamai.com/cloud-computing/docs/premium-compute-instances). > 📘 > > Premium plan Linodes are available in limited regions. (dedicated, shared, premium) (example: dedicated) @@ -89,7 +90,7 @@ Returns a single Managed Databases type. - + Returns a paginated list of all Managed Databases types. @@ -110,7 +111,7 @@ Returns a paginated list of all Managed Databases types. string - The compute class category. (example: nanode) + The Linode class category. This can be [dedicated](https://techdocs.akamai.com/cloud-computing/docs/dedicated-cpu-compute-instances), [shared](https://techdocs.akamai.com/cloud-computing/docs/shared-cpu-compute-instances), or [premium](https://techdocs.akamai.com/cloud-computing/docs/premium-compute-instances). > 📘 > > Premium plan Linodes are available in limited regions. (dedicated, shared, premium) (example: dedicated) @@ -158,14 +159,14 @@ The following methods are available for this resource: - + - + typeId page, page_size Display the details of a single Managed Databases node type. The type and number of nodes determine the resources and price of a Managed Databases instance. Run the [List Managed Databases type](https://techdocs.akamai.com/linode-api/reference/get-databases-types) operation and store the `id` for the applicable database node type.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + page, page_size @@ -187,6 +188,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Managed Database type. (example: {{typeId}}) + integer @@ -203,13 +209,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Display the details of a single Managed Databases node type. The type and number of nodes determine the resources and price of a Managed Databases instance. Run the [List Managed Databases type](https://techdocs.akamai.com/linode-api/reference/get-databases-types) operation and store the `id` for the applicable database node type.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -223,12 +229,13 @@ label, memory, vcpus FROM linode.databases.types -WHERE page = '{{ page }}' +WHERE typeId = '{{ typeId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ```
- + Display all Managed Databases node types. The type and number of nodes determine the resources and price of a Managed Databases instance. Each database can have one node type. With a high availability database, all nodes are deployed according to the chosen type.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) diff --git a/website/docs/services/domains/domains/index.md b/website/docs/services/domains/domains/index.md index 45fc052..214a011 100644 --- a/website/docs/services/domains/domains/index.md +++ b/website/docs/services/domains/domains/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a domains resource. ## Overview - +
Namedomains
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a domains resource. The following fields are returned by `SELECT` queries: - + A single Domain in Linode's DNS Manager. @@ -69,7 +70,7 @@ A single Domain in Linode's DNS Manager. string - __Filterable__ The domain this domain represents. domain labels cannot be longer than 63 characters and must conform to [RFC1035](https://tools.ietf.org/html/rfc1035). domains must be unique on Linode's platform, including across different Linode accounts; there cannot be two domains representing the same domain. (example: example.org, pattern: ^(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)$) + __Filterable__ The domain this domain represents. domain labels cannot be longer than 63 characters and must conform to [RFC1035](https://tools.ietf.org/html/rfc1035). domains must be unique on Linode's platform, including across different Linode accounts; there cannot be two domains representing the same domain. (example: example.org, pattern: ^(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)$) @@ -104,7 +105,7 @@ A single Domain in Linode's DNS Manager. string - Used to control whether this domain is currently being rendered. (default: active, example: active) + Used to control whether this domain is currently being rendered. (disabled, active) (default: active, example: active) @@ -119,12 +120,12 @@ A single Domain in Linode's DNS Manager. string - Whether this domain represents the authoritative source of information for the domain it describes (`master`), or whether it is a read-only copy of a master (`slave`). (example: master) + Whether this domain represents the authoritative source of information for the domain it describes (`master`), or whether it is a read-only copy of a master (`slave`). (master, slave) (example: master) - + A paginated list of Domains you have registered. @@ -138,24 +139,74 @@ A paginated list of Domains you have registered. - + + integer + __Read-only__ This domain's unique ID. + + + array - + The list of IPs that may perform a zone transfer for this domain. The total combined length of all data within this array cannot exceed 1000 characters. > 📘 > > This is potentially dangerous, and should be set to an empty list unless you intend to use it. - + + string + A description for this domain. This is for display purposes only. + + + + string + __Filterable__ The domain this domain represents. domain labels cannot be longer than 63 characters and must conform to [RFC1035](https://tools.ietf.org/html/rfc1035). domains must be unique on Linode's platform, including across different Linode accounts; there cannot be two domains representing the same domain. (example: example.org, pattern: ^(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)$) + + + integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + The amount of time in seconds that may pass before this domain is no longer authoritative. - Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200. - Any other value is rounded up to the nearest valid value. - A value of 0 is equivalent to the default value of 1209600. - + + string + __Filterable__ The group this domain belongs to. This is for display purposes only. + + + + array + The IP addresses representing the master DNS for this domain. At least one value is required for `type` slave domains. The total combined length of all data within this array cannot exceed 1000 characters. + + + integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + The amount of time in seconds before this domain should be refreshed. - Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200. - Any other value is rounded up to the nearest valid value. - A value of 0 is equivalent to the default value of 14400. + + + + integer + The interval, in seconds, at which a failed refresh should be retried. - Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200. - Any other value is rounded up to the nearest valid value. - A value of 0 is equivalent to the default value of 14400. + + + + string (email) + Start of Authority email address. This is required for `type` master domains. (example: admin@example.org) - + + string + Used to control whether this domain is currently being rendered. (disabled, active) (default: active, example: active) + + + + array + __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. + + + integer - __Read-only__ The total number of results. + "Time to Live" - the amount of time in seconds that this domain's records may be cached by resolvers or other domain servers. - Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200. - Any other value is rounded up to the nearest valid value. - A value of 0 is equivalent to the default value of 86400. + + + + string + Whether this domain represents the authoritative source of information for the domain it describes (`master`), or whether it is a read-only copy of a master (`slave`). (master, slave) (example: master) @@ -178,51 +229,51 @@ The following methods are available for this resource: - + - + domainId This is a single Domain that you have registered in Linode's DNS Manager. Linode is not a registrar, and in order for this Domain record to work you must own the domain and point your registrar at Linode's nameservers.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size This is a collection of Domains that you have registered in Linode's DNS Manager. Linode is not a registrar, and in order for these to work you must own the domains and point your registrar at Linode's nameservers.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__domain, data__type + domain, type Adds a new Domain to Linode's DNS Manager. Linode is not a registrar, and you must own the domain before adding it here. Be sure to point your registrar to Linode's nameservers so that the records hosted here are used.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + domainId Update information about a Domain in Linode's DNS Manager.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + domainId Deletes a Domain from Linode's DNS Manager. The Domain will be removed from Linode's nameservers shortly after this operation completes. This also deletes all associated Domain Records.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + domain, remote_nameserver Imports a domain zone from a remote nameserver. Your nameserver must allow zone transfers (AXFR) from the following IPs:

- 96.126.114.97
- 96.126.114.98
- 2600:3c00::5e
- 2600:3c00::5f

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - domain + domainId, domain Clones a Domain and all associated DNS records from a Domain that is registered in Linode's DNS manager.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -242,6 +293,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Domain to clone. (example: {{domainId}}) + integer @@ -258,13 +314,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + This is a single Domain that you have registered in Linode's DNS Manager. Linode is not a registrar, and in order for this Domain record to work you must own the domain and point your registrar at Linode's nameservers.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -285,19 +341,30 @@ tags, ttl_sec, type FROM linode.domains.domains +WHERE domainId = '{{ domainId }}' -- required ; ```
- + This is a collection of Domains that you have registered in Linode's DNS Manager. Linode is not a registrar, and in order for these to work you must own the domains and point your registrar at Linode's nameservers.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +axfr_ips, +description, +domain, +expire_sec, +group, +master_ips, +refresh_sec, +retry_sec, +soa_email, +status, +tags, +ttl_sec, +type FROM linode.domains.domains WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -310,31 +377,31 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Adds a new Domain to Linode's DNS Manager. Linode is not a registrar, and you must own the domain before adding it here. Be sure to point your registrar to Linode's nameservers so that the records hosted here are used.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.domains.domains ( -data__axfr_ips, -data__description, -data__domain, -data__expire_sec, -data__group, -data__master_ips, -data__refresh_sec, -data__retry_sec, -data__soa_email, -data__status, -data__tags, -data__ttl_sec, -data__type +axfr_ips, +description, +domain, +expire_sec, +group, +master_ips, +refresh_sec, +retry_sec, +soa_email, +status, +tags, +ttl_sec, +type ) SELECT '{{ axfr_ips }}', @@ -370,111 +437,88 @@ type
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: domains props: - name: axfr_ips - value: array - description: > + value: + - "{{ axfr_ips }}" + description: | The list of IPs that may perform a zone transfer for this domain. The total combined length of all data within this array cannot exceed 1000 characters. - -> 📘 -> -> This is potentially dangerous, and should be set to an empty list unless you intend to use it. - + > 📘 + > + > This is potentially dangerous, and should be set to an empty list unless you intend to use it. - name: description - value: string - description: > + value: "{{ description }}" + description: | A description for this domain. This is for display purposes only. - - name: domain - value: string - description: > + value: "{{ domain }}" + description: | __Filterable__ The domain this domain represents. domain labels cannot be longer than 63 characters and must conform to [RFC1035](https://tools.ietf.org/html/rfc1035). domains must be unique on Linode's platform, including across different Linode accounts; there cannot be two domains representing the same domain. - - name: expire_sec - value: integer - description: > + value: {{ expire_sec }} + description: | The amount of time in seconds that may pass before this domain is no longer authoritative. - -- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200. - -- Any other value is rounded up to the nearest valid value. - -- A value of 0 is equivalent to the default value of 1209600. - + - Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200. + - Any other value is rounded up to the nearest valid value. + - A value of 0 is equivalent to the default value of 1209600. default: 0 - name: group - value: string - description: > + value: "{{ group }}" + description: | __Filterable__ The group this domain belongs to. This is for display purposes only. - - name: master_ips - value: array - description: > - The IP addresses representing the master DNS for this domain. At least one value is required for `type` slave domains. The total combined length of all data within this array cannot exceed 1000 characters. - + value: + - "{{ master_ips }}" + description: | + The IP addresses representing the master DNS for this domain. At least one value is required for \`type\` slave domains. The total combined length of all data within this array cannot exceed 1000 characters. - name: refresh_sec - value: integer - description: > + value: {{ refresh_sec }} + description: | The amount of time in seconds before this domain should be refreshed. - -- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200. - -- Any other value is rounded up to the nearest valid value. - -- A value of 0 is equivalent to the default value of 14400. - + - Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200. + - Any other value is rounded up to the nearest valid value. + - A value of 0 is equivalent to the default value of 14400. default: 0 - name: retry_sec - value: integer - description: > + value: {{ retry_sec }} + description: | The interval, in seconds, at which a failed refresh should be retried. - -- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200. - -- Any other value is rounded up to the nearest valid value. - -- A value of 0 is equivalent to the default value of 14400. - + - Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200. + - Any other value is rounded up to the nearest valid value. + - A value of 0 is equivalent to the default value of 14400. default: 0 - name: soa_email - value: string - description: > - Start of Authority email address. This is required for `type` master domains. - + value: "{{ soa_email }}" + description: | + Start of Authority email address. This is required for \`type\` master domains. - name: status - value: string - description: > + value: "{{ status }}" + description: | Used to control whether this domain is currently being rendered. - valid_values: ['disabled', 'active'] default: active - name: tags - value: array - description: > + value: + - "{{ tags }}" + description: | __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. - - name: ttl_sec - value: integer - description: > + value: {{ ttl_sec }} + description: | "Time to Live" - the amount of time in seconds that this domain's records may be cached by resolvers or other domain servers. - -- Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200. - -- Any other value is rounded up to the nearest valid value. - -- A value of 0 is equivalent to the default value of 86400. - + - Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200. + - Any other value is rounded up to the nearest valid value. + - A value of 0 is equivalent to the default value of 86400. default: 0 - name: type - value: string - description: > - Whether this domain represents the authoritative source of information for the domain it describes (`master`), or whether it is a read-only copy of a master (`slave`). - + value: "{{ type }}" + description: | + Whether this domain represents the authoritative source of information for the domain it describes (\`master\`), or whether it is a read-only copy of a master (\`slave\`). valid_values: ['master', 'slave'] -``` +`} +
@@ -482,31 +526,33 @@ type ## `REPLACE` examples - + Update information about a Domain in Linode's DNS Manager.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.domains.domains SET -data__axfr_ips = '{{ axfr_ips }}', -data__description = '{{ description }}', -data__domain = '{{ domain }}', -data__expire_sec = {{ expire_sec }}, -data__group = '{{ group }}', -data__master_ips = '{{ master_ips }}', -data__refresh_sec = {{ refresh_sec }}, -data__retry_sec = {{ retry_sec }}, -data__soa_email = '{{ soa_email }}', -data__status = '{{ status }}', -data__tags = '{{ tags }}', -data__ttl_sec = {{ ttl_sec }}, -data__type = '{{ type }}' +axfr_ips = '{{ axfr_ips }}', +description = '{{ description }}', +domain = '{{ domain }}', +expire_sec = {{ expire_sec }}, +group = '{{ group }}', +master_ips = '{{ master_ips }}', +refresh_sec = {{ refresh_sec }}, +retry_sec = {{ retry_sec }}, +soa_email = '{{ soa_email }}', +status = '{{ status }}', +tags = '{{ tags }}', +ttl_sec = {{ ttl_sec }}, +type = '{{ type }}' +WHERE +domainId = '{{ domainId }}' --required RETURNING id, axfr_ips, @@ -530,17 +576,18 @@ type; ## `DELETE` examples - + Deletes a Domain from Linode's DNS Manager. The Domain will be removed from Linode's nameservers shortly after this operation completes. This also deletes all associated Domain Records.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.domains.domains +WHERE domainId = '{{ domainId }}' --required ; ```
@@ -550,18 +597,18 @@ DELETE FROM linode.domains.domains ## Lifecycle Methods - + Imports a domain zone from a remote nameserver. Your nameserver must allow zone transfers (AXFR) from the following IPs:

- 96.126.114.97
- 96.126.114.98
- 2600:3c00::5e
- 2600:3c00::5f

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.domains.domains.post_import_domain +EXEC linode.domains.domains.import @@json= '{ "domain": "{{ domain }}", @@ -570,12 +617,13 @@ EXEC linode.domains.domains.post_import_domain ; ```
- + Clones a Domain and all associated DNS records from a Domain that is registered in Linode's DNS manager.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.domains.domains.post_clone_domain +EXEC linode.domains.domains.clone +@domainId='{{ domainId }}' --required @@json= '{ "domain": "{{ domain }}" diff --git a/website/docs/services/domains/records/index.md b/website/docs/services/domains/records/index.md index a975216..a3a9532 100644 --- a/website/docs/services/domains/records/index.md +++ b/website/docs/services/domains/records/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a records resource. ## Overview - +
Namerecords
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a records resource. The following fields are returned by `SELECT` queries: - + A Domain Record object. @@ -89,7 +90,7 @@ A Domain Record object. string - __Filterable__ The tag portion of a CAA record. Only valid and required for CAA record requests. + __Filterable__ The tag portion of a CAA record. Only valid and required for CAA record requests. (issue, issuewild, iodef) @@ -104,7 +105,7 @@ A Domain Record object. string - __Filterable__ The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address. For more information, see the guides on [DNS Record Types](https://www.linode.com/docs/products/networking/dns-manager/guides/#dns-record-types). (example: A) + __Filterable__ The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address. For more information, see the guides on [DNS Record Types](https://www.linode.com/docs/products/networking/dns-manager/guides/#dns-record-types). (A, AAAA, NS, MX, CNAME, TXT, SRV, PTR, CAA) (example: A) @@ -119,7 +120,7 @@ A Domain Record object. - + A list of Domain Records. @@ -133,24 +134,69 @@ A list of Domain Records. - - array - + + integer + __Read-only__ This Record's unique ID. - + + string + __Filterable__ The name of this Record. For requests, this property's actual usage and whether it is required depends on the type of record this represents: `A` and `AAAA`: The hostname or FQDN of the Record. `NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported. `MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain. - The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain. - Other subdomain components must only contain letters, digits, and hyphens, start with a letter, end with a letter or digit, and contain less than 64 characters. - Must be an empty string (`""`) for a Null MX Record. `CNAME`: The hostname. Must be unique. Required. `TXT`: The hostname. `SRV`: Unused. Use the `service` property to set the service name for this record. `CAA`: The subdomain. Omit or enter an empty string (`""`) to apply to the entire Domain. `PTR`: See our guide on how to [Configure Your Linode for Reverse DNS (rDNS)](https://www.linode.com/docs/guides/configure-rdns/). (example: test) + + + + string (date-time) + __Read-only__ When this Domain Record was created. (example: 2018-01-01T00:01:01) + + + + integer + The port this Record points to. Only valid and required for SRV record requests. + + + integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + The priority of the target host for this Record. Lower values are preferred. Only valid for MX and SRV record requests. Required for SRV record requests. Defaults to `0` for MX record requests. Must be `0` for Null MX records. + + + + string + The protocol this Record's service communicates with. An underscore (`_`) is prepended automatically to the submitted value for this property. Only valid for SRV record requests. - + + string + The name of the service. An underscore (`_`) is prepended and a period (`.`) is appended automatically to the submitted value for this property. Only valid and required for SRV record requests. + + + + string + __Filterable__ The tag portion of a CAA record. Only valid and required for CAA record requests. (issue, issuewild, iodef) + + + + string + __Filterable__ The target for this Record. For requests, this property's actual usage and whether it is required depends on the type of record this represents: `A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required. `NS`: The name server. Must be a valid domain. Required. `MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required. - Must have less than 254 total characters. - The left-most domain component may be an asterisk (`*`) to designate a wildcard domain. - Other domain components must only contain letters, digits, and hyphens, start with a letter, end with a letter or digit, and contain less than 64 characters. - To create a [Null MX Record](https://datatracker.ietf.org/doc/html/rfc7505), first [remove](https://techdocs.akamai.com/linode-api/reference/delete-domain-record) any additional MX records, then create an MX record with empty strings (`""`) for the `target` and `name`. If a Domain has a Null MX record, new MX records cannot be created. `CNAME`: The alias. Must be a valid domain. Required. `TXT`: The value. Required. `SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain. To configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for `example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a target set to `sample.com`. Required. `CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef` tag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record: - `issue`: The domain of your certificate issuer. Must include a valid domain. May include additional parameters separated with semicolons (`;`), for example: `www.example.com; foo=bar` - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`). - `iodef`: Must be either (1) a valid domain, (2) a valid domain prepended with `http://` or `https://`, or (3) a valid email address prepended with `mailto:`. `PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS (rDNS)](https://www.linode.com/docs/guides/configure-rdns/). With the exception of A, AAAA, and CAA records, this field accepts a trailing period. (example: 192.0.2.0) + + + integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + "Time to Live" - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value. - + + string + __Filterable__ The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address. For more information, see the guides on [DNS Record Types](https://www.linode.com/docs/products/networking/dns-manager/guides/#dns-record-types). (A, AAAA, NS, MX, CNAME, TXT, SRV, PTR, CAA) (example: A) + + + + string (date-time) + __Read-only__ When this Domain Record was last updated. (example: 2018-01-01T00:01:01) + + + integer - __Read-only__ The total number of results. + The relative weight of this Record used in the case of identical priority. Higher values are preferred. Only valid and required for SRV record requests. @@ -173,37 +219,37 @@ The following methods are available for this resource: - + - + domainId, recordId View a single Record on this Domain.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + domainId page, page_size Returns a paginated list of Records configured on a Domain in Linode's DNS Manager.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__type + domainId, type Adds a new Domain Record to the zonefile this Domain represents.

Each domain can have up to 12,000 active records.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + domainId, recordId Updates a single Record on this Domain.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + domainId, recordId Deletes a Record on this Domain.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -223,6 +269,16 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Domain whose Record you are accessing. (example: {{domainId}}) + + + + string + The ID of the Record you are accessing. + integer @@ -239,13 +295,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + View a single Record on this Domain.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -265,21 +321,33 @@ type, updated, weight FROM linode.domains.records +WHERE domainId = '{{ domainId }}' -- required +AND recordId = '{{ recordId }}' -- required ; ```
- + Returns a paginated list of Records configured on a Domain in Linode's DNS Manager.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +name, +created, +port, +priority, +protocol, +service, +tag, +target, +ttl_sec, +type, +updated, +weight FROM linode.domains.records -WHERE page = '{{ page }}' +WHERE domainId = '{{ domainId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` @@ -290,28 +358,29 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Adds a new Domain Record to the zonefile this Domain represents.

Each domain can have up to 12,000 active records.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.domains.records ( -data__name, -data__port, -data__priority, -data__protocol, -data__service, -data__tag, -data__target, -data__ttl_sec, -data__type, -data__weight +name, +port, +priority, +protocol, +service, +tag, +target, +ttl_sec, +type, +weight, +domainId ) SELECT '{{ name }}', @@ -323,7 +392,8 @@ SELECT '{{ target }}', {{ ttl_sec }}, '{{ type }}' /* required */, -{{ weight }} +{{ weight }}, +'{{ domainId }}' RETURNING id, name, @@ -343,118 +413,90 @@ weight
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: records props: + - name: domainId + value: "{{ domainId }}" + description: Required parameter for the records resource. - name: name - value: string - description: > + value: "{{ name }}" + description: | __Filterable__ The name of this Record. For requests, this property's actual usage and whether it is required depends on the type of record this represents: - -`A` and `AAAA`: The hostname or FQDN of the Record. - -`NS`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (`*`) are not supported. - -`MX`: The mail subdomain. For example, `sub` for the address `user@sub.example.com` under the `example.com` Domain. - -- The left-most subdomain component may be an asterisk (`*`) to designate a wildcard subdomain. -- Other subdomain components must only contain letters, digits, and hyphens, start with a letter, end with a letter or digit, and contain less than 64 characters. -- Must be an empty string (`""`) for a Null MX Record. - -`CNAME`: The hostname. Must be unique. Required. - -`TXT`: The hostname. - -`SRV`: Unused. Use the `service` property to set the service name for this record. - -`CAA`: The subdomain. Omit or enter an empty string (`""`) to apply to the entire Domain. - -`PTR`: See our guide on how to [Configure Your Linode for Reverse DNS -(rDNS)](https://www.linode.com/docs/guides/configure-rdns/). - + \`A\` and \`AAAA\`: The hostname or FQDN of the Record. + \`NS\`: The subdomain, if any, to use with the Domain of the Record. Wildcard NS records (\`*\`) are not supported. + \`MX\`: The mail subdomain. For example, \`sub\` for the address \`user@sub.example.com\` under the \`example.com\` Domain. + - The left-most subdomain component may be an asterisk (\`*\`) to designate a wildcard subdomain. + - Other subdomain components must only contain letters, digits, and hyphens, start with a letter, end with a letter or digit, and contain less than 64 characters. + - Must be an empty string (\`""\`) for a Null MX Record. + \`CNAME\`: The hostname. Must be unique. Required. + \`TXT\`: The hostname. + \`SRV\`: Unused. Use the \`service\` property to set the service name for this record. + \`CAA\`: The subdomain. Omit or enter an empty string (\`""\`) to apply to the entire Domain. + \`PTR\`: See our guide on how to [Configure Your Linode for Reverse DNS + (rDNS)](https://www.linode.com/docs/guides/configure-rdns/). - name: port - value: integer - description: > + value: {{ port }} + description: | The port this Record points to. Only valid and required for SRV record requests. - - name: priority - value: integer - description: > + value: {{ priority }} + description: | The priority of the target host for this Record. Lower values are preferred. Only valid for MX and SRV record requests. Required for SRV record requests. - -Defaults to `0` for MX record requests. Must be `0` for Null MX records. - + Defaults to \`0\` for MX record requests. Must be \`0\` for Null MX records. - name: protocol - value: string - description: > - The protocol this Record's service communicates with. An underscore (`_`) is prepended automatically to the submitted value for this property. Only valid for SRV record requests. - + value: "{{ protocol }}" + description: | + The protocol this Record's service communicates with. An underscore (\`_\`) is prepended automatically to the submitted value for this property. Only valid for SRV record requests. - name: service - value: string - description: > - The name of the service. An underscore (`_`) is prepended and a period (`.`) is appended automatically to the submitted value for this property. Only valid and required for SRV record requests. - + value: "{{ service }}" + description: | + The name of the service. An underscore (\`_\`) is prepended and a period (\`.\`) is appended automatically to the submitted value for this property. Only valid and required for SRV record requests. - name: tag - value: string - description: > + value: "{{ tag }}" + description: | __Filterable__ The tag portion of a CAA record. Only valid and required for CAA record requests. - valid_values: ['issue', 'issuewild', 'iodef'] - name: target - value: string - description: > + value: "{{ target }}" + description: | __Filterable__ The target for this Record. For requests, this property's actual usage and whether it is required depends on the type of record this represents: - -`A` and `AAAA`: The IP address. Use `[remote_addr]` to submit the IPv4 address of the request. Required. - -`NS`: The name server. Must be a valid domain. Required. - -`MX`: The mail server. Must be a valid domain unless creating a Null MX Record. Required. - -- Must have less than 254 total characters. -- The left-most domain component may be an asterisk (`*`) to designate a wildcard domain. -- Other domain components must only contain letters, digits, and hyphens, start with a letter, end with a letter or digit, and contain less than 64 characters. -- To create a [Null MX Record](https://datatracker.ietf.org/doc/html/rfc7505), first [remove](https://techdocs.akamai.com/linode-api/reference/delete-domain-record) any additional MX records, then create an MX record with empty strings (`""`) for the `target` and `name`. If a Domain has a Null MX record, new MX records cannot be created. - -`CNAME`: The alias. Must be a valid domain. Required. - -`TXT`: The value. Required. - -`SRV`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain. -To configure for a different domain, enter a valid FQDN. For example, the value `www` with a Domain for -`example.com` results in a target set to `www.example.com`, whereas the value `sample.com` results in a -target set to `sample.com`. Required. - -`CAA`: The value. For `issue` or `issuewild` tags, the domain of your certificate issuer. For the `iodef` -tag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record: - - - `issue`: The domain of your certificate issuer. Must include a valid domain. May include additional parameters separated with semicolons (`;`), for example: `www.example.com; foo=bar` - - `issuewild`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (`*`). - - `iodef`: Must be either (1) a valid domain, (2) a valid domain prepended with `http://` or `https://`, or (3) a valid email address prepended with `mailto:`. - -`PTR`: Required. See our guide on how to [Configure Your Linode for Reverse DNS -(rDNS)](https://www.linode.com/docs/guides/configure-rdns/). - -With the exception of A, AAAA, and CAA records, this field accepts a trailing period. - + \`A\` and \`AAAA\`: The IP address. Use \`[remote_addr]\` to submit the IPv4 address of the request. Required. + \`NS\`: The name server. Must be a valid domain. Required. + \`MX\`: The mail server. Must be a valid domain unless creating a Null MX Record. Required. + - Must have less than 254 total characters. + - The left-most domain component may be an asterisk (\`*\`) to designate a wildcard domain. + - Other domain components must only contain letters, digits, and hyphens, start with a letter, end with a letter or digit, and contain less than 64 characters. + - To create a [Null MX Record](https://datatracker.ietf.org/doc/html/rfc7505), first [remove](https://techdocs.akamai.com/linode-api/reference/delete-domain-record) any additional MX records, then create an MX record with empty strings (\`""\`) for the \`target\` and \`name\`. If a Domain has a Null MX record, new MX records cannot be created. + \`CNAME\`: The alias. Must be a valid domain. Required. + \`TXT\`: The value. Required. + \`SRV\`: The target domain or subdomain. If a subdomain is entered, it is automatically used with the Domain. + To configure for a different domain, enter a valid FQDN. For example, the value \`www\` with a Domain for + \`example.com\` results in a target set to \`www.example.com\`, whereas the value \`sample.com\` results in a + target set to \`sample.com\`. Required. + \`CAA\`: The value. For \`issue\` or \`issuewild\` tags, the domain of your certificate issuer. For the \`iodef\` + tag, a contact or submission URL (domain, http, https, or mailto). Requirements depend on the tag for this record: + - \`issue\`: The domain of your certificate issuer. Must include a valid domain. May include additional parameters separated with semicolons (\`;\`), for example: \`www.example.com; foo=bar\` + - \`issuewild\`: The domain of your wildcard certificate issuer. Must be a valid domain and must not start with an asterisk (\`*\`). + - \`iodef\`: Must be either (1) a valid domain, (2) a valid domain prepended with \`http://\` or \`https://\`, or (3) a valid email address prepended with \`mailto:\`. + \`PTR\`: Required. See our guide on how to [Configure Your Linode for Reverse DNS + (rDNS)](https://www.linode.com/docs/guides/configure-rdns/). + With the exception of A, AAAA, and CAA records, this field accepts a trailing period. - name: ttl_sec - value: integer - description: > + value: {{ ttl_sec }} + description: | "Time to Live" - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value. - - name: type - value: string - description: > + value: "{{ type }}" + description: | __Filterable__ The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address. For more information, see the guides on [DNS Record Types](https://www.linode.com/docs/products/networking/dns-manager/guides/#dns-record-types). - valid_values: ['A', 'AAAA', 'NS', 'MX', 'CNAME', 'TXT', 'SRV', 'PTR', 'CAA'] - name: weight - value: integer - description: > + value: {{ weight }} + description: | The relative weight of this Record used in the case of identical priority. Higher values are preferred. Only valid and required for SRV record requests. - -``` +`} +
@@ -462,27 +504,30 @@ With the exception of A, AAAA, and CAA records, this field accepts a trailing pe ## `REPLACE` examples - + Updates a single Record on this Domain.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.domains.records SET -data__name = '{{ name }}', -data__port = {{ port }}, -data__priority = {{ priority }}, -data__protocol = '{{ protocol }}', -data__service = '{{ service }}', -data__tag = '{{ tag }}', -data__target = '{{ target }}', -data__ttl_sec = {{ ttl_sec }}, -data__weight = {{ weight }} +name = '{{ name }}', +port = {{ port }}, +priority = {{ priority }}, +protocol = '{{ protocol }}', +service = '{{ service }}', +tag = '{{ tag }}', +target = '{{ target }}', +ttl_sec = {{ ttl_sec }}, +weight = {{ weight }} +WHERE +domainId = '{{ domainId }}' --required +AND recordId = '{{ recordId }}' --required RETURNING id, name, @@ -505,17 +550,19 @@ weight; ## `DELETE` examples - + Deletes a Record on this Domain.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.domains.records +WHERE domainId = '{{ domainId }}' --required +AND recordId = '{{ recordId }}' --required ; ```
diff --git a/website/docs/services/domains/zone_file/index.md b/website/docs/services/domains/zone_file/index.md index 091baba..b6002e2 100644 --- a/website/docs/services/domains/zone_file/index.md +++ b/website/docs/services/domains/zone_file/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a zone_file resource. ## Overview - +
Namezone_file
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a zone_file resource. The following fields are returned by `SELECT` queries: - + An array containing the lines of the domain zone file. @@ -71,9 +72,9 @@ The following methods are available for this resource: - + - + domainId Returns the zone file for the last rendered zone for the specified domain.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -93,18 +94,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Domain. (example: {{domainId}}) + ## `SELECT` examples - + Returns the zone file for the last rendered zone for the specified domain.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -112,6 +118,7 @@ Returns the zone file for the last rendered zone for the specified domain.
SELECT * FROM linode.domains.zone_file +WHERE domainId = '{{ domainId }}' -- required ; ```
diff --git a/website/docs/services/images/images/index.md b/website/docs/services/images/images/index.md index 3a2bb7b..3a856df 100644 --- a/website/docs/services/images/images/index.md +++ b/website/docs/services/images/images/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an images resource. ## Overview - +
Nameimages
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an images resource. The following fields are returned by `SELECT` queries: - + A single image object. @@ -54,7 +55,7 @@ A single image object. string - __Read-only__ The unique identifier for each image. (example: linode/debian11) + __Read-only__ The unique identifier for each image. (example: private/15) @@ -74,7 +75,7 @@ A single image object. boolean - __Filterable__, __Read-only__ Whether this image is deprecated. Only public images can be deprecated. + __Filterable__, __Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated. @@ -84,17 +85,27 @@ A single image object. string (date-time) - __Read-only__ The date of the public image's planned removal from service. This is `null` for private images. (example: 2026-07-01T04:00:00) + __Read-only__ The time of the public image's planned removal from service. This is `null` for private images. (example: 2026-07-01T04:00:00) string (date-time) __Read-only__ Only images created automatically from a deleted compute instance (type=automatic) expire. This is `null` for private images. + + + object + Details about image sharing. (title: shared_with) + boolean - __Filterable__, __Read-only__ Revealed as `true` if the image is a public distribution image. Private, account-specific images are listed as `false`. + __Filterable__, __Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images. + + + + string + __Filterable__, __Read-only__ A `true` value for shared private images. `none` for images shared within a group. (true, false, none) @@ -114,7 +125,7 @@ A single image object. string - __Filterable__, __Read-only__ The current status of the image. Possible values are `available`, `creating`, and `pending_upload`. > 📘 > > The `+order_by` and `+order` operators are not available when [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) on this key. (example: available) + __Filterable__, __Read-only__ The current status of the image. Possible values are `available`, `creating`, and `pending_upload`. > 📘 > > The `+order_by` and `+order` operators are not available when [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) on this key. (creating, pending_upload, available) (example: available) @@ -129,7 +140,7 @@ A single image object. string - __Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance. (example: manual) + __Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image. (manual, automatic, shared) (example: manual) @@ -144,7 +155,7 @@ A single image object. - + A paginated list of images. @@ -158,24 +169,104 @@ A paginated list of images. - + + string + __Read-only__ The unique identifier for each image. (example: private/15) + + + array - + __Read-only__ A list of the possible capabilities of this image. - `cloud-init`. The image supports the cloud-init multi-distribution method with our [Metadata service](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/#troubleshoot-metadata-and-cloud-init). This only applies to public images. - `distributed-sites`. Whether the image can be used in distributed compute regions. Compared to a core compute region, distributed compute regions offer limited functionality, but they're globally distributed. Your image can be geographically closer to you, potentially letting you deploy it quicker. See [Regions and images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images) for complete details. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ When this image was created. (example: 2021-08-14T22:44:02) + + + + string + __Read-only__ The name of the user who created this image, or `linode` for public images. (example: linode) + + + + boolean + __Filterable__, __Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated. + + + + string + A detailed description of this image. (example: Example image description.) + + + + string (date-time) + __Read-only__ The time of the public image's planned removal from service. This is `null` for private images. (example: 2026-07-01T04:00:00) + + + + string (date-time) + __Read-only__ Only images created automatically from a deleted compute instance (type=automatic) expire. This is `null` for private images. + + + + + Details about image sharing. + + + + boolean + __Filterable__, __Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images. + + + + string + __Filterable__, __Read-only__ A `true` value for shared private images. `none` for images shared within a group. (true, false, none) + + + + string + __Filterable__ A short description of the image. (example: Debian 11) + + + + array + __Read-only__ Details on the regions where this image is stored. See [Regions and images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images) for full details on support for `regions`. (x-linode-cli-format: json) - + integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + __Filterable__, __Read-only__ The minimum size in MB this image needs to deploy. + + + + string + __Filterable__, __Read-only__ The current status of the image. Possible values are `available`, `creating`, and `pending_upload`. > 📘 > > The `+order_by` and `+order` operators are not available when [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) on this key. (creating, pending_upload, available) (example: available) - + + array + __Filterable__ Tags used for organizational purposes. A tag can be from 3 to 100 characters long, and an image can have a maximum of 500 total tags. + + + integer - __Read-only__ The total number of results. + __Read-only__ The total size in bytes of all instances of this image, in all `regions`. > 📘 > > This object is empty for existing images. It's intended for use with future functionality. + + + + string + __Filterable__, __Read-only__ How the image was created. Create a `manual` image at any time. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image. (manual, automatic, shared) (example: manual) + + + + string (date-time) + __Read-only__ When this image was last updated. (example: 2021-08-14T22:44:02) + + + + string + __Filterable__, __Read-only__ The upstream distribution vendor. This is `null` for private images. (example: Debian) @@ -198,51 +289,51 @@ The following methods are available for this resource: - + + imageId - - Get information about a single image. An image can be one of two types:

- **Public image**. The `id` for these images begins with `linode/`. These images are generally available to all users. To limit the response to public images, don't include [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication) when calling this operation.

- **Private image**. The `id` for these images begins with `private/`. These images are account-specific and only accessible to users with appropriate [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants). To view private images, you need to include authentication when calling this operation. The response will also include public images.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Get information about a single image. An image can be one of two types:

- **Public image**. The `id` for these images begins with `linode/`. These images are generally available to all users. To limit the response to public images, don't include [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication) when calling this operation.

- **Private image**. The `id` for these images begins with `private/`. These images are account-specific and only accessible to users with appropriate [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants). To view private images, you need to include authentication when calling this operation. The response will also include public images.

- **Shared image**. The `id` for these images begins with `shared/`. These are the images that are shared with the user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size - Returns a paginated list of images. An image can be one of two types:

- **Public image**. The `id` for these images begins with `linode/`. These images are generally available to all users. To limit the response to public images, don't include [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication) when calling this operation.

- **Private image**. The `id` for these images begins with `private/`. These images are account-specific and only accessible to users with appropriate [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants). To view private images, you need to include authentication when calling this operation. The response includes both private and public images.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a paginated list of images. An image can be one of two types:

- **Public image**. The `id` for these images begins with `linode/`. These images are generally available to all users. To limit the response to public images, don't include [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication) when calling this operation.

- **Private image**. The `id` for these images begins with `private/`. These images are account-specific and only accessible to users with appropriate [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants). To view private images, you need to include authentication when calling this operation. The response includes both private and public images.

- **Shared image**. The `id` for these images begins with `shared/`. These are the images that are shared with the user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__disk_id + disk_id - Captures a private, gold-master image from a Linode disk.

> 📘
>
> - When you capture an image, we store it using our Object Storage service. The `region` where the target image exists determines where the [resulting image is stored](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-captured-custom-images).
>
> - When you create a new image, we automatically encrypt it for its protection. Images remain encrypted at rest, in storage, in caching, and in transit. When you deploy an image to a [new](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-a-new-compute-instance) or [existing](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-an-existing-compute-instance) Linode, we automatically decrypt it. If you've enabled encryption for a Linode you want to create an image of, we also encrypt the image. When you deploy that image, the image is decrypted and the resulting disk will be automatically encrypted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Captures a private, gold-master image from a Linode disk and stores it for later use.

> 👍 There's a tutorial
>
> This operation has specific requirements for use. Check out its [workflow](https://techdocs.akamai.com/linode-api/reference/capture-an-image) for details.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + imageId Updates a private image that you have permission to `read_write`.

> 📘
>
> You can't update the `regions` with this operation. Use the [Replicate an image](https://techdocs.akamai.com/linode-api/reference/post-replicate-image) operation to modify the existing regions for your image.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + imageId Deletes a private image you have permission to `read_write`.

> 🚧
>
> - You can't undo this delete action.
>
> - When you delete an image, all [replicated instances](https://techdocs.akamai.com/linode-api/reference/post-replicate-image) of that image are also deleted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + label, region - Creates a new private image container and returns a URL as the `upload_to` object in the response. Use this URL to upload your own disk image to the container.

1. Ensure the disk image is raw disk image (`.img`) format.

2. Compress the disk image using gzip (`.gz`) format. Compressed, the file can be up to 5 GB and decompressed it can be up to 6 GB.

3. Upload the file in a separate PUT request that includes the `Content-type: application/octet-stream` header:

```
curl -v \
-H "Content-Type: application/octet-stream" \
--upload-file example.img.gz \
$UPLOAD_URL \
--progress-bar \
--output /dev/null
```

> 📘
>
> - You need to upload image data within 24 hours of creation or the API cancels the upload and deletes the image container.
>
> - Only core regions that support our [Object Storage](https://techdocs.akamai.com/cloud-computing/reference/how-to-choose-a-data-center#product-availability) service can store an uploaded image.
>
> - When you create a new image, we automatically encrypt it for its protection. Images remain encrypted at rest, in storage, in caching, and in transit. When you deploy an image to a [new](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-a-new-compute-instance) or [existing](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-an-existing-compute-instance) Linode, we automatically decrypt it. If you've enabled encryption for a Linode you want to create an image of, we also encrypt the image. When you deploy that image, the image is decrypted and the resulting disk will be automatically encrypted.
>
> - You can create a new image and upload image data using a single process through [Cloud Manager](https://www.linode.com/docs/products/tools/images/guides/upload-an-image/#uploading-an-image-file-through-the-cloud-manager) or the [Linode CLI](https://www.linode.com/docs/products/tools/images/guides/upload-an-image/#uploading-an-image-file-through-the-linode-cli).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Creates a new private image container and returns a URL as the `upload_to` object in the response. Use this URL to upload your own disk image to the container.

> 👍 There's a tutorial
>
> This operation has specific requirements for use. Check out its [workflow](https://techdocs.akamai.com/linode-api/reference/upload-an-image) for details.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + imageId Target an existing image and replicate it to another compute region.

> 📘
>
> As part of our limited promotional period, image replicas are free of charge until November 1, 2025. After this date, replicas will be subject to our standard monthly rate of $0.10/GB. When replicas become billable, your monthly charge will be calculated using the value returned in `total_size`, divided by 100. [Learn more](https://www.linode.com/blog/compute/image-service-improvements-akamai-cdn/).

- This is only available in a `region` that supports Object Storage, which stores the replicated image. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to review a region's `capabilities`.

- To replicate an image, it needs to have a `status` of `available`. Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation to view an image's `status`.

- To also keep the target image in its original compute region, you need to include that `region` in the request's data. If you leave it out, the API removes the image from that region. Run the [Get an image](https://techdocs.akamai.com/linode-api/reference/get-image) operation to see the `regions` where an image currently exists.

- You can't include an empty array to delete all images. You need to provide at least one compute `region` where the image is `available`. Use the [Delete an image](https://techdocs.akamai.com/linode-api/reference/delete-image) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -262,6 +353,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The unique identifier assigned to the image after creation. + integer @@ -278,15 +374,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Get information about a single image. An image can be one of two types:

- **Public image**. The `id` for these images begins with `linode/`. These images are generally available to all users. To limit the response to public images, don't include [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication) when calling this operation.

- **Private image**. The `id` for these images begins with `private/`. These images are account-specific and only accessible to users with appropriate [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants). To view private images, you need to include authentication when calling this operation. The response will also include public images.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Get information about a single image. An image can be one of two types:

- **Public image**. The `id` for these images begins with `linode/`. These images are generally available to all users. To limit the response to public images, don't include [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication) when calling this operation.

- **Private image**. The `id` for these images begins with `private/`. These images are account-specific and only accessible to users with appropriate [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants). To view private images, you need to include authentication when calling this operation. The response will also include public images.

- **Shared image**. The `id` for these images begins with `shared/`. These are the images that are shared with the user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -298,7 +394,9 @@ deprecated, description, eol, expiry, +image_sharing, is_public, +is_shared, label, regions, size, @@ -309,19 +407,36 @@ type, updated, vendor FROM linode.images.images +WHERE imageId = '{{ imageId }}' -- required ; ```
- + -Returns a paginated list of images. An image can be one of two types:

- **Public image**. The `id` for these images begins with `linode/`. These images are generally available to all users. To limit the response to public images, don't include [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication) when calling this operation.

- **Private image**. The `id` for these images begins with `private/`. These images are account-specific and only accessible to users with appropriate [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants). To view private images, you need to include authentication when calling this operation. The response includes both private and public images.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of images. An image can be one of two types:

- **Public image**. The `id` for these images begins with `linode/`. These images are generally available to all users. To limit the response to public images, don't include [authentication](https://techdocs.akamai.com/linode-api/reference/get-started#authentication) when calling this operation.

- **Private image**. The `id` for these images begins with `private/`. These images are account-specific and only accessible to users with appropriate [grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants). To view private images, you need to include authentication when calling this operation. The response includes both private and public images.

- **Shared image**. The `id` for these images begins with `shared/`. These are the images that are shared with the user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +capabilities, +created, +created_by, +deprecated, +description, +eol, +expiry, +image_sharing, +is_public, +is_shared, +label, +regions, +size, +status, +tags, +total_size, +type, +updated, +vendor FROM linode.images.images WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -334,23 +449,23 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + -Captures a private, gold-master image from a Linode disk.

> 📘
>
> - When you capture an image, we store it using our Object Storage service. The `region` where the target image exists determines where the [resulting image is stored](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-captured-custom-images).
>
> - When you create a new image, we automatically encrypt it for its protection. Images remain encrypted at rest, in storage, in caching, and in transit. When you deploy an image to a [new](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-a-new-compute-instance) or [existing](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-an-existing-compute-instance) Linode, we automatically decrypt it. If you've enabled encryption for a Linode you want to create an image of, we also encrypt the image. When you deploy that image, the image is decrypted and the resulting disk will be automatically encrypted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Captures a private, gold-master image from a Linode disk and stores it for later use.

> 👍 There's a tutorial
>
> This operation has specific requirements for use. Check out its [workflow](https://techdocs.akamai.com/linode-api/reference/capture-an-image) for details.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.images.images ( -data__cloud_init, -data__description, -data__disk_id, -data__label, -data__tags +cloud_init, +description, +disk_id, +label, +tags ) SELECT {{ cloud_init }}, @@ -367,7 +482,9 @@ deprecated, description, eol, expiry, +image_sharing, is_public, +is_shared, label, regions, size, @@ -382,36 +499,32 @@ vendor
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: images props: - name: cloud_init - value: boolean - description: > + value: {{ cloud_init }} + description: | Whether this image supports [cloud-init](https://www.linode.com/docs/guides/write-files-with-cloud-init/). - - name: description - value: string - description: > + value: "{{ description }}" + description: | A detailed description of this image. - - name: disk_id - value: integer - description: > + value: {{ disk_id }} + description: | The ID of the target Linode disk for this image. - - name: label - value: string - description: > + value: "{{ label }}" + description: | The short title for this image. If not provided, the disk's current label is used. - - name: tags - value: array - description: > + value: + - "{{ tags }}" + description: | Tags used for organizational purposes. A tag can be from 3 to 100 characters long, and an image can have a maximum of 500 total tags. - -``` +`} +
@@ -419,21 +532,23 @@ vendor ## `REPLACE` examples - + Updates a private image that you have permission to `read_write`.

> 📘
>
> You can't update the `regions` with this operation. Use the [Replicate an image](https://techdocs.akamai.com/linode-api/reference/post-replicate-image) operation to modify the existing regions for your image.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.images.images SET -data__description = '{{ description }}', -data__label = '{{ label }}', -data__tags = '{{ tags }}' +description = '{{ description }}', +label = '{{ label }}', +tags = '{{ tags }}' +WHERE +imageId = '{{ imageId }}' --required RETURNING id, capabilities, @@ -443,7 +558,9 @@ deprecated, description, eol, expiry, +image_sharing, is_public, +is_shared, label, regions, size, @@ -461,17 +578,18 @@ vendor; ## `DELETE` examples - + Deletes a private image you have permission to `read_write`.

> 🚧
>
> - You can't undo this delete action.
>
> - When you delete an image, all [replicated instances](https://techdocs.akamai.com/linode-api/reference/post-replicate-image) of that image are also deleted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.images.images +WHERE imageId = '{{ imageId }}' --required ; ```
@@ -481,18 +599,18 @@ DELETE FROM linode.images.images ## Lifecycle Methods - + -Creates a new private image container and returns a URL as the `upload_to` object in the response. Use this URL to upload your own disk image to the container.

1. Ensure the disk image is raw disk image (`.img`) format.

2. Compress the disk image using gzip (`.gz`) format. Compressed, the file can be up to 5 GB and decompressed it can be up to 6 GB.

3. Upload the file in a separate PUT request that includes the `Content-type: application/octet-stream` header:

```
curl -v \
-H "Content-Type: application/octet-stream" \
--upload-file example.img.gz \
$UPLOAD_URL \
--progress-bar \
--output /dev/null
```

> 📘
>
> - You need to upload image data within 24 hours of creation or the API cancels the upload and deletes the image container.
>
> - Only core regions that support our [Object Storage](https://techdocs.akamai.com/cloud-computing/reference/how-to-choose-a-data-center#product-availability) service can store an uploaded image.
>
> - When you create a new image, we automatically encrypt it for its protection. Images remain encrypted at rest, in storage, in caching, and in transit. When you deploy an image to a [new](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-a-new-compute-instance) or [existing](https://techdocs.akamai.com/cloud-computing/docs/deploy-an-image-to-an-existing-compute-instance) Linode, we automatically decrypt it. If you've enabled encryption for a Linode you want to create an image of, we also encrypt the image. When you deploy that image, the image is decrypted and the resulting disk will be automatically encrypted.
>
> - You can create a new image and upload image data using a single process through [Cloud Manager](https://www.linode.com/docs/products/tools/images/guides/upload-an-image/#uploading-an-image-file-through-the-cloud-manager) or the [Linode CLI](https://www.linode.com/docs/products/tools/images/guides/upload-an-image/#uploading-an-image-file-through-the-linode-cli).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Creates a new private image container and returns a URL as the `upload_to` object in the response. Use this URL to upload your own disk image to the container.

> 👍 There's a tutorial
>
> This operation has specific requirements for use. Check out its [workflow](https://techdocs.akamai.com/linode-api/reference/upload-an-image) for details.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.images.images.post_upload_image +EXEC linode.images.images.upload @@json= '{ "cloud_init": {{ cloud_init }}, @@ -504,12 +622,13 @@ EXEC linode.images.images.post_upload_image ; ```
- + Target an existing image and replicate it to another compute region.

> 📘
>
> As part of our limited promotional period, image replicas are free of charge until November 1, 2025. After this date, replicas will be subject to our standard monthly rate of $0.10/GB. When replicas become billable, your monthly charge will be calculated using the value returned in `total_size`, divided by 100. [Learn more](https://www.linode.com/blog/compute/image-service-improvements-akamai-cdn/).

- This is only available in a `region` that supports Object Storage, which stores the replicated image. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to review a region's `capabilities`.

- To replicate an image, it needs to have a `status` of `available`. Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation to view an image's `status`.

- To also keep the target image in its original compute region, you need to include that `region` in the request's data. If you leave it out, the API removes the image from that region. Run the [Get an image](https://techdocs.akamai.com/linode-api/reference/get-image) operation to see the `regions` where an image currently exists.

- You can't include an empty array to delete all images. You need to provide at least one compute `region` where the image is `available`. Use the [Delete an image](https://techdocs.akamai.com/linode-api/reference/delete-image) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.images.images.post_replicate_image +EXEC linode.images.images.replicate +@imageId='{{ imageId }}' --required @@json= '{ "regions": "{{ regions }}" diff --git a/website/docs/services/images/index.md b/website/docs/services/images/index.md index 8d0872b..46ed1b7 100644 --- a/website/docs/services/images/index.md +++ b/website/docs/services/images/index.md @@ -18,16 +18,19 @@ images service documentation. :::info[Service Summary] -total resources: __1__ +total resources: __5__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/images/sharegroup_images/index.md b/website/docs/services/images/sharegroup_images/index.md new file mode 100644 index 0000000..2bfa090 --- /dev/null +++ b/website/docs/services/images/sharegroup_images/index.md @@ -0,0 +1,563 @@ +--- +title: sharegroup_images +hide_title: false +hide_table_of_contents: false +keywords: + - sharegroup_images + - images + - linode + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage linode resources using SQL +custom_edit_url: null +image: /img/stackql-linode-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 sharegroup_images resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A paginated list of shared images in a share group. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string__Read-only__ The shared image's unique idenfifier. (example: shared/1)
array__Read-only__ A list of the possible capabilities of this image.
string (date-time)__Read-only__ When this image share was created. (example: 2025-08-04T10:07:59)
string__Read-only__ The shared image creator's username.
boolean__Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated.
stringThe shared image's detailed description. (example: Official Debian Linux image for server deployment)
string (date-time)__Read-only__ The time of the public image's planned removal from service. `null` for private images.
string (date-time)__Read-only__ Only images created automatically from a deleted compute instance (`type=automatic`) expire, `null` for private images.
object__Read-only__ Sharing information for the image, including who it was shared by and with.
boolean__Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images.
string__Read-only__ A `true` value for shared private images. `none` for images shared within a group. (true, false, none) (example: none)
string__Filterable__ The shared image's name. (example: Linux Debian)
array__Filterable__, __Read-only__ Details on the regions where this image is stored. See [Regions and images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images) for full details on support for `regions`.
integer__Read-only__ The minimum size in MB this image needs to deploy.
string__Read-only__ The current status of the image. Possible values are `available`, `creating`, and `pending_upload`. (creating, pending_upload, available) (example: available)
array__Filterable__, __Read-only__ The shared image's organizational tags. A tag can be from 3 to 100 characters long, and each image can include up to 500 tags.
integer__Read-only__ The total size in bytes of all instances of this image, in all `regions`.
string__Filterable__, __Read-only__ Indicates how the image was created. It's always `shared` for images in a shared group. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image. (manual, automatic, shared) (example: shared)
string (date-time)__Read-only__ When this image share was last updated.
string__Read-only__ The upstream distribution vendor, `null` for private and shared images.
+
+ + +Returns a paginated list of shared images within a given group. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string__Read-only__ The shared image's unique idenfifier. (example: shared/1)
array__Read-only__ A list of the possible capabilities of this image.
string (date-time)__Read-only__ When this image share was created. (example: 2025-08-04T10:07:59)
string__Read-only__ The shared image creator's username.
boolean__Read-only__ A `true` value indicates a deprecated image. Only public images can be deprecated.
stringThe shared image's detailed description. (example: Official Debian Linux image for server deployment)
string (date-time)__Read-only__ The time of the public image's planned removal from service. `null` for private images.
string (date-time)__Read-only__ Only images created automatically from a deleted compute instance (`type=automatic`) expire, `null` for private images.
object__Read-only__ Sharing information for the image, including who it was shared by and with.
boolean__Read-only__ A `true` value if the image is a public distribution image. A `false` value indicates private, account-specific images.
string__Read-only__ A `true` value for shared private images. `none` for images shared within a group. (true, false, none) (example: none)
string__Filterable__ The shared image's name. (example: Linux Debian)
array__Filterable__, __Read-only__ Details on the regions where this image is stored. See [Regions and images](https://techdocs.akamai.com/cloud-computing/docs/images#regions-and-images) for full details on support for `regions`.
integer__Read-only__ The minimum size in MB this image needs to deploy.
string__Read-only__ The current status of the image. Possible values are `available`, `creating`, and `pending_upload`. (creating, pending_upload, available) (example: available)
array__Filterable__, __Read-only__ The shared image's organizational tags. A tag can be from 3 to 100 characters long, and each image can include up to 500 tags.
integer__Read-only__ The total size in bytes of all instances of this image, in all `regions`.
string__Filterable__, __Read-only__ Indicates how the image was created. It's always `shared` for images in a shared group. An `automatic` image is created automatically from a deleted compute instance. Other users within share groups can access a `shared` image. (manual, automatic, shared) (example: shared)
string (date-time)__Read-only__ When this image share was last updated.
string__Read-only__ The upstream distribution vendor, `null` for private and shared images.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
tokenUuidLists all the shared images a member can access within a share group, using a membership token. To get the `token_uuid`, run the [Get a token](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-token) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
sharegroupIdGet the details about images shared in a particular group you own.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
sharegroupId, imagesAdds images to an existing group where you can share them with other members.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

- Run the [Get an image](https://techdocs.akamai.com/linode-api/reference/get-image) operation to see the existing images' `id` values. If needed, [Create an image](https://techdocs.akamai.com/linode-api/reference/post-image) or [Upload an image](https://techdocs.akamai.com/linode-api/reference/post-upload-image).

- You can set a `label` and `description` for each image, visible to all group members. If omitted, the shared image keeps the original image's details. Note that when you [Update the original image](https://techdocs.akamai.com/linode-api/reference/put-image), it has no effect on a shared image's details within any groups.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
sharegroupId, imageIdUpdates the details of an image shared within a share group. Run this operation to edit the `label` and `description` of a particular shared image.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group. To get the `imageID`, run the [List shared images by group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-images) operation.

- You can update either of the fields, but when you provide a new `label`, make sure that it's not an empty string.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
sharegroupId, imageIdRevokes access to a shared image within an owned group for all members.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group. To get the `imageID`, run the [List shared images by group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-images) operation.

- To add a private image back to a share group, run the [Add images to a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-images).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ +## 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. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSlug identifier assigned to the shared image upon sharing.
stringThe share group's unique identifier assigned after creating it. Not to be confused with the group's `uuid`.
string (uuid)A unique identifier for the token, used to reference it after creation.
+ +## `SELECT` examples + + + + +Lists all the shared images a member can access within a share group, using a membership token. To get the `token_uuid`, run the [Get a token](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-token) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +SELECT +id, +capabilities, +created, +created_by, +deprecated, +description, +eol, +expiry, +image_sharing, +is_public, +is_shared, +label, +regions, +size, +status, +tags, +total_size, +type, +updated, +vendor +FROM linode.images.sharegroup_images +WHERE tokenUuid = '{{ tokenUuid }}' -- required +; +``` +
+ + +Get the details about images shared in a particular group you own.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +SELECT +id, +capabilities, +created, +created_by, +deprecated, +description, +eol, +expiry, +image_sharing, +is_public, +is_shared, +label, +regions, +size, +status, +tags, +total_size, +type, +updated, +vendor +FROM linode.images.sharegroup_images +WHERE sharegroupId = '{{ sharegroupId }}' -- required +; +``` +
+
+ + +## `INSERT` examples + + + + +Adds images to an existing group where you can share them with other members.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

- Run the [Get an image](https://techdocs.akamai.com/linode-api/reference/get-image) operation to see the existing images' `id` values. If needed, [Create an image](https://techdocs.akamai.com/linode-api/reference/post-image) or [Upload an image](https://techdocs.akamai.com/linode-api/reference/post-upload-image).

- You can set a `label` and `description` for each image, visible to all group members. If omitted, the shared image keeps the original image's details. Note that when you [Update the original image](https://techdocs.akamai.com/linode-api/reference/put-image), it has no effect on a shared image's details within any groups.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +INSERT INTO linode.images.sharegroup_images ( +images, +sharegroupId +) +SELECT +'{{ images }}' /* required */, +'{{ sharegroupId }}' +RETURNING +id, +capabilities, +created, +created_by, +deprecated, +description, +eol, +expiry, +image_sharing, +is_public, +is_shared, +label, +regions, +size, +status, +tags, +total_size, +type, +updated, +vendor +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: sharegroup_images + props: + - name: sharegroupId + value: "{{ sharegroupId }}" + description: Required parameter for the sharegroup_images resource. + - name: images + value: + - description: "{{ description }}" + id: "{{ id }}" + label: "{{ label }}" +`} + + +
+ + +## `REPLACE` examples + + + + +Updates the details of an image shared within a share group. Run this operation to edit the `label` and `description` of a particular shared image.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group. To get the `imageID`, run the [List shared images by group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-images) operation.

- You can update either of the fields, but when you provide a new `label`, make sure that it's not an empty string.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +REPLACE linode.images.sharegroup_images +SET +description = '{{ description }}', +label = '{{ label }}' +WHERE +sharegroupId = '{{ sharegroupId }}' --required +AND imageId = '{{ imageId }}' --required +RETURNING +id, +capabilities, +created, +created_by, +deprecated, +description, +eol, +expiry, +image_sharing, +is_public, +is_shared, +label, +regions, +size, +status, +tags, +total_size, +type, +updated, +vendor; +``` +
+
+ + +## `DELETE` examples + + + + +Revokes access to a shared image within an owned group for all members.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group. To get the `imageID`, run the [List shared images by group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-images) operation.

- To add a private image back to a share group, run the [Add images to a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-images).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +DELETE FROM linode.images.sharegroup_images +WHERE sharegroupId = '{{ sharegroupId }}' --required +AND imageId = '{{ imageId }}' --required +; +``` +
+
diff --git a/website/docs/services/images/sharegroup_members/index.md b/website/docs/services/images/sharegroup_members/index.md new file mode 100644 index 0000000..c11c14a --- /dev/null +++ b/website/docs/services/images/sharegroup_members/index.md @@ -0,0 +1,368 @@ +--- +title: sharegroup_members +hide_title: false +hide_table_of_contents: false +keywords: + - sharegroup_members + - images + - linode + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage linode resources using SQL +custom_edit_url: null +image: /img/stackql-linode-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 sharegroup_members resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A single token object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string (date-time)__Read-only__ When the user became the share group's member. (example: 2025-08-04T10:07:59)
string (date-time)__Read-only__ When the user's share group membership expires.
stringThe share group member's descriptive name. (example: Engineering - Backend)
string__Read-only__ The current membership status. Share group members can be `active` or `revoked`. Revoked members' data remains available for two weeks after they left a share group. (active, revoked) (example: active)
string__Read-only__ The membership token's unique identifier. Not to be confused with the `token` needed to add a member to the share group. (example: 4591075e-4ba8-43c9-a521-928c3d4a135d)
string (date-time)__Read-only__ When the user's share group membership was last updated.
+
+ + +Returns a paginated list of the current members linked to the targeted share group. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string (date-time)__Read-only__ When the user became the share group's member. (example: 2025-08-04T10:07:59)
string (date-time)__Read-only__ When the user's share group membership expires.
string__Filterable__ The share group member's descriptive name. (example: Engineering - Backend)
string__Filterable__, __Read-only__ The current membership status. Share group members can be `active` or `revoked`. Revoked members' data remains available for two weeks after they left a share group. (active, revoked) (example: active)
string__Filterable__, __Read-only__ The membership token's unique identifier. Not to be confused with the `token` needed to add a member to the share group. (example: 4591075e-4ba8-43c9-a521-928c3d4a135d)
string (date-time)__Read-only__ When the user's share group membership was last updated.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
sharegroupId, tokenUuidGet details about a membership token as a share group owner. Run this operation to check the `status` of a pending membership request or a current group member.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

- Get the `token_uuid` from the user who wants to join your share group or run the [List members by share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-members) operation for details on current group members.

- To get details about a token as a current or pending group member, run the [Get a token](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-token) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
sharegroupIdGet the details about all members in a particular share group you own.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
sharegroupId, token, labelAdds users to existing shared private image groups as a group owner.

- Adding new members to share groups requires a single-use token. The user who wants to join a share group should run [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) and share the `token` from the response with the group owner.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
sharegroupId, tokenUuid, labelUpdates an existing membership token for a group owner. You can change each token's `label` that will be visible only to you, such as when you [Get members by share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-members).

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

- Run the [List members by share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-members) operation to get the `token_uuid` for a current group member.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
sharegroupId, tokenUuidRevokes a membership token accepted into a share group. Members with `revoked` status immediately lose access to shared images, and can't deploy them anymore.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

- Run the [List members by share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-members) operation to get the `token_uuid` for a current group member. After revoking a membership, you can run this operation to check its status.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ +## 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. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe share group's unique identifier assigned after creating it. Not to be confused with the group's `uuid`.
string (uuid)A unique identifier for the token, used to reference it after creation.
+ +## `SELECT` examples + + + + +Get details about a membership token as a share group owner. Run this operation to check the `status` of a pending membership request or a current group member.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

- Get the `token_uuid` from the user who wants to join your share group or run the [List members by share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-members) operation for details on current group members.

- To get details about a token as a current or pending group member, run the [Get a token](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-token) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +SELECT +created, +expiry, +label, +status, +token_uuid, +updated +FROM linode.images.sharegroup_members +WHERE sharegroupId = '{{ sharegroupId }}' -- required +AND tokenUuid = '{{ tokenUuid }}' -- required +; +``` +
+ + +Get the details about all members in a particular share group you own.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +SELECT +created, +expiry, +label, +status, +token_uuid, +updated +FROM linode.images.sharegroup_members +WHERE sharegroupId = '{{ sharegroupId }}' -- required +; +``` +
+
+ + +## `INSERT` examples + + + + +Adds users to existing shared private image groups as a group owner.

- Adding new members to share groups requires a single-use token. The user who wants to join a share group should run [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) and share the `token` from the response with the group owner.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +INSERT INTO linode.images.sharegroup_members ( +label, +token, +sharegroupId +) +SELECT +'{{ label }}' /* required */, +'{{ token }}' /* required */, +'{{ sharegroupId }}' +RETURNING +created, +expiry, +label, +status, +token_uuid, +updated +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: sharegroup_members + props: + - name: sharegroupId + value: "{{ sharegroupId }}" + description: Required parameter for the sharegroup_members resource. + - name: label + value: "{{ label }}" + description: | + The share group member's descriptive name. + - name: token + value: "{{ token }}" + description: | + The single-use JWT membership token encoded as a string. It consists of three parts: header, payload, and signature. If needed, the user should [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) and share it with the group owner before joining. +`} + + +
+ + +## `REPLACE` examples + + + + +Updates an existing membership token for a group owner. You can change each token's `label` that will be visible only to you, such as when you [Get members by share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-members).

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

- Run the [List members by share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-members) operation to get the `token_uuid` for a current group member.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +REPLACE linode.images.sharegroup_members +SET +label = '{{ label }}' +WHERE +sharegroupId = '{{ sharegroupId }}' --required +AND tokenUuid = '{{ tokenUuid }}' --required +AND label = '{{ label }}' --required +RETURNING +created, +expiry, +label, +status, +token_uuid, +updated; +``` +
+
+ + +## `DELETE` examples + + + + +Revokes a membership token accepted into a share group. Members with `revoked` status immediately lose access to shared images, and can't deploy them anymore.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

- Run the [List members by share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-members) operation to get the `token_uuid` for a current group member. After revoking a membership, you can run this operation to check its status.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +DELETE FROM linode.images.sharegroup_members +WHERE sharegroupId = '{{ sharegroupId }}' --required +AND tokenUuid = '{{ tokenUuid }}' --required +; +``` +
+
diff --git a/website/docs/services/images/sharegroup_tokens/index.md b/website/docs/services/images/sharegroup_tokens/index.md new file mode 100644 index 0000000..7a6fc9c --- /dev/null +++ b/website/docs/services/images/sharegroup_tokens/index.md @@ -0,0 +1,397 @@ +--- +title: sharegroup_tokens +hide_title: false +hide_table_of_contents: false +keywords: + - sharegroup_tokens + - images + - linode + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage linode resources using SQL +custom_edit_url: null +image: /img/stackql-linode-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 sharegroup_tokens resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A single token object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string (date-time)__Read-only__ When this token was created. (example: 2025-08-04T10:09:09)
string (date-time)__Read-only__ When this token expires.
stringA short description of the token. (example: Backend Services - Engineering)
string__Read-only__ The share group's descriptive name. (example: DevOps Base Images)
string__Read-only__ The share group's unique identifier. (example: e1d0e58b-f89f-4237-84ab-b82077342359)
string__Read-only__ Represents the current token status. - `pending`: The token has been created but is not yet active. - `active`: The token is currently active and usable. - `revoked`: The token has been deleted and is no longer valid. - `expired`: The token has passed its validity period and is no longer usable. (pending, active, revoked, expired) (example: active)
string__Read-only__ A unique identifier for the token, used to reference it after creation. (example: 13428362-5458-4dad-b14b-8d0d4d648f8c)
string (date-time)__Read-only__ When this token was last updated.
string__Read-only__ The unique identifier of the share group you created a token for. (example: e1d0e58b-f89f-4237-84ab-b82077342359)
+
+ + +Returns a paginated list of the tokens. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string (date-time)__Read-only__ The creation time of this token. (example: 2025-08-04T10:09:09)
string (date-time)__Read-only__ The time when this token expires.
string__Filterable__ A short description of the token. (example: Backend Services - Engineering)
string__Filterable__, __Read-only__ Associated share group label. (example: DevOps Base Images)
string__Filterable__, __Read-only__ The unique identifier of the share group you created a token for. (example: e1d0e58b-f89f-4237-84ab-b82077342359)
string__Filterable__, __Read-only__ Represents the current token status. - `pending`: The token has been created but is not yet active. - `active`: The token is currently active and usable. - `revoked`: The token has been deleted and is no longer valid. - `expired`: The token has passed its validity period and is no longer usable. (pending, active, revoked, expired) (example: active)
string__Read-only__ A unique identifier for the token, used to reference it after creation. (example: 13428362-5458-4dad-b14b-8d0d4d648f8c)
string (date-time)__Read-only__ The time when this token was last updated.
string__Filterable__, __Read-only__ UUID identifying the associated share group. (example: e1d0e58b-f89f-4237-84ab-b82077342359)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
tokenUuidGet details about a membership token as a share group member. Run this operation to check the `status` of a pending membership request or your current group membership.

- To get the `token_uuid`, run the [List tokens](https://techdocs.akamai.com/linode-api/reference/get-user-tokens) or [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) operation to generate one for the share group you want to join.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
Get details about all the user's tokens.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
valid_for_sharegroup_uuidCreates a single-use membership token for users who want to join a share group with custom images.

- Before creating a token, get the share group's UUID from its owner. The owner can run [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) or [Get a share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup) to get the group's UUID. If needed, [Create a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroups) and share the UUID with the user.

- Share the `token` from the response with the share group owner. The owner can later use the token to [Add members to a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-members) and manage the users' membership within the group.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
tokenUuid, labelUpdates the `label` of an existing membership token for a share group member or a pending membership.

To get the `token_uuid`, run the [List tokens](https://techdocs.akamai.com/linode-api/reference/get-user-tokens) or [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) operation to generate one for the share group you want to join.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
tokenUuidRemoves an existing membership token for a share group member or a pending membership.

- To get the `token_uuid`, run the [List tokens](https://techdocs.akamai.com/linode-api/reference/get-user-tokens) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ +## 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. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string (uuid)A unique identifier for the token, used to reference it after creation.
+ +## `SELECT` examples + + + + +Get details about a membership token as a share group member. Run this operation to check the `status` of a pending membership request or your current group membership.

- To get the `token_uuid`, run the [List tokens](https://techdocs.akamai.com/linode-api/reference/get-user-tokens) or [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) operation to generate one for the share group you want to join.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +SELECT +created, +expiry, +label, +sharegroup_label, +sharegroup_uuid, +status, +token_uuid, +updated, +valid_for_sharegroup_uuid +FROM linode.images.sharegroup_tokens +WHERE tokenUuid = '{{ tokenUuid }}' -- required +; +``` +
+ + +Get details about all the user's tokens.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +SELECT +created, +expiry, +label, +sharegroup_label, +sharegroup_uuid, +status, +token_uuid, +updated, +valid_for_sharegroup_uuid +FROM linode.images.sharegroup_tokens +; +``` +
+
+ + +## `INSERT` examples + + + + +Creates a single-use membership token for users who want to join a share group with custom images.

- Before creating a token, get the share group's UUID from its owner. The owner can run [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) or [Get a share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup) to get the group's UUID. If needed, [Create a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroups) and share the UUID with the user.

- Share the `token` from the response with the share group owner. The owner can later use the token to [Add members to a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-members) and manage the users' membership within the group.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +INSERT INTO linode.images.sharegroup_tokens ( +label, +valid_for_sharegroup_uuid +) +SELECT +'{{ label }}', +'{{ valid_for_sharegroup_uuid }}' /* required */ +RETURNING +created, +expiry, +label, +sharegroup_label, +sharegroup_uuid, +status, +token, +token_uuid, +updated, +valid_for_sharegroup_uuid +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: sharegroup_tokens + props: + - name: label + value: "{{ label }}" + description: | + The token's descriptive name. + - name: valid_for_sharegroup_uuid + value: "{{ valid_for_sharegroup_uuid }}" + description: | + The unique identifier of the share group you want to create a token for. +`} + + +
+ + +## `REPLACE` examples + + + + +Updates the `label` of an existing membership token for a share group member or a pending membership.

To get the `token_uuid`, run the [List tokens](https://techdocs.akamai.com/linode-api/reference/get-user-tokens) or [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) operation to generate one for the share group you want to join.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +REPLACE linode.images.sharegroup_tokens +SET +label = '{{ label }}' +WHERE +tokenUuid = '{{ tokenUuid }}' --required +AND label = '{{ label }}' --required +RETURNING +created, +expiry, +label, +sharegroup_label, +sharegroup_uuid, +status, +token_uuid, +updated, +valid_for_sharegroup_uuid; +``` +
+
+ + +## `DELETE` examples + + + + +Removes an existing membership token for a share group member or a pending membership.

- To get the `token_uuid`, run the [List tokens](https://techdocs.akamai.com/linode-api/reference/get-user-tokens) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +DELETE FROM linode.images.sharegroup_tokens +WHERE tokenUuid = '{{ tokenUuid }}' --required +; +``` +
+
diff --git a/website/docs/services/images/sharegroups/index.md b/website/docs/services/images/sharegroups/index.md new file mode 100644 index 0000000..6d6db7f --- /dev/null +++ b/website/docs/services/images/sharegroups/index.md @@ -0,0 +1,615 @@ +--- +title: sharegroups +hide_title: false +hide_table_of_contents: false +keywords: + - sharegroups + - images + - linode + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage linode resources using SQL +custom_edit_url: null +image: /img/stackql-linode-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 sharegroups resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A single share group object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer__Read-only__ The share group's numeric identifier, used primarily as path parameters in URLs.
string (date-time)__Read-only__ When this share group was created. (example: 2025-04-14T22:44:02)
stringA detailed description of this share group. (example: Group of base operating system images and engineers used for CI/CD pipelines and infrastructure automation)
boolean__Read-only__ If `true`, the share group is currently suspended.
stringThe share group's descriptive name. (example: DevOps Base Images)
string (date-time)__Read-only__ When this share group was last updated.
string (uuid)__Read-only__ The share group's unique identifier used for membership token management. (example: 1533863e-16a4-47b5-b829-ac0f35c13278)
+
+ + +A single share group object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer__Read-only__ The share group's numeric identifier, used primarily as path parameters in URLs.
string (date-time)__Read-only__ When this share group was created. (example: 2025-04-14T22:44:02)
stringA detailed description of this share group. (example: Group of base operating system images and engineers used for CI/CD pipelines and infrastructure automation)
string (date-time)__Read-only__ When the share group expires.
integer__Read-only__ The total number of images currently belonging to the share group.
boolean__Read-only__ If `true`, the share group is currently suspended.
stringThe share group's descriptive name. (example: DevOps Base Images)
integer__Read-only__ The number of users with access to the share group.
string (date-time)__Read-only__ When this share group was last updated.
string (uuid)__Read-only__ The share group's unique identifier used for membership token management. (example: 1533863e-16a4-47b5-b829-ac0f35c13278)
+
+ + +Returns a paginated list of share groups. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe share group's numeric identifier, used primarily as path parameters in URLs.
string (date-time)__Read-only__ When this share group was created. (example: 2025-04-14T22:44:02)
stringThe share group's detailed description. (example: Group of base operating system images and engineers used for CI/CD pipelines and infrastructure automation)
string (date-time)__Read-only__ When the share group expires.
integer__Read-only__ The total number of images currently belonging to the share group.
boolean__Read-only__ Indicates whether the share group is currently suspended.
string__Filterable__ The share group's descriptive name. (example: DevOps Base Images)
integer__Read-only__ The number of users with access to the share group.
string (date-time)__Read-only__ When this share group was last updated.
string (uuid)The share group's unique identifier used for membership token management. (example: 1533863e-16a4-47b5-b829-ac0f35c13278)
+
+ + +A paginated list of sharegroups. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe share group's numeric identifier, used primarily as path parameters in URLs.
string (date-time)__Read-only__ When this share group was created. (example: 2025-04-14T22:44:02)
stringThe share group's detailed description. (example: Group of base operating system images and engineers used for CI/CD pipelines and infrastructure automation)
string (date-time)__Read-only__ When the share group expires.
integer__Read-only__ The total number of images currently belonging to the share group.
boolean__Read-only__ Indicates whether the share group is currently suspended.
string__Filterable__ The share group's descriptive name. (example: DevOps Base Images)
integer__Read-only__ The number of users with access to the share group.
string (date-time)__Read-only__ When this share group was last updated.
string (uuid)The share group's unique identifier used for membership token management. (example: 1533863e-16a4-47b5-b829-ac0f35c13278)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
tokenUuidGets details about a share group you're a member of.

To get the `token_uuid`, run the [Get a token](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-token) or [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) for the share group you want to join and share it with the group owner. You have to be accepted as a share group member before running this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
sharegroupIdGet information about an owned share group. Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

- If the `sharegroupId` in the request body belongs to a group you don't own, calling this API will result in a 404 error.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
imageIdLists all owned share groups where a given private image is currently shared. Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation. Store the `id` for the target image as your `{imageId}`, for use in this operation's URL path.

> 📘
>
> This operation returns an empty list for shared and distribution image IDs.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
page, page_sizeLists all owned groups with shared images.

> 📘
>
> This operation doesn't list groups you're a member of. Run [Get a token's share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-by-token) to find these share groups using your membership token.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
labelCreates a group to share images with other users.

- Include existing `images` in the request or [Add images to a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-images) later. Run the [Get an image](https://techdocs.akamai.com/linode-api/reference/get-image) operation to see the existing images' `id` values. If needed, [Create an image](https://techdocs.akamai.com/linode-api/reference/post-image) or [Upload an image](https://techdocs.akamai.com/linode-api/reference/post-upload-image).

- You can set a `label` and `description` for the group and each image, visible to all group members.

- If omitted, the shared image keeps the original `label` and `description`. Note that when you [Update the original image](https://techdocs.akamai.com/linode-api/reference/put-image), it has no effect on shared image's details within any groups.

- Run the [Add members to a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-members) to include other users in the group. Use the group's `uuid` from the response to [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) for user authentication.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
sharegroupIdUpdates the details of a share group you own. Run this operation to edit the `label` or `description` of a particular sharegroup.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

- You can update either of the fields, but when you provide a new `label`, make sure that it's not an empty string.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
sharegroupIdDeletes an owned share group. All shared group members lose access to the images within the group upon deletion.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ +## 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSlug identifier assigned to the private image upon creation. This identifier includes a slash (`/`), which must be URL-encoded in requests to prevent breaking the URL structure.
stringThe share group's unique identifier assigned after creating it. Not to be confused with the group's `uuid`.
string (uuid)A unique identifier for the token, used to reference it after creation.
integerThe page of a collection to return.
integerThe number of items to return per page.
+ +## `SELECT` examples + + + + +Gets details about a share group you're a member of.

To get the `token_uuid`, run the [Get a token](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-token) or [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) for the share group you want to join and share it with the group owner. You have to be accepted as a share group member before running this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +SELECT +id, +created, +description, +is_suspended, +label, +updated, +uuid +FROM linode.images.sharegroups +WHERE tokenUuid = '{{ tokenUuid }}' -- required +; +``` +
+ + +Get information about an owned share group. Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

- If the `sharegroupId` in the request body belongs to a group you don't own, calling this API will result in a 404 error.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +SELECT +id, +created, +description, +expiry, +images_count, +is_suspended, +label, +members_count, +updated, +uuid +FROM linode.images.sharegroups +WHERE sharegroupId = '{{ sharegroupId }}' -- required +; +``` +
+ + +Lists all owned share groups where a given private image is currently shared. Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation. Store the `id` for the target image as your `{imageId}`, for use in this operation's URL path.

> 📘
>
> This operation returns an empty list for shared and distribution image IDs.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +SELECT +id, +created, +description, +expiry, +images_count, +is_suspended, +label, +members_count, +updated, +uuid +FROM linode.images.sharegroups +WHERE imageId = '{{ imageId }}' -- required +; +``` +
+ + +Lists all owned groups with shared images.

> 📘
>
> This operation doesn't list groups you're a member of. Run [Get a token's share group](https://techdocs.akamai.com/linode-api/reference/get-sharegroup-by-token) to find these share groups using your membership token.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +SELECT +id, +created, +description, +expiry, +images_count, +is_suspended, +label, +members_count, +updated, +uuid +FROM linode.images.sharegroups +WHERE page = '{{ page }}' +AND page_size = '{{ page_size }}' +; +``` +
+
+ + +## `INSERT` examples + + + + +Creates a group to share images with other users.

- Include existing `images` in the request or [Add images to a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-images) later. Run the [Get an image](https://techdocs.akamai.com/linode-api/reference/get-image) operation to see the existing images' `id` values. If needed, [Create an image](https://techdocs.akamai.com/linode-api/reference/post-image) or [Upload an image](https://techdocs.akamai.com/linode-api/reference/post-upload-image).

- You can set a `label` and `description` for the group and each image, visible to all group members.

- If omitted, the shared image keeps the original `label` and `description`. Note that when you [Update the original image](https://techdocs.akamai.com/linode-api/reference/put-image), it has no effect on shared image's details within any groups.

- Run the [Add members to a share group](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-members) to include other users in the group. Use the group's `uuid` from the response to [Create a token](https://techdocs.akamai.com/linode-api/reference/post-sharegroup-tokens) for user authentication.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +INSERT INTO linode.images.sharegroups ( +description, +images, +label +) +SELECT +'{{ description }}', +'{{ images }}', +'{{ label }}' /* required */ +RETURNING +id, +created, +description, +expiry, +images_count, +is_suspended, +label, +members_count, +updated, +uuid +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: sharegroups + props: + - name: description + value: "{{ description }}" + description: | + A detailed description of this share group. + - name: images + description: | + A list of image's details, including the ID, label, and description. + value: + - description: "{{ description }}" + id: "{{ id }}" + label: "{{ label }}" + - name: label + value: "{{ label }}" + description: | + The share group's descriptive name. +`} + + +
+ + +## `REPLACE` examples + + + + +Updates the details of a share group you own. Run this operation to edit the `label` or `description` of a particular sharegroup.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

- You can update either of the fields, but when you provide a new `label`, make sure that it's not an empty string.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +REPLACE linode.images.sharegroups +SET +description = '{{ description }}', +label = '{{ label }}' +WHERE +sharegroupId = '{{ sharegroupId }}' --required +RETURNING +id, +created, +description, +expiry, +images_count, +is_suspended, +label, +members_count, +updated, +uuid; +``` +
+
+ + +## `DELETE` examples + + + + +Deletes an owned share group. All shared group members lose access to the images within the group upon deletion.

- Run the [List share groups](https://techdocs.akamai.com/linode-api/reference/get-sharegroups) operation to get the `id` you should use as the `(sharegroupId)` path parameter that identifies an existing share group.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +DELETE FROM linode.images.sharegroups +WHERE sharegroupId = '{{ sharegroupId }}' --required +; +``` +
+
diff --git a/website/docs/services/linode/backups/index.md b/website/docs/services/linode/backups/index.md index 5ea1e25..466cbe7 100644 --- a/website/docs/services/linode/backups/index.md +++ b/website/docs/services/linode/backups/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a backups resource. ## Overview - +
Namebackups
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a backups resource. The following fields are returned by `SELECT` queries: - + A single Backup. @@ -89,12 +90,12 @@ A single Backup. string - __Read-only__ The current state of a specific Backup. (example: successful) + __Read-only__ The current state of a specific Backup. (paused, pending, running, needsPostProcessing, successful, failed, userAborted) (example: successful) string - __Read-only__ This indicates whether the Backup is an automatic Backup or manual snapshot taken by the User at a specific point in time. (example: snapshot) + __Read-only__ This indicates whether the Backup is an automatic Backup or manual snapshot taken by the User at a specific point in time. (auto, snapshot) (example: snapshot) @@ -104,7 +105,7 @@ A single Backup. - + A collection of the specified Linode's available backups. @@ -148,44 +149,44 @@ The following methods are available for this resource: - + - + linodeId, backupId Returns information about a Backup.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Returns information about this Linode's available backups.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__label + linodeId, label Creates a snapshot backup of a Linode.

> 📘
>
> - Backups aren't encrypted even when they're taken from an encrypted disk. When a backup is restored, and if encryption is enabled, the data stored on the disk is encrypted again.
>
> - If you already have a snapshot of this Linode, the previous snapshot will be deleted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Cancels the Backup service on the given Linode. Deletes all of this Linode's existing backups forever.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Enables backups for the specified Linode.

> 📘
>
> Backups aren't encrypted even when they're taken from an encrypted disk. When a backup is restored, and if encryption is enabled, the data stored on the disk is encrypted again.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - linode_id + linodeId, backupId, linode_id Restores a Linode's backup to the specified Linode.

- Backups may not be restored across regions.
- Only successfully completed backups that are not undergoing maintenance can be restored.
- The Linode that the backup is being restored to can't be the target of a current backup.

When you restore a backup, the restored disk is assigned the same [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) as the original disk. In most cases, this is acceptable and doesn't cause issues. However, if you try to mount both the original disk and the corresponding restore disk at the same time (by assigning them both to devices in your Configuration Profile's __Block Device Assignment__), you'll encounter a UUID "collision".

When this happens, the system selects, and mounts, only one of the disks at random. This is because both disks are sharing the same UUID. Your instance _may fail to boot_ because the API can't tell which disk is root. If your system boots in this scenario, you won't see an immediate indication if you're booted into the restored disk or the original disk, and you'll be unable to access both disks at the same time.

To avoid this, only restore a backup to the same Linode if you don't intend to mount them at the same time, or you're comfortable modifying UUIDs. If you need access to files on both the original disk and the restored disk simultaneously -- for example, if you need to copy files between them -- you should restore the backup to a separate Linode or [create](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) a new Linode using the desired `backup_id`.

To learn more about block device assignments and viewing your disks' UUIDs, see our guide on [Configuration Profiles](https://www.linode.com/docs/products/compute/compute-instances/guides/configuration-profiles/#block-device-assignment).

> 📘
>
> Backups aren't encrypted even when they're taken from an encrypted disk. When a backup is restored, and if encryption is enabled, the data stored on the disk is encrypted again.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -205,19 +206,29 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Backup to restore. + + + + string + The ID of the Linode that the Backup belongs to. + ## `SELECT` examples - + Returns information about a Backup.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -234,10 +245,12 @@ status, type, updated FROM linode.linode.backups +WHERE linodeId = '{{ linodeId }}' -- required +AND backupId = '{{ backupId }}' -- required ; ```
- + Returns information about this Linode's available backups.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -246,6 +259,7 @@ SELECT automatic, snapshot FROM linode.linode.backups +WHERE linodeId = '{{ linodeId }}' -- required ; ```
@@ -255,22 +269,24 @@ FROM linode.linode.backups ## `INSERT` examples - + Creates a snapshot backup of a Linode.

> 📘
>
> - Backups aren't encrypted even when they're taken from an encrypted disk. When a backup is restored, and if encryption is enabled, the data stored on the disk is encrypted again.
>
> - If you already have a snapshot of this Linode, the previous snapshot will be deleted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.linode.backups ( -data__label +label, +linodeId ) SELECT -'{{ label }}' /* required */ +'{{ label }}' /* required */, +'{{ linodeId }}' RETURNING id, available, @@ -287,16 +303,18 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: backups props: + - name: linodeId + value: "{{ linodeId }}" + description: Required parameter for the backups resource. - name: label - value: string - description: > + value: "{{ label }}" + description: | The label for the new snapshot. - -``` +`} +
@@ -304,39 +322,41 @@ updated ## Lifecycle Methods - + Cancels the Backup service on the given Linode. Deletes all of this Linode's existing backups forever.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.backups.post_cancel_backups - +EXEC linode.linode.backups.cancel +@linodeId='{{ linodeId }}' --required ; ```
- + Enables backups for the specified Linode.

> 📘
>
> Backups aren't encrypted even when they're taken from an encrypted disk. When a backup is restored, and if encryption is enabled, the data stored on the disk is encrypted again.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.backups.post_enable_backups - +EXEC linode.linode.backups.enable +@linodeId='{{ linodeId }}' --required ; ```
- + Restores a Linode's backup to the specified Linode.

- Backups may not be restored across regions.
- Only successfully completed backups that are not undergoing maintenance can be restored.
- The Linode that the backup is being restored to can't be the target of a current backup.

When you restore a backup, the restored disk is assigned the same [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) as the original disk. In most cases, this is acceptable and doesn't cause issues. However, if you try to mount both the original disk and the corresponding restore disk at the same time (by assigning them both to devices in your Configuration Profile's __Block Device Assignment__), you'll encounter a UUID "collision".

When this happens, the system selects, and mounts, only one of the disks at random. This is because both disks are sharing the same UUID. Your instance _may fail to boot_ because the API can't tell which disk is root. If your system boots in this scenario, you won't see an immediate indication if you're booted into the restored disk or the original disk, and you'll be unable to access both disks at the same time.

To avoid this, only restore a backup to the same Linode if you don't intend to mount them at the same time, or you're comfortable modifying UUIDs. If you need access to files on both the original disk and the restored disk simultaneously -- for example, if you need to copy files between them -- you should restore the backup to a separate Linode or [create](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) a new Linode using the desired `backup_id`.

To learn more about block device assignments and viewing your disks' UUIDs, see our guide on [Configuration Profiles](https://www.linode.com/docs/products/compute/compute-instances/guides/configuration-profiles/#block-device-assignment).

> 📘
>
> Backups aren't encrypted even when they're taken from an encrypted disk. When a backup is restored, and if encryption is enabled, the data stored on the disk is encrypted again.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.backups.post_restore_backup +EXEC linode.linode.backups.restore +@linodeId='{{ linodeId }}' --required, +@backupId='{{ backupId }}' --required @@json= '{ "linode_id": {{ linode_id }}, diff --git a/website/docs/services/linode/config_profile_interfaces/index.md b/website/docs/services/linode/config_profile_interfaces/index.md index d560b70..90e4eec 100644 --- a/website/docs/services/linode/config_profile_interfaces/index.md +++ b/website/docs/services/linode/config_profile_interfaces/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a config_profile_interfaces -Nameconfig_profile_interfaces +Name TypeResource Id @@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a config_profile_interfaces - + A configuration interface object. @@ -89,7 +90,7 @@ A configuration interface object. string - __Filterable__ The name of this interface. For interfaces with a `purpose` of `vlan`: - Required. - This needs to be unique among a Linode's interfaces. A Linode can't be attached to the same VLAN multiple times. - This can only contain ASCII letters, numbers, and dashes (`-`). You can't use two consecutive dashes (`--`). - If the VLAN label is new, a VLAN is created. Up to 10 VLANs can be created in each data center `region`. To view your active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans) operation. For interfaces with a `purpose` of `public`: - If you include this in a request, set it to an empty string (`""`) or `null`. - Returned as `null` in a response. For interfaces with a `purpose` of `vpc`: - If you include this in a request, set it to an empty string (`""`) or `null`. - Returned as `null` in a response. (example: example-interface, pattern: [a-zA-Z0-9-]+) + __Filterable__ The name of this interface. For interfaces with a `purpose` of `vlan`: - Required. - This needs to be unique among a Linode's interfaces. A Linode can't be attached to the same VLAN multiple times. - This can only contain ASCII letters, numbers, and dashes (`-`). You can't use two consecutive dashes (`--`). - If the VLAN label is new, a VLAN is created. Up to 10 VLANs can be created in each data center `region`. To view your active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans) operation. For interfaces with a `purpose` of `public`: - If you include this in a request, set it to an empty string (`""`) or `null`. - Returned as `null` in a response. For interfaces with a `purpose` of `vpc`: - If you include this in a request, set it to an empty string (`""`) or `null`. - Returned as `null` in a response. (example: example-interface, pattern: [a-zA-Z0-9-]+) @@ -99,14 +100,14 @@ A configuration interface object. string - The type of interface. This can be `public`, `vlan`, or `vpc`. For interfaces with a `purpose` of `public`: - You can only define one `public` interface per Linode. - The Linode's default public IPv4 address is assigned to the `public` interface. - A Linode needs a `public` interface in the first or `eth0` position to be reachable via the public internet, after it boots. If no `public` interface is configured, you can only access the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/), or through another Linode that's connected to the same VLAN or VPC. For interfaces with a `purpose` of `vlan`: - Configuring this `purpose` of interface attaches a Linode to the VLAN with the specified `label`. - If an `ipam_address` is configured, the Linode uses this address. For interfaces with a `purpose` of `vpc`: - Configuring this `purpose` of interface attaches a Linode to an existing VPC subnet with the specified `subnet_id`. - When the interface is activated, the Linode is configured to use an IP address from the range in the assigned VPC subnet. See `ipv4.vpc` for more information. (example: vlan) + The type of interface. This can be `public`, `vlan`, or `vpc`. For interfaces with a `purpose` of `public`: - You can only define one `public` interface per Linode. - The Linode's default public IPv4 address is assigned to the `public` interface. - A Linode needs a `public` interface in the first or `eth0` position to be reachable via the public internet, after it boots. If no `public` interface is configured, you can only access the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/), or through another Linode that's connected to the same VLAN or VPC. For interfaces with a `purpose` of `vlan`: - Configuring this `purpose` of interface attaches a Linode to the VLAN with the specified `label`. - If an `ipam_address` is configured, the Linode uses this address. For interfaces with a `purpose` of `vpc`: - Configuring this `purpose` of interface attaches a Linode to an existing VPC subnet with the specified `subnet_id`. - When the interface is activated, the Linode is configured to use an IP address from the range in the assigned VPC subnet. See `ipv4.vpc` for more information. (public, vlan, vpc) (example: vlan) - + -An ordered array of configuration profile interface objects. +The network interface to apply to this Linode's configuration profile. @@ -155,7 +156,7 @@ An ordered array of configuration profile interface objects. - + @@ -165,7 +166,7 @@ An ordered array of configuration profile interface objects. - +
string__Filterable__ The name of this interface. For interfaces with a `purpose` of `vlan`: - Required. - This needs to be unique among a Linode's interfaces. A Linode can't be attached to the same VLAN multiple times. - This can only contain ASCII letters, numbers, and dashes (`-`). You can't use two consecutive dashes (`--`). - If the VLAN label is new, a VLAN is created. Up to 10 VLANs can be created in each data center `region`. To view your active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans) operation. For interfaces with a `purpose` of `public`: - If you include this in a request, set it to an empty string (`""`) or `null`. - Returned as `null` in a response. For interfaces with a `purpose` of `vpc`: - If you include this in a request, set it to an empty string (`""`) or `null`. - Returned as `null` in a response. (example: example-interface, pattern: [a-zA-Z0-9-]+)__Filterable__ The name of this interface. For interfaces with a `purpose` of `vlan`: - Required. - This needs to be unique among a Linode's interfaces. A Linode can't be attached to the same VLAN multiple times. - This can only contain ASCII letters, numbers, and dashes (`-`). You can't use two consecutive dashes (`--`). - If the VLAN label is new, a VLAN is created. Up to 10 VLANs can be created in each data center `region`. To view your active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans) operation. For interfaces with a `purpose` of `public`: - If you include this in a request, set it to an empty string (`""`) or `null`. - Returned as `null` in a response. For interfaces with a `purpose` of `vpc`: - If you include this in a request, set it to an empty string (`""`) or `null`. - Returned as `null` in a response. (example: example-interface, pattern: [a-zA-Z0-9-]+)
stringThe type of interface. This can be `public`, `vlan`, or `vpc`. For interfaces with a `purpose` of `public`: - You can only define one `public` interface per Linode. - The Linode's default public IPv4 address is assigned to the `public` interface. - A Linode needs a `public` interface in the first or `eth0` position to be reachable via the public internet, after it boots. If no `public` interface is configured, you can only access the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/), or through another Linode that's connected to the same VLAN or VPC. For interfaces with a `purpose` of `vlan`: - Configuring this `purpose` of interface attaches a Linode to the VLAN with the specified `label`. - If an `ipam_address` is configured, the Linode uses this address. For interfaces with a `purpose` of `vpc`: - Configuring this `purpose` of interface attaches a Linode to an existing VPC subnet with the specified `subnet_id`. - When the interface is activated, the Linode is configured to use an IP address from the range in the assigned VPC subnet. See `ipv4.vpc` for more information. (example: vlan)The type of interface. This can be `public`, `vlan`, or `vpc`. For interfaces with a `purpose` of `public`: - You can only define one `public` interface per Linode. - The Linode's default public IPv4 address is assigned to the `public` interface. - A Linode needs a `public` interface in the first or `eth0` position to be reachable via the public internet, after it boots. If no `public` interface is configured, you can only access the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/), or through another Linode that's connected to the same VLAN or VPC. For interfaces with a `purpose` of `vlan`: - Configuring this `purpose` of interface attaches a Linode to the VLAN with the specified `label`. - If an `ipam_address` is configured, the Linode uses this address. For interfaces with a `purpose` of `vpc`: - Configuring this `purpose` of interface attaches a Linode to an existing VPC subnet with the specified `subnet_id`. - When the interface is activated, the Linode is configured to use an IP address from the range in the assigned VPC subnet. See `ipv4.vpc` for more information. (public, vlan, vpc) (example: vlan)
@@ -188,44 +189,44 @@ The following methods are available for this resource: - + - + linodeId, configId, interfaceId Returns a single configuration profile interface. To access this operation, your user needs at least the `read_only` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId, configId Returns all configuration profile interfaces assigned to a specific configuration profile, on a specific Linode. To access this operation, your user needs the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__purpose + linodeId, configId, purpose Creates and appends a single interface to the end of the `interfaces` array for an existing configuration profile. After you add the interface, you need to reboot the target Linode.

- To access this operation, your user needs the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

- A successful request triggers a `linode_config_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

- Only one interface can be set as `primary`. Setting `primary` to `true` for an interface sets all other interfaces to `false`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId, configId, interfaceId Update a `vpc` or `public` configuration profile interface for a specific configuration profile, on a specific Linode.

- To access this operation, your user needs the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

- A successful request triggers a `linode_config_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

- Only certain attributes can be updated for a configuration profile interface. You need to [add](https://techdocs.akamai.com/linode-api/reference/post-linode-config-interface) a new configuration profile interface on your Linode if you need new values for any other attribute. Here are the supported objects, based on the interface's `purpose`:

- `public`. The `primary` attribute.

- `vpc`. The `ip_ranges`, `ipv4`, or `primary` attributes.

- You can't update a configuration profile with a `purpose` of `vlan`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId, configId, interfaceId Deletes a configuration profile interface from a specific configuration profile, on a specific Linode.

- To access this operation, your user needs the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

- A successful request triggers a `linode_config_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

- You can't delete an active configuration profile interface. First, you need to shut down the associated Linode or restart it using another configuration profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - ids + linodeId, configId, ids Reorders the existing Interfaces of a Configuration Profile.

- The User accessing this operation must have `read_write` grants to the Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -245,19 +246,34 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The `id` of the Configuration Profile. + + + + string + The `id` of the Linode Configuration Profile Interface. + + + + string + The `id` of the Linode. + ## `SELECT` examples - + Returns a single configuration profile interface. To access this operation, your user needs at least the `read_only` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -274,10 +290,13 @@ label, primary, purpose FROM linode.linode.config_profile_interfaces +WHERE linodeId = '{{ linodeId }}' -- required +AND configId = '{{ configId }}' -- required +AND interfaceId = '{{ interfaceId }}' -- required ; ```
- + Returns all configuration profile interfaces assigned to a specific configuration profile, on a specific Linode. To access this operation, your user needs the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -294,6 +313,8 @@ label, primary, purpose FROM linode.linode.config_profile_interfaces +WHERE linodeId = '{{ linodeId }}' -- required +AND configId = '{{ configId }}' -- required ; ```
@@ -303,25 +324,27 @@ FROM linode.linode.config_profile_interfaces ## `INSERT` examples - + Creates and appends a single interface to the end of the `interfaces` array for an existing configuration profile. After you add the interface, you need to reboot the target Linode.

- To access this operation, your user needs the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

- A successful request triggers a `linode_config_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

- Only one interface can be set as `primary`. Setting `primary` to `true` for an interface sets all other interfaces to `false`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.linode.config_profile_interfaces ( -data__ip_ranges, -data__ipam_address, -data__ipv4, -data__label, -data__primary, -data__purpose, -data__subnet_id +ip_ranges, +ipam_address, +ipv4, +label, +primary, +purpose, +subnet_id, +linodeId, +configId ) SELECT '{{ ip_ranges }}', @@ -330,7 +353,9 @@ SELECT '{{ label }}', {{ primary }}, '{{ purpose }}' /* required */, -{{ subnet_id }} +{{ subnet_id }}, +'{{ linodeId }}', +'{{ configId }}' RETURNING id, subnet_id, @@ -347,137 +372,96 @@ purpose
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: config_profile_interfaces props: + - name: linodeId + value: "{{ linodeId }}" + description: Required parameter for the config_profile_interfaces resource. + - name: configId + value: "{{ configId }}" + description: Required parameter for the config_profile_interfaces resource. - name: ip_ranges - value: array - description: > + value: + - "{{ ip_ranges }}" + description: | IPv4 CIDR VPC subnet ranges that are routed to this interface. - -When included in a request: - -- A range can't include any addresses that are assigned to an active Linode or another VPC subnet. - -- When updating, you need to include any existing ranges to maintain them. If a range is left out, it will be removed. - -- Submit this as an empty array removes all existing values. - -- Omit this object to leave existing values as is. - -<> - -> 📘 -> -> This is only supported for interfaces with a `purpose` of `vpc`. - + When included in a request: + - A range can't include any addresses that are assigned to an active Linode or another VPC subnet. + - When updating, you need to include any existing ranges to maintain them. If a range is left out, it will be removed. + - Submit this as an empty array removes all existing values. + - Omit this object to leave existing values as is. + <> + > 📘 + > + > This is only supported for interfaces with a \`purpose\` of \`vpc\`. - name: ipam_address - value: string - description: > + value: "{{ ipam_address }}" + description: | This interface's private IP address in classless inter-domain routing (CIDR) notation. - -For interfaces with a `purpose` of `public`: - -- If you include this in a request, set it to an empty string (`""`) or `null`. - -- Returned as `null` in a response. - -For interfaces with a `purpose` of `vlan`: - -- To avoid conflicting addresses, make sure this value is unique for each `vlan` interface. - -- This should be unique among devices attached to the VLAN to avoid conflict. - -- If Network Helper is enabled, the Linode's interface will be automatically configured to use this address after the Linode is rebooted. If Network Helper is disabled, enable the address using [manual static IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/). - -For interfaces with a `purpose` of `vpc`: - -- If you include this in a request, set it to an empty string (`""`) or `null`. - -- Returned as `null` in a response. - + For interfaces with a \`purpose\` of \`public\`: + - If you include this in a request, set it to an empty string (\`""\`) or \`null\`. + - Returned as \`null\` in a response. + For interfaces with a \`purpose\` of \`vlan\`: + - To avoid conflicting addresses, make sure this value is unique for each \`vlan\` interface. + - This should be unique among devices attached to the VLAN to avoid conflict. + - If Network Helper is enabled, the Linode's interface will be automatically configured to use this address after the Linode is rebooted. If Network Helper is disabled, enable the address using [manual static IP configuration](https://www.linode.com/docs/guides/manual-network-configuration/). + For interfaces with a \`purpose\` of \`vpc\`: + - If you include this in a request, set it to an empty string (\`""\`) or \`null\`. + - Returned as \`null\` in a response. - name: ipv4 - value: object - description: > - IPv4 addresses configured for this interface. This only applies to interfaces with a `purpose` of `vpc`. Returned as `null` if no `vpc` interface is assigned. - + description: | + IPv4 addresses configured for this interface. This only applies to interfaces with a \`purpose\` of \`vpc\`. Returned as \`null\` if no \`vpc\` interface is assigned. + value: + nat_1_1: "{{ nat_1_1 }}" + vpc: "{{ vpc }}" - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ The name of this interface. - -For interfaces with a `purpose` of `vlan`: - -- Required. - -- This needs to be unique among a Linode's interfaces. A Linode can't be attached to the same VLAN multiple times. - -- This can only contain ASCII letters, numbers, and dashes (`-`). You can't use two consecutive dashes (`--`). - -- If the VLAN label is new, a VLAN is created. Up to 10 VLANs can be created in each data center `region`. To view your active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans) operation. - -For interfaces with a `purpose` of `public`: - -- If you include this in a request, set it to an empty string (`""`) or `null`. - -- Returned as `null` in a response. - -For interfaces with a `purpose` of `vpc`: - -- If you include this in a request, set it to an empty string (`""`) or `null`. - -- Returned as `null` in a response. - + For interfaces with a \`purpose\` of \`vlan\`: + - Required. + - This needs to be unique among a Linode's interfaces. A Linode can't be attached to the same VLAN multiple times. + - This can only contain ASCII letters, numbers, and dashes (\`-\`). You can't use two consecutive dashes (\`--\`). + - If the VLAN label is new, a VLAN is created. Up to 10 VLANs can be created in each data center \`region\`. To view your active VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans) operation. + For interfaces with a \`purpose\` of \`public\`: + - If you include this in a request, set it to an empty string (\`""\`) or \`null\`. + - Returned as \`null\` in a response. + For interfaces with a \`purpose\` of \`vpc\`: + - If you include this in a request, set it to an empty string (\`""\`) or \`null\`. + - Returned as \`null\` in a response. - name: primary - value: boolean - description: > - The default route to the Linode. Each Linode can have one interface set as its `primary`. If you haven't specifically set a `primary`, the first non-`vlan` type interface is automatically treated as the primary. - -> 📘 -> -> This needs to be set to `false` for any interface that uses `vlan` as its `purpose`. - + value: {{ primary }} + description: | + The default route to the Linode. Each Linode can have one interface set as its \`primary\`. If you haven't specifically set a \`primary\`, the first non-\`vlan\` type interface is automatically treated as the primary. + > 📘 + > + > This needs to be set to \`false\` for any interface that uses \`vlan\` as its \`purpose\`. - name: purpose - value: string - description: > - The type of interface. This can be `public`, `vlan`, or `vpc`. - -For interfaces with a `purpose` of `public`: - -- You can only define one `public` interface per Linode. - -- The Linode's default public IPv4 address is assigned to the `public` interface. - -- A Linode needs a `public` interface in the first or `eth0` position to be reachable via the public internet, after it boots. If no `public` interface is configured, you can only access the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/), or through another Linode that's connected to the same VLAN or VPC. - -For interfaces with a `purpose` of `vlan`: - -- Configuring this `purpose` of interface attaches a Linode to the VLAN with the specified `label`. - -- If an `ipam_address` is configured, the Linode uses this address. - -For interfaces with a `purpose` of `vpc`: - -- Configuring this `purpose` of interface attaches a Linode to an existing VPC subnet with the specified `subnet_id`. - -- When the interface is activated, the Linode is configured to use an IP address from the range in the assigned VPC subnet. See `ipv4.vpc` for more information. - + value: "{{ purpose }}" + description: | + The type of interface. This can be \`public\`, \`vlan\`, or \`vpc\`. + For interfaces with a \`purpose\` of \`public\`: + - You can only define one \`public\` interface per Linode. + - The Linode's default public IPv4 address is assigned to the \`public\` interface. + - A Linode needs a \`public\` interface in the first or \`eth0\` position to be reachable via the public internet, after it boots. If no \`public\` interface is configured, you can only access the Linode through [LISH](https://www.linode.com/docs/products/compute/compute-instances/guides/lish/), or through another Linode that's connected to the same VLAN or VPC. + For interfaces with a \`purpose\` of \`vlan\`: + - Configuring this \`purpose\` of interface attaches a Linode to the VLAN with the specified \`label\`. + - If an \`ipam_address\` is configured, the Linode uses this address. + For interfaces with a \`purpose\` of \`vpc\`: + - Configuring this \`purpose\` of interface attaches a Linode to an existing VPC subnet with the specified \`subnet_id\`. + - When the interface is activated, the Linode is configured to use an IP address from the range in the assigned VPC subnet. See \`ipv4.vpc\` for more information. valid_values: ['public', 'vlan', 'vpc'] - name: subnet_id - value: integer - description: > - The `id` of the VPC subnet for this interface. Use this value in a request to assign a Linode to a VPC subnet. - -- Required for `vpc` type interfaces. + value: {{ subnet_id }} + description: | + The \`id\` of the VPC subnet for this interface. Use this value in a request to assign a Linode to a VPC subnet. + - Required for \`vpc\` type interfaces. + - Returned as \`null\` for non-\`vpc\` type interfaces. + - Once you've assigned a VPC subnet to an interface, you can't update it. + - You need to reboot a Linode using the interface's configuration profile to assign the Linode to a VPC subnet. +`} -- Returned as `null` for non-`vpc` type interfaces. - -- Once you've assigned a VPC subnet to an interface, you can't update it. - -- You need to reboot a Linode using the interface's configuration profile to assign the Linode to a VPC subnet. - -```
@@ -485,21 +469,25 @@ For interfaces with a `purpose` of `vpc`: ## `REPLACE` examples - + Update a `vpc` or `public` configuration profile interface for a specific configuration profile, on a specific Linode.

- To access this operation, your user needs the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

- A successful request triggers a `linode_config_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

- Only certain attributes can be updated for a configuration profile interface. You need to [add](https://techdocs.akamai.com/linode-api/reference/post-linode-config-interface) a new configuration profile interface on your Linode if you need new values for any other attribute. Here are the supported objects, based on the interface's `purpose`:

- `public`. The `primary` attribute.

- `vpc`. The `ip_ranges`, `ipv4`, or `primary` attributes.

- You can't update a configuration profile with a `purpose` of `vlan`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.linode.config_profile_interfaces SET -data__ip_ranges = '{{ ip_ranges }}', -data__ipv4 = '{{ ipv4 }}', -data__primary = {{ primary }} +ip_ranges = '{{ ip_ranges }}', +ipv4 = '{{ ipv4 }}', +primary = {{ primary }} +WHERE +linodeId = '{{ linodeId }}' --required +AND configId = '{{ configId }}' --required +AND interfaceId = '{{ interfaceId }}' --required RETURNING id, subnet_id, @@ -519,17 +507,20 @@ purpose; ## `DELETE` examples - + Deletes a configuration profile interface from a specific configuration profile, on a specific Linode.

- To access this operation, your user needs the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

- A successful request triggers a `linode_config_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

- You can't delete an active configuration profile interface. First, you need to shut down the associated Linode or restart it using another configuration profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.linode.config_profile_interfaces +WHERE linodeId = '{{ linodeId }}' --required +AND configId = '{{ configId }}' --required +AND interfaceId = '{{ interfaceId }}' --required ; ```
@@ -539,17 +530,19 @@ DELETE FROM linode.linode.config_profile_interfaces ## Lifecycle Methods - + Reorders the existing Interfaces of a Configuration Profile.

- The User accessing this operation must have `read_write` grants to the Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.config_profile_interfaces.post_linode_config_interfaces +EXEC linode.linode.config_profile_interfaces.reorder +@linodeId='{{ linodeId }}' --required, +@configId='{{ configId }}' --required @@json= '{ "ids": "{{ ids }}" diff --git a/website/docs/services/linode/config_profiles/index.md b/website/docs/services/linode/config_profiles/index.md index 99816b2..4bae768 100644 --- a/website/docs/services/linode/config_profiles/index.md +++ b/website/docs/services/linode/config_profiles/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a config_profiles resource ## Overview - +
Nameconfig_profiles
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a config_profiles resource The following fields are returned by `SELECT` queries: - + A configuration profile object. @@ -99,17 +100,17 @@ A configuration profile object. string - Defines the state of your Linode after booting. Defaults to `default`. (example: default) + Defines the state of your Linode after booting. Defaults to `default`. (default, single, binbash) (example: default) string - Controls the virtualization mode. Defaults to `paravirt`. - `paravirt` is suitable for most cases. Linodes running in `paravirt` mode share some qualities with the host, ultimately making it run faster since there is less transition between it and the host. - `fullvirt` affords more customization, but is slower because 100% of the VM is virtualized. (example: paravirt) + Controls the virtualization mode. Defaults to `paravirt`. - `paravirt` is suitable for most cases. Linodes running in `paravirt` mode share some qualities with the host, ultimately making it run faster since there is less transition between it and the host. - `fullvirt` affords more customization, but is slower because 100% of the VM is virtualized. (paravirt, fullvirt) (example: paravirt) - + Returns the configuration profiles associated with this Linode. @@ -123,24 +124,59 @@ Returns the configuration profiles associated with this Linode. - + + integer + __Read-only__ The ID of this Config. + + + + string + Optional field for arbitrary user comments on this configuration. (example: This is my main Config) + + + + object + A dictionary of device disks to use as a device map in a Linode's configuration profile. - An empty device disk dictionary or a dictionary with empty values for device slots is allowed. - If no devices are specified, booting from this configuration will hold until a device exists that allows the boot process to start. + + + + object + Helpers enabled when booting to this Linode configuration. + + + array - + `interfaces` is applicable only to legacy configuration profiles and does not apply to [Linode interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface). From one to three network interfaces to add to this Linode's configuration profile. The position in the array determines which of the Linode's network interfaces is configured: - First [0]: `eth0` - Second [1]: `eth1` - Third [2]: `eth2` When updating a Linode's legacy interfaces, _each interface must be redefined_. An empty `interfaces` array results in a default `public` type interface configuration only. If no public Interface is configured, public IP addresses are still assigned to the Linode but will not be usable without manual configuration. > 📘 > > Changes to Linode Interface configurations can be enabled by rebooting the Linode. `vpc` details See the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications) guide for its specifications and limitations. `vlan` details - Only Next Generation Network (NGN) data centers support VLANs. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the capabilities of data center regions. If a VLAN is attached to your Linode and you attempt to migrate or clone it to a non-NGN data center, the migration or cloning will not initiate. If a Linode cannot be migrated or cloned because of an incompatibility, you will be prompted to select a different data center or contact support. - See the [VLANs Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications) guide to view additional specifications and limitations. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + The ID of the kernel used to boot a Linode. Run the [List kernels](https://techdocs.akamai.com/linode-api/reference/get-kernels) operation to see all available kernels. Here are some commonly used kernels: - `linode/latest-64bit`. This is the default, our latest kernel at the time of an instance boot or reboot. - `linode/grub2`. The upstream distribution-supplied kernel that's installed on the primary disk, or a custom kernel if installed. - `linode/direct-disk`. The master boot record (MBR) of the primary disk or root device. Use this in place of a Linux kernel. (default: linode/latest-64bit, example: linode/latest-64bit) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__ The name of the configuration for display in Akamai Cloud Manager. (example: My Config) - + integer - __Read-only__ The total number of results. + Defaults to the total RAM of the Linode. + + + + string + The root device to boot. > 📘 - If you leave this empty or set an invalid value, the root device defaults to `/dev/sda`. - If you specify a device at the root device location and it's not mounted, the Linode won't boot until a device is mounted. (example: /dev/sda, pattern: a-z, A-Z, 0-9, /, _, -) + + + + string + Defines the state of your Linode after booting. Defaults to `default`. (default, single, binbash) (example: default) + + + + string + Controls the virtualization mode. Defaults to `paravirt`. - `paravirt` is suitable for most cases. Linodes running in `paravirt` mode share some qualities with the host, ultimately making it run faster since there is less transition between it and the host. - `fullvirt` affords more customization, but is slower because 100% of the VM is virtualized. (paravirt, fullvirt) (example: paravirt) @@ -163,37 +199,37 @@ The following methods are available for this resource: - + - + linodeId, configId Returns information about a specific configuration profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId page, page_size Lists configuration profiles associated with a Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__label, data__devices + linodeId, label, devices Adds a new configuration profile to a Linode.

> 📘
>
> This operation is for legacy configuration profiles only, and not [Linode interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId, configId Updates a configuration profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId, configId Deletes the specified configuration profile from the specified Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -213,6 +249,16 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The `id` of the Configuration Profile. + + + + string + The `id` of the Linode. + integer @@ -229,13 +275,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns information about a specific configuration profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -253,21 +299,31 @@ root_device, run_level, virt_mode FROM linode.linode.config_profiles +WHERE linodeId = '{{ linodeId }}' -- required +AND configId = '{{ configId }}' -- required ; ```
- + Lists configuration profiles associated with a Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +comments, +devices, +helpers, +interfaces, +kernel, +label, +memory_limit, +root_device, +run_level, +virt_mode FROM linode.linode.config_profiles -WHERE page = '{{ page }}' +WHERE linodeId = '{{ linodeId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` @@ -278,28 +334,29 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Adds a new configuration profile to a Linode.

> 📘
>
> This operation is for legacy configuration profiles only, and not [Linode interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.linode.config_profiles ( -data__comments, -data__devices, -data__helpers, -data__interfaces, -data__kernel, -data__label, -data__memory_limit, -data__root_device, -data__run_level, -data__virt_mode +comments, +devices, +helpers, +interfaces, +kernel, +label, +memory_limit, +root_device, +run_level, +virt_mode, +linodeId ) SELECT '{{ comments }}', @@ -311,7 +368,8 @@ SELECT {{ memory_limit }}, '{{ root_device }}', '{{ run_level }}', -'{{ virt_mode }}' +'{{ virt_mode }}', +'{{ linodeId }}' RETURNING id, comments, @@ -329,106 +387,122 @@ virt_mode
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: config_profiles props: + - name: linodeId + value: "{{ linodeId }}" + description: Required parameter for the config_profiles resource. - name: comments - value: string - description: > + value: "{{ comments }}" + description: | Optional field for arbitrary user comments on this configuration. - - name: devices - value: object - description: > + description: | A dictionary of device disks to use as a device map in a Linode's configuration profile. - -- An empty device disk dictionary or a dictionary with empty values for device slots is allowed. -- If no devices are specified, booting from this configuration will hold until a device exists that allows the boot process to start. - + - An empty device disk dictionary or a dictionary with empty values for device slots is allowed. + - If no devices are specified, booting from this configuration will hold until a device exists that allows the boot process to start. + value: + sda: + disk_id: {{ disk_id }} + volume_id: {{ volume_id }} + sdb: + disk_id: {{ disk_id }} + volume_id: {{ volume_id }} + sdc: + disk_id: {{ disk_id }} + volume_id: {{ volume_id }} + sdd: + disk_id: {{ disk_id }} + volume_id: {{ volume_id }} + sde: + disk_id: {{ disk_id }} + volume_id: {{ volume_id }} + sdf: + disk_id: {{ disk_id }} + volume_id: {{ volume_id }} + sdg: + disk_id: {{ disk_id }} + volume_id: {{ volume_id }} + sdh: + disk_id: {{ disk_id }} + volume_id: {{ volume_id }} - name: helpers - value: object - description: > + description: | Helpers enabled when booting to this Linode configuration. - + value: + devtmpfs_automount: {{ devtmpfs_automount }} + distro: {{ distro }} + modules_dep: {{ modules_dep }} + network: {{ network }} + updatedb_disabled: {{ updatedb_disabled }} - name: interfaces - value: array - description: > - `interfaces` is applicable only to legacy configuration profiles and does not apply to [Linode interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface). - -From one to three network interfaces to add to this Linode's configuration profile. The position in the array determines which of the Linode's network interfaces is configured: - -- First [0]: `eth0` -- Second [1]: `eth1` -- Third [2]: `eth2` - -When updating a Linode's legacy interfaces, _each interface must be redefined_. An empty `interfaces` array results in a default `public` type interface configuration only. - -If no public Interface is configured, public IP addresses are still assigned to the Linode but will not be usable without manual configuration. - -> 📘 -> -> Changes to Linode Interface configurations can be enabled by rebooting the Linode. - -`vpc` details - -See the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications) guide for its specifications and limitations. - -`vlan` details - -- Only Next Generation Network (NGN) data centers support VLANs. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the capabilities of data center regions. If a VLAN is attached to your Linode and you attempt to migrate or clone it to a non-NGN data center, the migration or cloning will not initiate. If a Linode cannot be migrated or cloned because of an incompatibility, you will be prompted to select a different data center or contact support. -- See the [VLANs Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications) guide to view additional specifications and limitations. - + description: | + \`interfaces\` is applicable only to legacy configuration profiles and does not apply to [Linode interfaces](https://techdocs.akamai.com/linode-api/reference/post-linode-interface). + From one to three network interfaces to add to this Linode's configuration profile. The position in the array determines which of the Linode's network interfaces is configured: + - First [0]: \`eth0\` + - Second [1]: \`eth1\` + - Third [2]: \`eth2\` + When updating a Linode's legacy interfaces, _each interface must be redefined_. An empty \`interfaces\` array results in a default \`public\` type interface configuration only. + If no public Interface is configured, public IP addresses are still assigned to the Linode but will not be usable without manual configuration. + > 📘 + > + > Changes to Linode Interface configurations can be enabled by rebooting the Linode. + \`vpc\` details + See the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications) guide for its specifications and limitations. + \`vlan\` details + - Only Next Generation Network (NGN) data centers support VLANs. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the capabilities of data center regions. If a VLAN is attached to your Linode and you attempt to migrate or clone it to a non-NGN data center, the migration or cloning will not initiate. If a Linode cannot be migrated or cloned because of an incompatibility, you will be prompted to select a different data center or contact support. + - See the [VLANs Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications) guide to view additional specifications and limitations. + value: + - active: {{ active }} + id: {{ id }} + ip_ranges: "{{ ip_ranges }}" + ipam_address: "{{ ipam_address }}" + ipv4: + nat_1_1: "{{ nat_1_1 }}" + vpc: "{{ vpc }}" + label: "{{ label }}" + primary: {{ primary }} + purpose: "{{ purpose }}" + subnet_id: {{ subnet_id }} + vpc_id: {{ vpc_id }} - name: kernel - value: string - description: > + value: "{{ kernel }}" + description: | The ID of the kernel used to boot a Linode. Run the [List kernels](https://techdocs.akamai.com/linode-api/reference/get-kernels) operation to see all available kernels. Here are some commonly used kernels: - -- `linode/latest-64bit`. This is the default, our latest kernel at the time of an instance boot or reboot. - -- `linode/grub2`. The upstream distribution-supplied kernel that's installed on the primary disk, or a custom kernel if installed. - -- `linode/direct-disk`. The master boot record (MBR) of the primary disk or root device. Use this in place of a Linux kernel. - + - \`linode/latest-64bit\`. This is the default, our latest kernel at the time of an instance boot or reboot. + - \`linode/grub2\`. The upstream distribution-supplied kernel that's installed on the primary disk, or a custom kernel if installed. + - \`linode/direct-disk\`. The master boot record (MBR) of the primary disk or root device. Use this in place of a Linux kernel. default: linode/latest-64bit - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ The name of the configuration for display in Akamai Cloud Manager. - - name: memory_limit - value: integer - description: > + value: {{ memory_limit }} + description: | Defaults to the total RAM of the Linode. - - name: root_device - value: string - description: > + value: "{{ root_device }}" + description: | The root device to boot. - -> 📘 - -- If you leave this empty or set an invalid value, the root device defaults to `/dev/sda`. - -- If you specify a device at the root device location and it's not mounted, the Linode won't boot until a device is mounted. - + > 📘 + - If you leave this empty or set an invalid value, the root device defaults to \`/dev/sda\`. + - If you specify a device at the root device location and it's not mounted, the Linode won't boot until a device is mounted. - name: run_level - value: string - description: > - Defines the state of your Linode after booting. Defaults to `default`. - + value: "{{ run_level }}" + description: | + Defines the state of your Linode after booting. Defaults to \`default\`. valid_values: ['default', 'single', 'binbash'] - name: virt_mode - value: string - description: > - Controls the virtualization mode. Defaults to `paravirt`. - -- `paravirt` is suitable for most cases. Linodes running in `paravirt` mode share some qualities with the host, ultimately making it run faster since there is less transition between it and the host. - -- `fullvirt` affords more customization, but is slower because 100% of the VM is virtualized. - + value: "{{ virt_mode }}" + description: | + Controls the virtualization mode. Defaults to \`paravirt\`. + - \`paravirt\` is suitable for most cases. Linodes running in \`paravirt\` mode share some qualities with the host, ultimately making it run faster since there is less transition between it and the host. + - \`fullvirt\` affords more customization, but is slower because 100% of the VM is virtualized. valid_values: ['paravirt', 'fullvirt'] -``` +`} +
@@ -436,28 +510,31 @@ See the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/ ## `REPLACE` examples - + Updates a configuration profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.linode.config_profiles SET -data__comments = '{{ comments }}', -data__devices = '{{ devices }}', -data__helpers = '{{ helpers }}', -data__interfaces = '{{ interfaces }}', -data__kernel = '{{ kernel }}', -data__label = '{{ label }}', -data__memory_limit = {{ memory_limit }}, -data__root_device = '{{ root_device }}', -data__run_level = '{{ run_level }}', -data__virt_mode = '{{ virt_mode }}' +comments = '{{ comments }}', +devices = '{{ devices }}', +helpers = '{{ helpers }}', +interfaces = '{{ interfaces }}', +kernel = '{{ kernel }}', +label = '{{ label }}', +memory_limit = {{ memory_limit }}, +root_device = '{{ root_device }}', +run_level = '{{ run_level }}', +virt_mode = '{{ virt_mode }}' +WHERE +linodeId = '{{ linodeId }}' --required +AND configId = '{{ configId }}' --required RETURNING id, comments, @@ -478,17 +555,19 @@ virt_mode; ## `DELETE` examples - + Deletes the specified configuration profile from the specified Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.linode.config_profiles +WHERE linodeId = '{{ linodeId }}' --required +AND configId = '{{ configId }}' --required ; ```
diff --git a/website/docs/services/linode/disks/index.md b/website/docs/services/linode/disks/index.md index 356482c..e575167 100644 --- a/website/docs/services/linode/disks/index.md +++ b/website/docs/services/linode/disks/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a disks resource. ## Overview - +
Namedisks
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a disks resource. The following fields are returned by `SELECT` queries: - + Returns a single Disk object. @@ -69,7 +70,7 @@ Returns a single Disk object. string - The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk. > 📘 > > The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead. (example: ext4) + The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk. > 📘 > > The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead. (raw, swap, ext2, ext3, ext4, initrd) (example: ext4) @@ -84,7 +85,7 @@ Returns a single Disk object. string - __Read-only__ The current state of the disk. (example: ready) + __Read-only__ The current state of the disk. (ready, not ready, deleting) (example: ready) @@ -94,7 +95,7 @@ Returns a single Disk object. - + Returns a paginated list of disks associated with this Linode. @@ -108,24 +109,44 @@ Returns a paginated list of disks associated with this Linode. - - array - + + integer + __Read-only__ This disk's ID. You need this value to run other operations that interact with the disk. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ When this disk was created. (example: 2018-01-01T00:01:01) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Read-only__ Displays if encryption is enabled on this disk. This setting is based on the `disk_encryption` setting of the Linode. (default: enabled, example: disabled) + + + + string + The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk. > 📘 > > The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead. (raw, swap, ext2, ext3, ext4, initrd) (example: ext4) + + + + string + __Filterable__ The name of the disk. This is for display purposes only. (example: Debian 9 Disk) - + integer - __Read-only__ The total number of results. + __Filterable__ The size of the disk in MB. + + + + string + __Read-only__ The current state of the disk. (ready, not ready, deleting) (example: ready) + + + + string (date-time) + __Read-only__ When this disk was last updated. (example: 2018-01-01T00:01:01) @@ -148,58 +169,58 @@ The following methods are available for this resource: - + - + linodeId, diskId View Disk information for a Disk associated with this Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId page, page_size View Disk information for Disks associated with this Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__size + linodeId, size - Add a new disk to an existing Linode. You can create an empty disk to manually configure it later. You can also target a stored `image` to build the disk using a pre-configured file system.

- A Linode can have up to 50 disks.

- When creating an empty disk, you need to provide a `label` for it. If you don't include a `label`, you need to target an `image` instead.

- When you create a disk from an `image`, you need to set a `root_pass` for the disk.

- The default file system for a new disk is `ext4`. If you're creating one from an `image`, the disk inherits the file system of that `image`, is unless you specify otherwise.

- When you deploy a StackScript on a disk:

- You can run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts) to review available StackScripts.

- You need to include a compatible `image` when creating the disk. Run [Get a StackScript](https://techdocs.akamai.com/linode-api/reference/get-stack-script) to review compatible images.

- You should supply SSH keys for the disk's root user, using the `authorized_keys` field.

- You can include individual users via the `authorized_users` field. Before you can add a user, it needs an SSH key assigned to its profile. See [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) for more information.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Add a new disk to an existing Linode. You can create an empty disk to manually configure it later. You can also target a stored `image` to build the disk using a pre-configured file system--either through an image you've [created](https://techdocs.akamai.com/linode-api/reference/post-image) or via a StackScript. For added security with all disks, you should supply SSH keys for the disk's `root_pass` user, using the `authorized_keys` field.

> 📘
>
> A Linode can have up to 50 disks.

**Empty disks**

- When creating an empty disk, a `label` is required.

- The default file system for an empty disk is `ext4`.

**Disks created from an `image`**

- A `root_pass` is required for a disk created from a stored image.

- A created disk inherits both the `label` and the `filesystem` from the target `image`, unless you specify otherwise.

- We offer an example workflow to [create a disk using a stored image](https://techdocs.akamai.com/linode-api/reference/deploy-an-image).

**Disks created from a StackScript**

- You can run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts) to review available StackScripts.

- You need to include a StackScript-compatible `image` when creating the disk. Run [Get a StackScript](https://techdocs.akamai.com/linode-api/reference/get-stack-script) to review available images.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId, diskId Updates a Disk that you have permission to `read_write`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId, diskId Deletes a Disk you have permission to `read_write`.

__Deleting a Disk is a destructive action and cannot be undone.__

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId, diskId Copies a disk, byte-for-byte, into a new disk on the same Linode. The operation fails if the target doesn't have enough storage space. A Linode can have up to 50 disks.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - password + linodeId, diskId, password Resets the password of a Disk you have permission to `read_write`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - size + linodeId, diskId, size Resizes a Disk you have permission to `read_write`.

The Disk must not be in use. If the Disk is in use, the request will succeed but the resize will ultimately fail. For a request to succeed, the Linode must be shut down prior to resizing the Disk, or the Disk must not be assigned to the Linode's active Configuration Profile.

If you are resizing the Disk to a smaller size, it cannot be made smaller than what is required by the total size of the files current on the Disk.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -219,6 +240,16 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Disk to look up. + + + + string + ID of the Linode to look up. + integer @@ -235,13 +266,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + View Disk information for a Disk associated with this Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -256,21 +287,28 @@ size, status, updated FROM linode.linode.disks +WHERE linodeId = '{{ linodeId }}' -- required +AND diskId = '{{ diskId }}' -- required ; ```
- + View Disk information for Disks associated with this Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +created, +disk_encryption, +filesystem, +label, +size, +status, +updated FROM linode.linode.disks -WHERE page = '{{ page }}' +WHERE linodeId = '{{ linodeId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` @@ -281,27 +319,28 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + -Add a new disk to an existing Linode. You can create an empty disk to manually configure it later. You can also target a stored `image` to build the disk using a pre-configured file system.

- A Linode can have up to 50 disks.

- When creating an empty disk, you need to provide a `label` for it. If you don't include a `label`, you need to target an `image` instead.

- When you create a disk from an `image`, you need to set a `root_pass` for the disk.

- The default file system for a new disk is `ext4`. If you're creating one from an `image`, the disk inherits the file system of that `image`, is unless you specify otherwise.

- When you deploy a StackScript on a disk:

- You can run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts) to review available StackScripts.

- You need to include a compatible `image` when creating the disk. Run [Get a StackScript](https://techdocs.akamai.com/linode-api/reference/get-stack-script) to review compatible images.

- You should supply SSH keys for the disk's root user, using the `authorized_keys` field.

- You can include individual users via the `authorized_users` field. Before you can add a user, it needs an SSH key assigned to its profile. See [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) for more information.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Add a new disk to an existing Linode. You can create an empty disk to manually configure it later. You can also target a stored `image` to build the disk using a pre-configured file system--either through an image you've [created](https://techdocs.akamai.com/linode-api/reference/post-image) or via a StackScript. For added security with all disks, you should supply SSH keys for the disk's `root_pass` user, using the `authorized_keys` field.

> 📘
>
> A Linode can have up to 50 disks.

**Empty disks**

- When creating an empty disk, a `label` is required.

- The default file system for an empty disk is `ext4`.

**Disks created from an `image`**

- A `root_pass` is required for a disk created from a stored image.

- A created disk inherits both the `label` and the `filesystem` from the target `image`, unless you specify otherwise.

- We offer an example workflow to [create a disk using a stored image](https://techdocs.akamai.com/linode-api/reference/deploy-an-image).

**Disks created from a StackScript**

- You can run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts) to review available StackScripts.

- You need to include a StackScript-compatible `image` when creating the disk. Run [Get a StackScript](https://techdocs.akamai.com/linode-api/reference/get-stack-script) to review available images.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.linode.disks ( -data__authorized_keys, -data__authorized_users, -data__filesystem, -data__image, -data__label, -data__root_pass, -data__size, -data__stackscript_data, -data__stackscript_id +authorized_keys, +authorized_users, +filesystem, +image, +label, +root_pass, +size, +stackscript_data, +stackscript_id, +linodeId ) SELECT '{{ authorized_keys }}', @@ -312,7 +351,8 @@ SELECT '{{ root_pass }}', {{ size }} /* required */, '{{ stackscript_data }}', -{{ stackscript_id }} +{{ stackscript_id }}, +'{{ linodeId }}' RETURNING id, created, @@ -327,73 +367,62 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: disks props: + - name: linodeId + value: "{{ linodeId }}" + description: Required parameter for the disks resource. - name: authorized_keys - value: array - description: > - __Write-only__ A list of public SSH keys that will be automatically appended to the root user's `~/.ssh/authorized_keys` file when deploying from an Image. - + value: + - "{{ authorized_keys }}" + description: | + __Write-only__ A list of public SSH keys that will be automatically appended to the root user's \`~/.ssh/authorized_keys\` file when deploying from an Image. - name: authorized_users - value: array - description: > - __Write-only__ A list of usernames. If the usernames have associated SSH keys, the keys will be appended to the root users `~/.ssh/authorized_keys` file automatically when deploying from an Image. - + value: + - "{{ authorized_users }}" + description: | + __Write-only__ A list of usernames for authorized users. Before you can add a user, it needs an SSH key assigned to its profile. See [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) for more information. If the usernames already have associated SSH keys, the keys will be appended to the root users \`~/.ssh/authorized_keys\` file automatically when deploying from an image. - name: filesystem - value: string - description: > - The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk. - -> 📘 -> -> The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead. - + value: "{{ filesystem }}" + description: | + The disk's format or file system. A value of \`raw\` indicates no file system, just a raw binary stream. A value of \`swap\` indicates a Linux swap area. The values \`ext3\` or \`ext4\` represent these Linux journaling file systems. The value \`ext2\` is the deprecated ext2 Linux file system. Finally, \`initrd\` indicates the disk is formatted as an uncompressed initial RAM disk. + > 📘 + > + > The \`ext2\` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, \`initrd\` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead. valid_values: ['raw', 'swap', 'ext2', 'ext3', 'ext4', 'initrd'] - name: image - value: string - description: > + value: "{{ image }}" + description: | An Image ID to deploy the Linode Disk from. - -Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image. - + Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with \`linode/\`, while your Account's Images start with \`private/\`. Creating a disk from a Private Image requires \`read_only\` or \`read_write\` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image. - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ The name of the disk. This is for display purposes only. - - name: root_pass - value: string - description: > + value: "{{ root_pass }}" + description: | __Write-only__ This sets the root user's password on a newly created Linode Disk when deploying from an Image. - -- __Required__ when creating a Linode Disk from an Image, including when using a StackScript. - -- Must meet a password strength score requirement that is calculated internally by the API. If the strength requirement is not met, you will receive a `Password does not meet strength requirement` error. - + - __Required__ when creating a Linode Disk from an Image, including when using a StackScript. + - Must meet a password strength score requirement that is calculated internally by the API. If the strength requirement is not met, you will receive a \`Password does not meet strength requirement\` error. - name: size - value: integer - description: > + value: {{ size }} + description: | __Filterable__ The size of the Disk in MB. - -Images require a minimum size. Run the [Get an image](https://techdocs.akamai.com/linode-api/reference/get-image) operation to view its size. - + Images require a minimum size. Run the [Get an image](https://techdocs.akamai.com/linode-api/reference/get-image) operation to view its size. - name: stackscript_data - value: object - description: > + value: "{{ stackscript_data }}" + description: | This field is required only if the StackScript being deployed requires input data from the User for successful completion. See [User Defined Fields (UDFs)](https://www.linode.com/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs) for more details. - -This field is required to be valid JSON. - -Total length cannot exceed 65,535 characters. - + This field is required to be valid JSON. + Total length cannot exceed 65,535 characters. (opaque JSON object) - name: stackscript_id - value: integer - description: > - A StackScript ID that will cause the referenced StackScript to be run during deployment of this Linode. A compatible `image` is required to use a StackScript. To get a list of available StackScript and their permitted Images, run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts). This field cannot be used when deploying from a Backup or a Private Image. - -``` + value: {{ stackscript_id }} + description: | + A StackScript ID that will cause the referenced StackScript to be run during deployment of this Linode. A compatible \`image\` is required to use a StackScript. To get a list of available StackScript and their permitted Images, run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts). This field cannot be used when deploying from a Backup or a Private Image. +`} +
@@ -401,19 +430,22 @@ Total length cannot exceed 65,535 characters. ## `REPLACE` examples - + Updates a Disk that you have permission to `read_write`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.linode.disks SET -data__label = '{{ label }}' +label = '{{ label }}' +WHERE +linodeId = '{{ linodeId }}' --required +AND diskId = '{{ diskId }}' --required RETURNING id, created, @@ -431,17 +463,19 @@ updated; ## `DELETE` examples - + Deletes a Disk you have permission to `read_write`.

__Deleting a Disk is a destructive action and cannot be undone.__

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.linode.disks +WHERE linodeId = '{{ linodeId }}' --required +AND diskId = '{{ diskId }}' --required ; ```
@@ -451,29 +485,32 @@ DELETE FROM linode.linode.disks ## Lifecycle Methods - + Copies a disk, byte-for-byte, into a new disk on the same Linode. The operation fails if the target doesn't have enough storage space. A Linode can have up to 50 disks.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.disks.post_clone_linode_disk - +EXEC linode.linode.disks.clone +@linodeId='{{ linodeId }}' --required, +@diskId='{{ diskId }}' --required ; ```
- + Resets the password of a Disk you have permission to `read_write`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.disks.post_reset_disk_password +EXEC linode.linode.disks.reset_password +@linodeId='{{ linodeId }}' --required, +@diskId='{{ diskId }}' --required @@json= '{ "password": "{{ password }}" @@ -481,12 +518,14 @@ EXEC linode.linode.disks.post_reset_disk_password ; ```
- + Resizes a Disk you have permission to `read_write`.

The Disk must not be in use. If the Disk is in use, the request will succeed but the resize will ultimately fail. For a request to succeed, the Linode must be shut down prior to resizing the Disk, or the Disk must not be assigned to the Linode's active Configuration Profile.

If you are resizing the Disk to a smaller size, it cannot be made smaller than what is required by the total size of the files current on the Disk.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.disks.post_resize_disk +EXEC linode.linode.disks.resize +@linodeId='{{ linodeId }}' --required, +@diskId='{{ diskId }}' --required @@json= '{ "size": {{ size }} diff --git a/website/docs/services/linode/firewalls/index.md b/website/docs/services/linode/firewalls/index.md index 19d9087..7fb7752 100644 --- a/website/docs/services/linode/firewalls/index.md +++ b/website/docs/services/linode/firewalls/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a firewalls resource. ## Overview - +
Namefirewalls
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a firewalls resource. The following fields are returned by `SELECT` queries: - + Returns a paginated list of Firewalls assigned to this Linode. @@ -51,24 +52,44 @@ Returns a paginated list of Firewalls assigned to this Linode. - + + integer + __Filterable__, __Read-only__ The Firewall's unique ID. + + + + string (date-time) + __Filterable__, __Read-only__ When this Firewall was created. (example: 2025-01-01T00:01:01) + + + array - + __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__ The Firewall's label, for display purposes only. Firewall labels have the following constraints: - Must begin and end with an alphanumeric character. - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - Must be between 3 and 32 characters. - Must be unique. (example: firewall123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted. - - integer - __Read-only__ The total number of results. + + string + __Read-only__ The status of this Firewall. - When a Firewall is first created its status is `enabled`. - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`. - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall. (enabled, disabled, deleted) (example: enabled) + + + + array + __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. + + + + string (date-time) + __Filterable__, __Read-only__ When this Firewall was last updated. (example: 2025-01-02T00:01:01) @@ -91,23 +112,23 @@ The following methods are available for this resource: - + - + linodeId page, page_size View Firewall information for Firewalls assigned to this Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__firewall_ids + linodeId, firewall_ids page, page_size Replace the current list of assigned firewalls with a new list, or provide an empty list to remove all firewalls from this Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Reapply assigned firewalls to a Linode in case they were not applied successfully.

The `firewall_apply` event indicates if the firewalls were applied.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -127,6 +148,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Linode. + integer @@ -143,23 +169,28 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + View Firewall information for Firewalls assigned to this Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +created, +entities, +label, +rules, +status, +tags, +updated FROM linode.linode.firewalls -WHERE page = '{{ page }}' +WHERE linodeId = '{{ linodeId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` @@ -170,21 +201,22 @@ AND page_size = '{{ page_size }}' ## `REPLACE` examples - + Replace the current list of assigned firewalls with a new list, or provide an empty list to remove all firewalls from this Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.linode.firewalls SET -data__firewall_ids = '{{ firewall_ids }}' +firewall_ids = '{{ firewall_ids }}' WHERE -data__firewall_ids = '{{ firewall_ids }}' --required +linodeId = '{{ linodeId }}' --required +AND firewall_ids = '{{ firewall_ids }}' --required AND page = '{{ page}}' AND page_size = '{{ page_size}}' RETURNING @@ -200,18 +232,18 @@ results; ## Lifecycle Methods - + Reapply assigned firewalls to a Linode in case they were not applied successfully.

The `firewall_apply` event indicates if the firewalls were applied.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.firewalls.post_apply_firewalls - +EXEC linode.linode.firewalls.apply +@linodeId='{{ linodeId }}' --required ; ```
diff --git a/website/docs/services/linode/index.md b/website/docs/services/linode/index.md index 6fc28cf..4e0cd55 100644 --- a/website/docs/services/linode/index.md +++ b/website/docs/services/linode/index.md @@ -18,7 +18,7 @@ linode service documentation. :::info[Service Summary] -total resources: __18__ +total resources: __19__ ::: @@ -32,6 +32,7 @@ total resources: __18__ firewalls
instances
interface_firewalls
+interface_history
interface_settings
interfaces
diff --git a/website/docs/services/linode/instances/index.md b/website/docs/services/linode/instances/index.md index 2ece0f5..685344e 100644 --- a/website/docs/services/linode/instances/index.md +++ b/website/docs/services/linode/instances/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an instances resource. ## Overview - +
Nameinstances
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an instances resource. The following fields are returned by `SELECT` queries: - + Returns a single Linode object. @@ -84,7 +85,7 @@ Returns a single Linode object. string - __Read-only__ Indicates the local disk encryption setting for this Linode. If the Linode is part of an LKE cluster, the value is `null`. (default: enabled, example: disabled) + __Read-only__ Indicates the local disk encryption setting for this Linode. If the Linode is part of an LKE cluster, the value is `null`. (enabled, disabled) (default: enabled, example: disabled) @@ -104,17 +105,17 @@ Returns a single Linode object. string - __Read-only__ The virtualization software powering this Linode. (example: kvm) + __Read-only__ The virtualization software powering this Linode. (kvm) (example: kvm) string - An Image ID to deploy the Linode Disk from. Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image. (example: linode/debian9) + An Image ID to deploy the Linode Disk from. Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image. (example: linode/debian10) string - __Beta__ Indicates if the Linode is configured to use Linode interfaces (`linode`) or legacy configuration profile interfaces (`legacy_config`). (example: linode) + __Beta__ Indicates if the Linode is configured to use Linode interfaces (`linode`) or legacy configuration profile interfaces (`legacy_config`). (legacy_config, linode) (example: linode) @@ -129,7 +130,12 @@ Returns a single Linode object. string - __Filterable__ Provides a name for the Linode. If not provided, the API generates one for it. Linode labels have the following constraints: - It needs to begin and end with an alphanumeric character. - It can only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. (example: linode123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) + __Filterable__ Provides a name for the Linode. If not provided, the API generates one for it. Linode labels have the following constraints: - It needs to begin and end with an alphanumeric character. - It can only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. (example: linode123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) + + + + string + __Beta__, __Read-only__ The maintenance policy configured by the user for this Linode. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details. (linode/migrate, linode/power_off_on) (example: linode/migrate) @@ -149,7 +155,7 @@ Returns a single Linode object. string - __Read-only__ A brief description of the compute instance's current state. This value can change without direct action from you. For example, when a compute instance goes into maintenance mode, its status is `stopped`. Status is generally self-explanatory, based on its name. - `busy` indicates you've assigned the compute instance to a [placement group](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups), but the compute instance is currently booting. Once the boot completes, the API completes the assignment and updates the compute instance's `status` accordingly. - `provisioning` indicates that the API is applying operating system or Marketplace applications on the compute instance. - `billing_suspension` indicates that payment is past due on the compute instance, so we've suspended its use. (example: running) + __Read-only__ A brief description of the compute instance's current state. This value can change without direct action from you. For example, when a compute instance goes into maintenance mode, its status is `stopped`. Status is generally self-explanatory, based on its name. - `busy` indicates you've assigned the compute instance to a [placement group](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups), but the compute instance is currently booting. Once the boot completes, the API completes the assignment and updates the compute instance's `status` accordingly. - `provisioning` indicates that the API is applying operating system or Marketplace applications on the compute instance. - `billing_suspension` indicates that payment is past due on the compute instance, so we've suspended its use. (running, offline, booting, busy, rebooting, shutting_down, provisioning, deleting, migrating, rebuilding, cloning, restoring, stopped, billing_suspension) (example: running) @@ -174,7 +180,7 @@ Returns a single Linode object. - + Returns an array of all Linodes on your Account. @@ -188,24 +194,129 @@ Returns an array of all Linodes on your Account. - - array - + + integer + __Filterable__, __Read-only__ This Linode's ID which must be provided for all operations impacting this Linode. - + integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + __Read-only__ The ID of the Kubernetes cluster if the Linode is part of cluster. - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + - - integer - __Read-only__ The total number of results. + + object + Information about this Linode's backups status. For information about available backups, run [List backups](https://techdocs.akamai.com/linode-api/reference/get-backups). + + + + array + __Limited availability__, __Read-only__ A list of capabilities this compute instance supports. + + + + string (date-time) + __Read-only__ When this Linode was created. (example: 2018-01-01T00:01:01) + + + + string + __Read-only__ Indicates the local disk encryption setting for this Linode. If the Linode is part of an LKE cluster, the value is `null`. (enabled, disabled) (default: enabled, example: disabled) + + + + string + __Deprecated__, __Filterable__ The group label for this Linode. (example: Linode-Group) + + + + boolean + __Read-only__ Whether this compute instance was provisioned with `user_data` provided via the Metadata service. See the [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) description for more information on Metadata. + + + + string (uuid) + __Read-only__ The Linode's host machine, as a UUID. (example: 1a2bcd34e5f67gh8ij901234567kl89mn01opqr2) + + + + string + __Read-only__ The virtualization software powering this Linode. (kvm) (example: kvm) + + + + string + An Image ID to deploy the Linode Disk from. Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image. (example: linode/debian10) + + + + string + __Beta__ Indicates if the Linode is configured to use Linode interfaces (`linode`) or legacy configuration profile interfaces (`legacy_config`). (legacy_config, linode) (example: linode) + + + + array (ipv4) + __Filterable__, __Read-only__ This Linode's IPv4 Addresses. Each Linode is assigned a single public IPv4 address upon creation, and may get a single private IPv4 address if needed. You may need to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) to get additional IPv4 addresses. IPv4 addresses may be reassigned between your Linodes, or shared with other Linodes. See the [networking](https://techdocs.akamai.com/linode-api/reference/post-firewalls) operations for details. + + + + string (ipv6/128) + __Read-only__ This Linode's IPv6 SLAAC address. This address is specific to a Linode, and may not be shared. If the Linode has not been assigned an IPv6 address, the return value will be `null`. (example: c001:d00d::1337/128) + + + + string + __Filterable__ Provides a name for the Linode. If not provided, the API generates one for it. Linode labels have the following constraints: - It needs to begin and end with an alphanumeric character. - It can only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. (example: linode123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) + + + + string + __Beta__, __Read-only__ The maintenance policy configured by the user for this Linode. Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details. (linode/migrate, linode/power_off_on) (example: linode/migrate) + + + + object + __Read-only__ Details on the [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/) that this Linode belongs to. Empty if the Linode isn't in a placement group. + + + + string + __Filterable__, __Read-only__ The [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Linode deployed. A Linode's region can only be changed by initiating a [cross data center migration](https://techdocs.akamai.com/linode-api/reference/post-migrate-linode-instance). (example: us-east) + + + + object + __Read-only__ Information about the resources available to this Linode. + + + + string + __Read-only__ A brief description of the compute instance's current state. This value can change without direct action from you. For example, when a compute instance goes into maintenance mode, its status is `stopped`. Status is generally self-explanatory, based on its name. - `busy` indicates you've assigned the compute instance to a [placement group](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups), but the compute instance is currently booting. Once the boot completes, the API completes the assignment and updates the compute instance's `status` accordingly. - `provisioning` indicates that the API is applying operating system or Marketplace applications on the compute instance. - `billing_suspension` indicates that payment is past due on the compute instance, so we've suspended its use. (running, offline, booting, busy, rebooting, shutting_down, provisioning, deleting, migrating, rebuilding, cloning, restoring, stopped, billing_suspension) (example: running) + + + + array + __Filterable__ Tags to help you organize your content. + + + + string + __Read-only__ This is the [Linode type](https://techdocs.akamai.com/linode-api/reference/get-linode-types) that this Linode was deployed with. To change a Linode's type, use [Resize a Linode](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance). (example: g6-standard-1) + + + + string (date-time) + __Read-only__ When this Linode was last updated. (example: 2018-01-01T00:01:01) + + + + boolean + The watchdog, named Lassie, is a Shutdown Watchdog that monitors your Linode and reboots it if it powers off unexpectedly. It works by issuing a boot job when your Linode powers off without a shutdown job being responsible. To prevent a loop, Lassie gives up if there have been more than 5 boot jobs issued within 15 minutes. @@ -228,107 +339,107 @@ The following methods are available for this resource: - + - + linodeId Get a specific Linode by ID.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + X-Filter, page, page_size Returns a paginated list of Linodes you have permission to view.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__type, data__region + type, region Creates a Linode Instance on your Account. In order for this request to complete successfully, your User must have the `add_linodes` grant. Creating a new Linode will incur a charge on your Account.

Linodes can be created using one of the available Types. Run [List Linode types](https://techdocs.akamai.com/linode-api/reference/get-linode-types) to get more information about each Type's specs and cost.

Linodes can be created in any one of our available Regions, which are accessible from the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation.

In an effort to fight spam, Linode restricts outbound connections on ports 25, 465, and 587 on all Linodes for new accounts created after November 5th, 2019. For more information, see our guide on [Running a Mail Server](https://www.linode.com/docs/guides/running-a-mail-server/).

__Important__. You must be an unrestricted User in order to add or modify tags on Linodes.

Linodes can be created in a number of ways:

- Using a Linode Public Image distribution or a Private Image you created based on another Linode.

- Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images.

- The Linode will be `running` after it completes `provisioning`.
- A default config with two Disks, one being a 512 swap disk, is created.
- `swap_size` can be used to customize the swap disk size.
- Requires a `root_pass` be supplied to use for the root User's Account.
- It is recommended to supply SSH keys for the root User using the `authorized_keys` field.
- You may also supply a list of usernames via the `authorized_users` field.
- These users must have an SSH Key associated with your Profile first. See the [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key)) operation for more information.

- Using cloud-init with [Metadata](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/).
- Automate system configuration and software installation by providing a base-64 encoded [cloud-config](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata-cloud-config/) file.
- Requires a compatible Image. You can determine compatible Images by checking for `cloud-init` under `capabilities` when running [List images](https://techdocs.akamai.com/linode-api/reference/get-images).
- Requires a compatible Region. You can determine compatible Regions by checking for `Metadata` under `capabilities` when running [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions).

- Using a StackScript.

- Run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts) for a list of available StackScripts.
- The Linode will be `running` after it completes `provisioning`.
- Requires a compatible Image to be supplied.
- Run [Get a StackScript](https://techdocs.akamai.com/linode-api/reference/get-stack-script) for compatible Images.
- Requires a `root_pass` be supplied to use for the root User's Account.
- It is recommended to supply SSH keys for the root User using the `authorized_keys` field.
- You may also supply a list of usernames via the `authorized_users` field.
- These users must have an SSH Key associated with your Profile first. See [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) for more information.

- Using one of your other Linode's backups.
- You must create a Linode large enough to accommodate the Backup's size.
- The Disks and Config will match that of the Linode that was backed up.
- The `root_pass` will match that of the Linode that was backed up.

- Attached to a private VLAN.
- Review the `interfaces` property of the [Request Body Schema](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) for details.
- For more information, see our guide on [Getting Started with VLANs](https://www.linode.com/docs/products/networking/vlans/get-started/).

- Create an empty Linode.
- The Linode will remain `offline` and must be manually started.
- Run [Boot a Linode](https://techdocs.akamai.com/linode-api/reference/post-boot-linode-instance).
- Disks and Configs must be created manually.
- This is only recommended for advanced use cases.

Depending on your [account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings), you can choose between legacy configuration interfaces or Linode interfaces when creating a Linode. Only one type of interface is allowed per Linode. The `interface_generation` field lets you select one interface type for new Linodes when both legacy and Linode interfaces options are available on your account. If a Linode is configured with a Linode interface, legacy configuration interfaces can no longer be used on that Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Updates a Linode that you have permission to `read_write`. Only unrestricted users can add or modify tags on Linodes.
<<LB>>

> 🚧
>
> All tags for the instance are overwritten if `tags` are included in the request.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Deletes a Linode you have permission to `read_write`.

__Deleting a Linode is a destructive action and cannot be undone.__

Additionally, deleting a Linode:

- Gives up any IP addresses the Linode was assigned.
- Deletes all Disks, Backups, Configs, etc.
- Detaches any Volumes associated with the Linode.
- Stops billing for the Linode and its associated services. You will be billed for time used within the billing period the Linode was active.

Linodes that are in the process of [cloning](https://techdocs.akamai.com/linode-api/reference/post-clone-linode-instance) or [backup restoration](https://techdocs.akamai.com/linode-api/reference/post-restore-backup) cannot be deleted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Boots a Linode you have permission to modify.

If the Linode is using config profiles, and no parameters are given, a config profile is chosen for this boot based on the following criteria:
- If there is only one config profile for this Linode, it will be used.
- If there is more than one config profile, the last booted config will be used.
- If there is more than one config profile and none were the last to be booted (because the Linode was never booted or the last booted config was deleted) an error will be returned.

If the Linode is using Linode interfaces, where `interface_generation` is set as `linode`, an error is returned if the Linode has to boot without any interface defined.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId You can clone your Linode's existing disks, configuration profiles and interfaces to another Linode on your account. In order for this request to complete successfully, you need the `add_linodes` grant.

For Linodes using Linode interfaces, the clone needs to be located in a region that supports Linode interfaces (see [GET a region](https://techdocs.akamai.com/linode-api/reference/get-region)). The [account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings) need to allow creation of Linodes with Linode interfaces.

Cloning to a new Linode incurs a charge on your account.

If cloning to an existing Linode, any actions currently running or queued must be completed first before you can clone to it.

Up to five clone operations from any given source Linode can be run concurrently. If more concurrent clones are attempted, an HTTP 400 error will be returned by this operation.

Any [tags](https://techdocs.akamai.com/linode-api/reference/get-tags) existing on the source Linode will be cloned to the target Linode.

Linodes utilizing Metadata (`"has_user_data": true`) must be cloned to a new Linode with `metadata.user_data` included with the clone request.

`vpc` details

- If the Linode you're cloning has a `vpc` interface on its active legacy configuration profile that includes a 1:1 NAT, the resulting clone is configured with an `any` 1:1 NAT.
- See the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications) guide for its specifications and limitations.

`vlan` details

- Only Next Generation Network (NGN) data centers support VLANs. If a VLAN is attached to your Linode and you attempt clone it to a non-NGN data center, the cloning will not initiate. If a Linode cannot be cloned because of an incompatibility, you will be prompted to select a different data center or contact support.
- See the [VLANs Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications) guide to view additional specifications and limitations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Initiate a pending host migration that has been scheduled by Linode or initiate a cross data center (DC) migration. A list of pending migrations, if any, can be accessed from [List notifications](https://techdocs.akamai.com/linode-api/reference/get-notifications). When the migration begins, your Linode will be shutdown if not already off. If the migration initiated the shutdown, it will reboot the Linode when completed.

To initiate a cross DC migration, you must pass a `region` parameter to the request body specifying the target data center region. You can view a list of all available regions and their feature capabilities from [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions). See our [Pricing Page](https://www.linode.com/pricing/) for Region-specific pricing, which applies after migration is complete. If your Linode has a DC migration already queued or you have initiated a previously scheduled migration, you will not be able to initiate a DC migration until it has completed.

`vpc` details

- Cross DC migrations don't work for Linodes that have a `vpc` purpose legacy configuration interface or a VPC Linode interface. They work for host migrations within the same DC.
- See the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications) guide for its specifications and limitations.

`vlan` details:

- Only Next Generation Network (NGN) data centers support VLANs. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the capabilities of data center regions. If a VLAN is attached to your Linode and you attempt to migrate or clone it to a non-NGN data center, the migration or cloning will not initiate. If a Linode cannot be migrated or cloned because of an incompatibility, you will be prompted to select a different data center or contact support.
- Next Generation Network (NGN) data centers do not support IPv6 `/116` pools or IP Failover. If you have these features enabled on your Linode and attempt to migrate to an NGN data center, the migration will not initiate. If a Linode cannot be migrated because of an incompatibility, you will be prompted to select a different data center or contact support.
- See the [VLANs Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications) guide to view additional specifications and limitations.

`public` details:

- If the Linode is using Linode interfaces, the destination region needs to also support Linode interfaces.
- After migrating to a different data center, Linode public interfaces retain the same number of IP addresses, but the IP addresses themselves change.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Linodes created with now-deprecated Types are entitled to a free upgrade to the next generation. A mutating Linode will be allocated any new resources the upgraded Type provides, and will be subsequently restarted if it was currently running. If any actions are currently running or queued, those actions must be completed first before you can initiate a mutate.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - root_pass + linodeId, root_pass Resets the root password for this Linode.

- Your Linode must be [shut down](https://techdocs.akamai.com/linode-api/reference/post-shutdown-linode-instance) for a password reset to complete.
- If your Linode has more than one disk (not counting its swap disk), run the [Reset a disk root password](https://techdocs.akamai.com/linode-api/reference/post-reset-disk-password) operation to update a specific disk's root password.
- A `password_reset` event is generated when a root password reset is successful.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Reboots a Linode you have permission to modify. If any actions are currently running or queued, those actions must be completed first before you can initiate a reboot.

If the Linode is using Linode interfaces, where `interface_generation` is set as `linode`, an error is returned if the Linode has to reboot without any interface defined.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - image, root_pass + linodeId, image, root_pass Rebuilds a Linode you have the `read_write` permission to modify.

A rebuild first shuts down the Linode, deletes all disks and configuration profiles on the Linode, then deploys a new `image` to the Linode with the given attributes. Additionally:

- Requires an `image` be supplied.
- Requires a `root_pass` be supplied to use for the root User's Account.
- It is recommended to supply SSH keys for the root User using the `authorized_keys` field.
- Linodes utilizing Metadata (`"has_user_data": true`) should include `metadata.user_data` in the rebuild request to continue using the service.

Linode interfaces don't change during a rebuild.

During a rebuild, you can `enable` or `disable` local disk encryption. If disk encryption is not included in the request, the previous `disk_encryption` value is used. Disk encryption cannot be disabled if the compute instance is attached to a LKE nodepool.

You also have the option to resize the Linode to a different plan by including the `type` parameter with your request. Note that resizing involves migrating the Linode to a new hardware host, while rebuilding without resizing maintains the same hardware host. Resizing also requires significantly more time for completion of this operation. The following additional conditions apply:

- The Linode must not have a pending migration.
- Your Account cannot have an outstanding balance.
- The Linode must not have more disk allocation than the new Type allows.
- In that situation, you must first delete or resize the disk to be smaller.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Rescue Mode is a safe environment for performing many system recovery and disk management tasks. Rescue Mode is based on the Finnix recovery distribution, a self-contained and bootable Linux distribution. You can also use Rescue Mode for tasks other than disaster recovery, such as formatting disks to use different filesystems, copying data between disks, and downloading files from a disk via SSH and SFTP.

Linodes with legacy configuration interfaces receive a public IP and boot into the recovery Linux distribution. Linodes with Linode interfaces still boot into recovery mode with the recovery Linux distribution, but they retain their original network interfaces and settings from before entering rescue mode.

- Note that `sdh` is reserved and unavailable during rescue.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - type + linodeId, type Resizes a Linode you have the `read_write` permission to a different Type. If any actions are currently running or queued, those actions must be completed first before you can initiate a resize. Additionally, the following criteria must be met in order to resize a Linode:

- The Linode must not have a pending migration.
- Your Account cannot have an outstanding balance.
- The Linode must not have more disk allocation than the new Type allows.
- In that situation, you must first delete or resize the disk to be smaller.

You can also resize a Linode when using the [Rebuild a Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Shuts down a Linode you have permission to modify. If any actions are currently running or queued, those actions must be completed first before you can initiate a shutdown.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -348,10 +459,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Linode to shutdown. + - Specifies a JSON object to filter down the results. See [Filtering and sorting](filtering-and-sorting) for details. (example: {{X-Filter}}) + Specifies a JSON object to filter down the results. See [Filtering and sorting](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) for details. (example: {{X-Filter}}) @@ -369,13 +485,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a specific Linode by ID.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -397,6 +513,7 @@ interface_generation, ipv4, ipv6, label, +maintenance_policy, placement_group, region, specs, @@ -406,19 +523,41 @@ type, updated, watchdog_enabled FROM linode.linode.instances +WHERE linodeId = '{{ linodeId }}' -- required ; ```
- + Returns a paginated list of Linodes you have permission to view.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +lke_cluster_id, +alerts, +backups, +capabilities, +created, +disk_encryption, +group, +has_user_data, +host_uuid, +hypervisor, +image, +interface_generation, +ipv4, +ipv6, +label, +maintenance_policy, +placement_group, +region, +specs, +status, +tags, +type, +updated, +watchdog_enabled FROM linode.linode.instances WHERE X-Filter = '{{ X-Filter }}' AND page = '{{ page }}' @@ -432,41 +571,42 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Creates a Linode Instance on your Account. In order for this request to complete successfully, your User must have the `add_linodes` grant. Creating a new Linode will incur a charge on your Account.

Linodes can be created using one of the available Types. Run [List Linode types](https://techdocs.akamai.com/linode-api/reference/get-linode-types) to get more information about each Type's specs and cost.

Linodes can be created in any one of our available Regions, which are accessible from the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation.

In an effort to fight spam, Linode restricts outbound connections on ports 25, 465, and 587 on all Linodes for new accounts created after November 5th, 2019. For more information, see our guide on [Running a Mail Server](https://www.linode.com/docs/guides/running-a-mail-server/).

__Important__. You must be an unrestricted User in order to add or modify tags on Linodes.

Linodes can be created in a number of ways:

- Using a Linode Public Image distribution or a Private Image you created based on another Linode.

- Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images.

- The Linode will be `running` after it completes `provisioning`.
- A default config with two Disks, one being a 512 swap disk, is created.
- `swap_size` can be used to customize the swap disk size.
- Requires a `root_pass` be supplied to use for the root User's Account.
- It is recommended to supply SSH keys for the root User using the `authorized_keys` field.
- You may also supply a list of usernames via the `authorized_users` field.
- These users must have an SSH Key associated with your Profile first. See the [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key)) operation for more information.

- Using cloud-init with [Metadata](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata/).
- Automate system configuration and software installation by providing a base-64 encoded [cloud-config](https://www.linode.com/docs/products/compute/compute-instances/guides/metadata-cloud-config/) file.
- Requires a compatible Image. You can determine compatible Images by checking for `cloud-init` under `capabilities` when running [List images](https://techdocs.akamai.com/linode-api/reference/get-images).
- Requires a compatible Region. You can determine compatible Regions by checking for `Metadata` under `capabilities` when running [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions).

- Using a StackScript.

- Run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts) for a list of available StackScripts.
- The Linode will be `running` after it completes `provisioning`.
- Requires a compatible Image to be supplied.
- Run [Get a StackScript](https://techdocs.akamai.com/linode-api/reference/get-stack-script) for compatible Images.
- Requires a `root_pass` be supplied to use for the root User's Account.
- It is recommended to supply SSH keys for the root User using the `authorized_keys` field.
- You may also supply a list of usernames via the `authorized_users` field.
- These users must have an SSH Key associated with your Profile first. See [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) for more information.

- Using one of your other Linode's backups.
- You must create a Linode large enough to accommodate the Backup's size.
- The Disks and Config will match that of the Linode that was backed up.
- The `root_pass` will match that of the Linode that was backed up.

- Attached to a private VLAN.
- Review the `interfaces` property of the [Request Body Schema](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) for details.
- For more information, see our guide on [Getting Started with VLANs](https://www.linode.com/docs/products/networking/vlans/get-started/).

- Create an empty Linode.
- The Linode will remain `offline` and must be manually started.
- Run [Boot a Linode](https://techdocs.akamai.com/linode-api/reference/post-boot-linode-instance).
- Disks and Configs must be created manually.
- This is only recommended for advanced use cases.

Depending on your [account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings), you can choose between legacy configuration interfaces or Linode interfaces when creating a Linode. Only one type of interface is allowed per Linode. The `interface_generation` field lets you select one interface type for new Linodes when both legacy and Linode interfaces options are available on your account. If a Linode is configured with a Linode interface, legacy configuration interfaces can no longer be used on that Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.linode.instances ( -data__authorized_keys, -data__authorized_users, -data__booted, -data__disk_encryption, -data__image, -data__metadata, -data__root_pass, -data__stackscript_data, -data__stackscript_id, -data__backup_id, -data__backups_enabled, -data__firewall_id, -data__group, -data__interface_generation, -data__interfaces, -data__label, -data__network_helper, -data__placement_group, -data__private_ip, -data__region, -data__swap_size, -data__tags, -data__type +authorized_keys, +authorized_users, +booted, +disk_encryption, +image, +maintenance_policy, +metadata, +root_pass, +stackscript_data, +stackscript_id, +backup_id, +backups_enabled, +firewall_id, +group, +interface_generation, +interfaces, +label, +network_helper, +placement_group, +private_ip, +region, +swap_size, +tags, +type ) SELECT '{{ authorized_keys }}', @@ -474,6 +614,7 @@ SELECT {{ booted }}, '{{ disk_encryption }}', '{{ image }}', +'{{ maintenance_policy }}', '{{ metadata }}', '{{ root_pass }}', '{{ stackscript_data }}', @@ -509,6 +650,7 @@ interface_generation, ipv4, ipv6, label, +maintenance_policy, placement_group, region, specs, @@ -522,162 +664,140 @@ watchdog_enabled
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: instances props: - name: authorized_keys - value: array - description: > - __Write-only__ A list of public SSH keys that will be automatically appended to the root user's `~/.ssh/authorized_keys` file when deploying from an Image. - + value: + - "{{ authorized_keys }}" + description: | + __Write-only__ A list of public SSH keys that will be automatically appended to the root user's \`~/.ssh/authorized_keys\` file when deploying from an Image. - name: authorized_users - value: array - description: > - __Write-only__ A list of usernames. If the usernames have associated SSH keys, the keys will be appended to the root users `~/.ssh/authorized_keys` file automatically when deploying from an Image. - + value: + - "{{ authorized_users }}" + description: | + __Write-only__ A list of usernames for authorized users. Before you can add a user, it needs an SSH key assigned to its profile. See [Add an SSH key](https://techdocs.akamai.com/linode-api/reference/post-add-ssh-key) for more information. If the usernames already have associated SSH keys, the keys will be appended to the root users \`~/.ssh/authorized_keys\` file automatically when deploying from an image. - name: booted - value: boolean - description: > - __Write-only__ This field defaults to `true` if the Linode is created with an Image or from a Backup. If it is deployed from an Image or a Backup and you wish it to remain `offline` after deployment, set this to `false`. - + value: {{ booted }} + description: | + __Write-only__ This field defaults to \`true\` if the Linode is created with an Image or from a Backup. If it is deployed from an Image or a Backup and you wish it to remain \`offline\` after deployment, set this to \`false\`. default: true - name: disk_encryption - value: string - description: > + value: "{{ disk_encryption }}" + description: | Local disk encryption ensures that your data stored on Linodes is secured. Disk encryption protects against unauthorized data access by keeping the data encrypted if the disk is ever removed from the data center, decommissioned, or disposed of. The platform manages the encryption and decryption for you. - -By default, encryption is `enabled` on all Linodes. If you opted out of encryption or if the Linode was created prior to local disk encryption support, you can encrypt your data using [Rebuild](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance). - + By default, encryption is \`enabled\` on all Linodes. If you opted out of encryption or if the Linode was created prior to local disk encryption support, you can encrypt your data using [Rebuild](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance). valid_values: ['enabled', 'disabled'] - name: image - value: string - description: > + value: "{{ image }}" + description: | An Image ID to deploy the Linode Disk from. - -Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with `linode/`, while your Account's Images start with `private/`. Creating a disk from a Private Image requires `read_only` or `read_write` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image. - + Run the [List images](https://techdocs.akamai.com/linode-api/reference/get-images) operation with authentication to view all available Images. Official Linode Images start with \`linode/\`, while your Account's Images start with \`private/\`. Creating a disk from a Private Image requires \`read_only\` or \`read_write\` permissions for that Image. Run the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation to adjust permissions for an Account Image. + - name: maintenance_policy + value: "{{ maintenance_policy }}" + description: | + __Beta__ Defines the maintenance policy for this Linode. Choose from the following policies: + - \`linode/migrate\`: Migrates the Linode to a new host while it remains fully operational (with some performance degradation). Recommended for maximizing availability. + - \`linode/power_off_on\`: Powers off the Linode at the start of the maintenance event and reboots it once the maintenance finishes. Recommended for maximizing performance. + Review [maintenance policy](https://techdocs.akamai.com/cloud-computing/docs/host-maintenance-policy) documentation for more details. + valid_values: ['linode/migrate', 'linode/power_off_on'] - name: metadata - value: object - description: > + description: | __Write-only__ An object containing user-defined data relevant to the creation of Linodes. - + value: + user_data: "{{ user_data }}" - name: root_pass - value: string - description: > + value: "{{ root_pass }}" + description: | __Write-only__ This sets the root user's password on a newly created Linode Disk when deploying from an Image. - -- __Required__ when creating a Linode Disk from an Image, including when using a StackScript. - -- Must meet a password strength score requirement that is calculated internally by the API. If the strength requirement is not met, you will receive a `Password does not meet strength requirement` error. - + - __Required__ when creating a Linode Disk from an Image, including when using a StackScript. + - Must meet a password strength score requirement that is calculated internally by the API. If the strength requirement is not met, you will receive a \`Password does not meet strength requirement\` error. - name: stackscript_data - value: object - description: > + value: "{{ stackscript_data }}" + description: | This field is required only if the StackScript being deployed requires input data from the User for successful completion. See [User Defined Fields (UDFs)](https://www.linode.com/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs) for more details. - -This field is required to be valid JSON. - -Total length cannot exceed 65,535 characters. - + This field is required to be valid JSON. + Total length cannot exceed 65,535 characters. (opaque JSON object) - name: stackscript_id - value: integer - description: > - A StackScript ID that will cause the referenced StackScript to be run during deployment of this Linode. A compatible `image` is required to use a StackScript. To get a list of available StackScript and their permitted Images, run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts). This field cannot be used when deploying from a Backup or a Private Image. - + value: {{ stackscript_id }} + description: | + A StackScript ID that will cause the referenced StackScript to be run during deployment of this Linode. A compatible \`image\` is required to use a StackScript. To get a list of available StackScript and their permitted Images, run [List StackScripts](https://techdocs.akamai.com/linode-api/reference/get-stack-scripts). This field cannot be used when deploying from a Backup or a Private Image. - name: backup_id - value: integer - description: > - A Backup ID from another Linode's available backups. Your User must have `read_write` access to that Linode, the Backup must have a `status` of `successful`, and the Linode must be deployed to the same `region` as the Backup. Run [List backups](https://techdocs.akamai.com/linode-api/reference/get-backups) for a Linode's available backups. - -This field and the `image` field are mutually exclusive. - + value: {{ backup_id }} + description: | + A Backup ID from another Linode's available backups. Your User must have \`read_write\` access to that Linode, the Backup must have a \`status\` of \`successful\`, and the Linode must be deployed to the same \`region\` as the Backup. Run [List backups](https://techdocs.akamai.com/linode-api/reference/get-backups) for a Linode's available backups. + This field and the \`image\` field are mutually exclusive. - name: backups_enabled - value: boolean - description: > - If this field is set to `true`, the created Linode will automatically be enrolled in the Linode Backup service. This will incur an additional charge. The cost for the Backup service is dependent on the Type of Linode deployed. - -This option is always treated as `true` if the account-wide `backups_enabled` setting is `true`. See [Get account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings) for more information. - -Backup pricing is included in the response from [List types](https://techdocs.akamai.com/linode-api/reference/get-linode-types) - + value: {{ backups_enabled }} + description: | + If this field is set to \`true\`, the created Linode will automatically be enrolled in the Linode Backup service. This will incur an additional charge. The cost for the Backup service is dependent on the Type of Linode deployed. + This option is always treated as \`true\` if the account-wide \`backups_enabled\` setting is \`true\`. See [Get account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings) for more information. + Backup pricing is included in the response from [List types](https://techdocs.akamai.com/linode-api/reference/get-linode-types) - name: firewall_id - value: integer - description: > - The `id` of the Firewall to attach this Linode to upon creation. This `firewall_id` field is for Linodes using VLAN and legacy configuration interfaces only. - + value: {{ firewall_id }} + description: | + The \`id\` of the Firewall to attach this Linode to upon creation. This \`firewall_id\` field is for Linodes using VLAN and legacy configuration interfaces only. - name: group - value: string - description: > + value: "{{ group }}" + description: | __Deprecated__, __Filterable__ The group label for this Linode. - - name: interface_generation - value: string - description: > - __Beta__ Specifies the interface type for the Linode. The value can be either `legacy_config` or `linode`. The default value is determined by the `interfaces_for_new_linodes` setting in the [account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings). If the `interface_generation` option is set to `linode`, legacy configuration interfaces can no longer be used on the Linode. -- If `interfaces_for_new_linodes` is set to `linode_only`, set `interface_generation` to `linode` or omit it for Linode interfaces. -- If `interfaces_for_new_linodes` is set to `legacy_config_only`, set `interface_generation` to `legacy_config` or omit it for legacy configuration interfaces. -- If `interfaces_for_new_linodes` is set to `linode_default_but_legacy_config_allowed`, set `interface_generation` to `linode` or omit it for Linode interfaces, and to `legacy_config` if the Linode uses legacy configuration interfaces. -- If `interfaces_for_new_linodes` is set to `legacy_config_default_but_linode_allowed`, set `interface_generation` to `legacy_config` or omit it for legacy configuration interfaces, and to `linode` if the Linode uses Linode interfaces. - + value: "{{ interface_generation }}" + description: | + __Beta__ Specifies the interface type for the Linode. The value can be either \`legacy_config\` or \`linode\`. The default value is determined by the \`interfaces_for_new_linodes\` setting in the [account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings). If the \`interface_generation\` option is set to \`linode\`, legacy configuration interfaces can no longer be used on the Linode. + - If \`interfaces_for_new_linodes\` is set to \`linode_only\`, set \`interface_generation\` to \`linode\` or omit it for Linode interfaces. + - If \`interfaces_for_new_linodes\` is set to \`legacy_config_only\`, set \`interface_generation\` to \`legacy_config\` or omit it for legacy configuration interfaces. + - If \`interfaces_for_new_linodes\` is set to \`linode_default_but_legacy_config_allowed\`, set \`interface_generation\` to \`linode\` or omit it for Linode interfaces, and to \`legacy_config\` if the Linode uses legacy configuration interfaces. + - If \`interfaces_for_new_linodes\` is set to \`legacy_config_default_but_linode_allowed\`, set \`interface_generation\` to \`legacy_config\` or omit it for legacy configuration interfaces, and to \`linode\` if the Linode uses Linode interfaces. valid_values: ['legacy_config', 'linode'] - name: interfaces - value: array - description: > + value: "{{ interfaces }}" + description: | Interfaces for the Linode. This can be a Linode interface or legacy configuration interface. - default: - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ Provides a name for the Linode. If not provided, the API generates one for it. - -Linode labels have the following constraints: - -- It needs to begin and end with an alphanumeric character. -- It can only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). -- Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - + Linode labels have the following constraints: + - It needs to begin and end with an alphanumeric character. + - It can only consist of alphanumeric characters, hyphens (\`-\`), underscores (\`_\`) or periods (\`.\`). + - Cannot have two hyphens (\`--\`), underscores (\`__\`) or periods (\`..\`) in a row. - name: network_helper - value: boolean - description: > - Enables the Network Helper feature. The default value is determined by the `network_helper` setting in the [account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings). This `network_helper` field is for Linodes using Linode interfaces only. - + value: {{ network_helper }} + description: | + Enables the Network Helper feature. The default value is determined by the \`network_helper\` setting in the [account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings). This \`network_helper\` field is for Linodes using Linode interfaces only. - name: placement_group - value: object - description: > + description: | Include this to assign this Linode to an existing [placement group](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/). These constraints apply: - -- The target placement group needs to be in the same `region` set for this Linode. -- The placement group needs to have capacity. Run the [Get a region](https://techdocs.akamai.com/linode-api/reference/get-region) operation and note either the `maximum_linodes_per_pg` (strict) or `maximum_linodes_per_flexible_pg` (flexible), based on your selected `placement_group_policy`. These represent the Linode limit per placement group, for each `placement_group_policy` type. You can then run the [Get a placement group](https://techdocs.akamai.com/linode-api/reference/get-placement-group) operation to review the Linodes in that group. - + - The target placement group needs to be in the same \`region\` set for this Linode. + - The placement group needs to have capacity. Run the [Get a region](https://techdocs.akamai.com/linode-api/reference/get-region) operation and note either the \`maximum_linodes_per_pg\` (strict) or \`maximum_linodes_per_flexible_pg\` (flexible), based on your selected \`placement_group_policy\`. These represent the Linode limit per placement group, for each \`placement_group_policy\` type. You can then run the [Get a placement group](https://techdocs.akamai.com/linode-api/reference/get-placement-group) operation to review the Linodes in that group. + value: + id: {{ id }} - name: private_ip - value: boolean - description: > - If `true`, the created Linode will have private networking enabled and assigned a private IPv4 address. - + value: {{ private_ip }} + description: | + If \`true\`, the created Linode will have private networking enabled and assigned a private IPv4 address. - name: region - value: string - description: > + value: "{{ region }}" + description: | The [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the Linode will be located. - - name: swap_size - value: integer - description: > + value: {{ swap_size }} + description: | When deploying from an Image, this field is optional, otherwise it is ignored. This is used to set the swap disk size for the newly created Linode. - default: 512 - name: tags - value: array - description: > + value: + - "{{ tags }}" + description: | __Filterable__ Tags to help you organize your content. - - name: type - value: string - description: > + value: "{{ type }}" + description: | The [Linode type](https://techdocs.akamai.com/linode-api/reference/get-linode-types) of the Linode you are creating. - -``` +`} +
@@ -685,24 +805,27 @@ Linode labels have the following constraints: ## `REPLACE` examples - + Updates a Linode that you have permission to `read_write`. Only unrestricted users can add or modify tags on Linodes.
<<LB>>

> 🚧
>
> All tags for the instance are overwritten if `tags` are included in the request.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.linode.instances SET -data__alerts = '{{ alerts }}', -data__backups = '{{ backups }}', -data__group = '{{ group }}', -data__label = '{{ label }}', -data__tags = '{{ tags }}', -data__watchdog_enabled = {{ watchdog_enabled }} +alerts = '{{ alerts }}', +backups = '{{ backups }}', +group = '{{ group }}', +label = '{{ label }}', +maintenance_policy = '{{ maintenance_policy }}', +tags = '{{ tags }}', +watchdog_enabled = {{ watchdog_enabled }} +WHERE +linodeId = '{{ linodeId }}' --required RETURNING id, lke_cluster_id, @@ -720,6 +843,7 @@ interface_generation, ipv4, ipv6, label, +maintenance_policy, placement_group, region, specs, @@ -736,17 +860,18 @@ watchdog_enabled; ## `DELETE` examples - + Deletes a Linode you have permission to `read_write`.

__Deleting a Linode is a destructive action and cannot be undone.__

Additionally, deleting a Linode:

- Gives up any IP addresses the Linode was assigned.
- Deletes all Disks, Backups, Configs, etc.
- Detaches any Volumes associated with the Linode.
- Stops billing for the Linode and its associated services. You will be billed for time used within the billing period the Linode was active.

Linodes that are in the process of [cloning](https://techdocs.akamai.com/linode-api/reference/post-clone-linode-instance) or [backup restoration](https://techdocs.akamai.com/linode-api/reference/post-restore-backup) cannot be deleted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.linode.instances +WHERE linodeId = '{{ linodeId }}' --required ; ```
@@ -756,26 +881,27 @@ DELETE FROM linode.linode.instances ## Lifecycle Methods - + Boots a Linode you have permission to modify.

If the Linode is using config profiles, and no parameters are given, a config profile is chosen for this boot based on the following criteria:
- If there is only one config profile for this Linode, it will be used.
- If there is more than one config profile, the last booted config will be used.
- If there is more than one config profile and none were the last to be booted (because the Linode was never booted or the last booted config was deleted) an error will be returned.

If the Linode is using Linode interfaces, where `interface_generation` is set as `linode`, an error is returned if the Linode has to boot without any interface defined.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.instances.post_boot_linode_instance +EXEC linode.linode.instances.boot +@linodeId='{{ linodeId }}' --required @@json= '{ "config_id": {{ config_id }} @@ -783,12 +909,13 @@ EXEC linode.linode.instances.post_boot_linode_instance ; ```
- + You can clone your Linode's existing disks, configuration profiles and interfaces to another Linode on your account. In order for this request to complete successfully, you need the `add_linodes` grant.

For Linodes using Linode interfaces, the clone needs to be located in a region that supports Linode interfaces (see [GET a region](https://techdocs.akamai.com/linode-api/reference/get-region)). The [account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings) need to allow creation of Linodes with Linode interfaces.

Cloning to a new Linode incurs a charge on your account.

If cloning to an existing Linode, any actions currently running or queued must be completed first before you can clone to it.

Up to five clone operations from any given source Linode can be run concurrently. If more concurrent clones are attempted, an HTTP 400 error will be returned by this operation.

Any [tags](https://techdocs.akamai.com/linode-api/reference/get-tags) existing on the source Linode will be cloned to the target Linode.

Linodes utilizing Metadata (`"has_user_data": true`) must be cloned to a new Linode with `metadata.user_data` included with the clone request.

`vpc` details

- If the Linode you're cloning has a `vpc` interface on its active legacy configuration profile that includes a 1:1 NAT, the resulting clone is configured with an `any` 1:1 NAT.
- See the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications) guide for its specifications and limitations.

`vlan` details

- Only Next Generation Network (NGN) data centers support VLANs. If a VLAN is attached to your Linode and you attempt clone it to a non-NGN data center, the cloning will not initiate. If a Linode cannot be cloned because of an incompatibility, you will be prompted to select a different data center or contact support.
- See the [VLANs Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications) guide to view additional specifications and limitations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.instances.post_clone_linode_instance +EXEC linode.linode.instances.clone +@linodeId='{{ linodeId }}' --required @@json= '{ "backups_enabled": {{ backups_enabled }}, @@ -797,6 +924,7 @@ EXEC linode.linode.instances.post_clone_linode_instance "group": "{{ group }}", "label": "{{ label }}", "linode_id": {{ linode_id }}, +"maintenance_policy": "{{ maintenance_policy }}", "metadata": "{{ metadata }}", "placement_group": "{{ placement_group }}", "private_ip": {{ private_ip }}, @@ -806,12 +934,13 @@ EXEC linode.linode.instances.post_clone_linode_instance ; ```
- + Initiate a pending host migration that has been scheduled by Linode or initiate a cross data center (DC) migration. A list of pending migrations, if any, can be accessed from [List notifications](https://techdocs.akamai.com/linode-api/reference/get-notifications). When the migration begins, your Linode will be shutdown if not already off. If the migration initiated the shutdown, it will reboot the Linode when completed.

To initiate a cross DC migration, you must pass a `region` parameter to the request body specifying the target data center region. You can view a list of all available regions and their feature capabilities from [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions). See our [Pricing Page](https://www.linode.com/pricing/) for Region-specific pricing, which applies after migration is complete. If your Linode has a DC migration already queued or you have initiated a previously scheduled migration, you will not be able to initiate a DC migration until it has completed.

`vpc` details

- Cross DC migrations don't work for Linodes that have a `vpc` purpose legacy configuration interface or a VPC Linode interface. They work for host migrations within the same DC.
- See the [VPC documentation](https://www.linode.com/docs/products/networking/vpc/#technical-specifications) guide for its specifications and limitations.

`vlan` details:

- Only Next Generation Network (NGN) data centers support VLANs. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the capabilities of data center regions. If a VLAN is attached to your Linode and you attempt to migrate or clone it to a non-NGN data center, the migration or cloning will not initiate. If a Linode cannot be migrated or cloned because of an incompatibility, you will be prompted to select a different data center or contact support.
- Next Generation Network (NGN) data centers do not support IPv6 `/116` pools or IP Failover. If you have these features enabled on your Linode and attempt to migrate to an NGN data center, the migration will not initiate. If a Linode cannot be migrated because of an incompatibility, you will be prompted to select a different data center or contact support.
- See the [VLANs Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications) guide to view additional specifications and limitations.

`public` details:

- If the Linode is using Linode interfaces, the destination region needs to also support Linode interfaces.
- After migrating to a different data center, Linode public interfaces retain the same number of IP addresses, but the IP addresses themselves change.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.instances.post_migrate_linode_instance +EXEC linode.linode.instances.migrate +@linodeId='{{ linodeId }}' --required @@json= '{ "placement_group": "{{ placement_group }}", @@ -822,12 +951,13 @@ EXEC linode.linode.instances.post_migrate_linode_instance ; ```
- + Linodes created with now-deprecated Types are entitled to a free upgrade to the next generation. A mutating Linode will be allocated any new resources the upgraded Type provides, and will be subsequently restarted if it was currently running. If any actions are currently running or queued, those actions must be completed first before you can initiate a mutate.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.instances.post_mutate_linode_instance +EXEC linode.linode.instances.mutate +@linodeId='{{ linodeId }}' --required @@json= '{ "allow_auto_disk_resize": {{ allow_auto_disk_resize }} @@ -835,12 +965,13 @@ EXEC linode.linode.instances.post_mutate_linode_instance ; ```
- + Resets the root password for this Linode.

- Your Linode must be [shut down](https://techdocs.akamai.com/linode-api/reference/post-shutdown-linode-instance) for a password reset to complete.
- If your Linode has more than one disk (not counting its swap disk), run the [Reset a disk root password](https://techdocs.akamai.com/linode-api/reference/post-reset-disk-password) operation to update a specific disk's root password.
- A `password_reset` event is generated when a root password reset is successful.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.instances.post_reset_linode_password +EXEC linode.linode.instances.reset_password +@linodeId='{{ linodeId }}' --required @@json= '{ "root_pass": "{{ root_pass }}" @@ -848,12 +979,13 @@ EXEC linode.linode.instances.post_reset_linode_password ; ```
- + Reboots a Linode you have permission to modify. If any actions are currently running or queued, those actions must be completed first before you can initiate a reboot.

If the Linode is using Linode interfaces, where `interface_generation` is set as `linode`, an error is returned if the Linode has to reboot without any interface defined.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.instances.post_reboot_linode_instance +EXEC linode.linode.instances.reboot +@linodeId='{{ linodeId }}' --required @@json= '{ "config_id": {{ config_id }} @@ -861,12 +993,13 @@ EXEC linode.linode.instances.post_reboot_linode_instance ; ```
- + Rebuilds a Linode you have the `read_write` permission to modify.

A rebuild first shuts down the Linode, deletes all disks and configuration profiles on the Linode, then deploys a new `image` to the Linode with the given attributes. Additionally:

- Requires an `image` be supplied.
- Requires a `root_pass` be supplied to use for the root User's Account.
- It is recommended to supply SSH keys for the root User using the `authorized_keys` field.
- Linodes utilizing Metadata (`"has_user_data": true`) should include `metadata.user_data` in the rebuild request to continue using the service.

Linode interfaces don't change during a rebuild.

During a rebuild, you can `enable` or `disable` local disk encryption. If disk encryption is not included in the request, the previous `disk_encryption` value is used. Disk encryption cannot be disabled if the compute instance is attached to a LKE nodepool.

You also have the option to resize the Linode to a different plan by including the `type` parameter with your request. Note that resizing involves migrating the Linode to a new hardware host, while rebuilding without resizing maintains the same hardware host. Resizing also requires significantly more time for completion of this operation. The following additional conditions apply:

- The Linode must not have a pending migration.
- Your Account cannot have an outstanding balance.
- The Linode must not have more disk allocation than the new Type allows.
- In that situation, you must first delete or resize the disk to be smaller.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.instances.post_rebuild_linode_instance +EXEC linode.linode.instances.rebuild +@linodeId='{{ linodeId }}' --required @@json= '{ "authorized_keys": "{{ authorized_keys }}", @@ -874,6 +1007,7 @@ EXEC linode.linode.instances.post_rebuild_linode_instance "booted": {{ booted }}, "disk_encryption": "{{ disk_encryption }}", "image": "{{ image }}", +"maintenance_policy": "{{ maintenance_policy }}", "metadata": "{{ metadata }}", "root_pass": "{{ root_pass }}", "stackscript_data": "{{ stackscript_data }}", @@ -883,12 +1017,13 @@ EXEC linode.linode.instances.post_rebuild_linode_instance ; ```
- + Rescue Mode is a safe environment for performing many system recovery and disk management tasks. Rescue Mode is based on the Finnix recovery distribution, a self-contained and bootable Linux distribution. You can also use Rescue Mode for tasks other than disaster recovery, such as formatting disks to use different filesystems, copying data between disks, and downloading files from a disk via SSH and SFTP.

Linodes with legacy configuration interfaces receive a public IP and boot into the recovery Linux distribution. Linodes with Linode interfaces still boot into recovery mode with the recovery Linux distribution, but they retain their original network interfaces and settings from before entering rescue mode.

- Note that `sdh` is reserved and unavailable during rescue.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.instances.post_rescue_linode_instance +EXEC linode.linode.instances.rescue +@linodeId='{{ linodeId }}' --required @@json= '{ "devices": "{{ devices }}" @@ -896,12 +1031,13 @@ EXEC linode.linode.instances.post_rescue_linode_instance ; ```
- + Resizes a Linode you have the `read_write` permission to a different Type. If any actions are currently running or queued, those actions must be completed first before you can initiate a resize. Additionally, the following criteria must be met in order to resize a Linode:

- The Linode must not have a pending migration.
- Your Account cannot have an outstanding balance.
- The Linode must not have more disk allocation than the new Type allows.
- In that situation, you must first delete or resize the disk to be smaller.

You can also resize a Linode when using the [Rebuild a Linode](https://techdocs.akamai.com/linode-api/reference/post-rebuild-linode-instance) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.instances.post_resize_linode_instance +EXEC linode.linode.instances.resize +@linodeId='{{ linodeId }}' --required @@json= '{ "allow_auto_disk_resize": {{ allow_auto_disk_resize }}, @@ -911,13 +1047,13 @@ EXEC linode.linode.instances.post_resize_linode_instance ; ```
- + Shuts down a Linode you have permission to modify. If any actions are currently running or queued, those actions must be completed first before you can initiate a shutdown.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.instances.post_shutdown_linode_instance - +EXEC linode.linode.instances.shutdown +@linodeId='{{ linodeId }}' --required ; ```
diff --git a/website/docs/services/linode/interface_firewalls/index.md b/website/docs/services/linode/interface_firewalls/index.md index 268128f..fd8d80f 100644 --- a/website/docs/services/linode/interface_firewalls/index.md +++ b/website/docs/services/linode/interface_firewalls/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an interface_firewalls res ## Overview - +
Nameinterface_firewalls
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an interface_firewalls res The following fields are returned by `SELECT` queries: - + Returns a paginated list of firewalls assigned to an interface. @@ -58,12 +59,17 @@ Returns a paginated list of firewalls assigned to an interface. string (date-time) - __Filterable__, __Read-only__ When this Firewall was created. (example: 2018-01-01T00:01:01) + __Filterable__, __Read-only__ When this Firewall was created. (example: 2025-01-01T00:01:01) + + + + array + __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. string - __Filterable__ The Firewall's label, for display purposes only. Firewall labels have the following constraints: - Must begin and end with an alphanumeric character. - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - Must be between 3 and 32 characters. - Must be unique. (example: firewall123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) + __Filterable__ The Firewall's label, for display purposes only. Firewall labels have the following constraints: - Must begin and end with an alphanumeric character. - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - Must be between 3 and 32 characters. - Must be unique. (example: firewall123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) @@ -73,7 +79,7 @@ Returns a paginated list of firewalls assigned to an interface. string - __Read-only__ The status of this Firewall. - When a Firewall is first created its status is `enabled`. - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`. - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall. (example: enabled) + __Read-only__ The status of this Firewall. - When a Firewall is first created its status is `enabled`. - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`. - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall. (enabled, disabled, deleted) (example: enabled) @@ -83,7 +89,7 @@ Returns a paginated list of firewalls assigned to an interface. string (date-time) - __Filterable__, __Read-only__ When this Firewall was last updated. (example: 2018-01-02T00:01:01) + __Filterable__, __Read-only__ When this Firewall was last updated. (example: 2025-01-02T00:01:01) @@ -106,9 +112,9 @@ The following methods are available for this resource: - + - + linodeId, interfaceId __Beta__ Lists firewalls assigned to an interface.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -128,18 +134,28 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The `id` of the Linode interface. + + + + string + The `id` of the Linode. + ## `SELECT` examples - + __Beta__ Lists firewalls assigned to an interface.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -147,12 +163,15 @@ __Beta__ Lists firewalls assigned to an interface.

[Learn more...](ht SELECT id, created, +entities, label, rules, status, tags, updated FROM linode.linode.interface_firewalls +WHERE linodeId = '{{ linodeId }}' -- required +AND interfaceId = '{{ interfaceId }}' -- required ; ```
diff --git a/website/docs/services/linode/interface_history/index.md b/website/docs/services/linode/interface_history/index.md new file mode 100644 index 0000000..fa1ae0a --- /dev/null +++ b/website/docs/services/linode/interface_history/index.md @@ -0,0 +1,160 @@ +--- +title: interface_history +hide_title: false +hide_table_of_contents: false +keywords: + - interface_history + - linode + - linode + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage linode resources using SQL +custom_edit_url: null +image: /img/stackql-linode-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 interface_history resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Returns a paginated list of network interface versions for a Linode. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer__Filterable__, __Read-only__ The unique ID for this history version.
integer__Filterable__, __Read-only__ The network interface defined in the `version`.
integer__Filterable__, __Read-only__ The Linode the `interface_id` belongs to.
string (date-time)__Filterable__, __Read-only__ When this version was created. Use `created` to determine which settings an interface prevously had. (example: 2025-08-01T00:01:01)
stringThe JSON body returned in response to a successful `PUT`, `POST`, or `DELETE` operation on the interface.
integer__Filterable__, __Read-only__ The network interface's version. The first version from a `POST` is `1`. The version number is incremented when the network interface configuration is changed.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
linodeId__Beta__ Lists the history of network interfaces by version for a Linode. This operation is for Linode interfaces, and not for legacy configuration profile interfaces.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
+ +## 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. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe `id` of the Linode.
+ +## `SELECT` examples + + + + +__Beta__ Lists the history of network interfaces by version for a Linode. This operation is for Linode interfaces, and not for legacy configuration profile interfaces.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + +```sql +SELECT +interface_history_id, +interface_id, +linode_id, +created, +interface_data, +version +FROM linode.linode.interface_history +WHERE linodeId = '{{ linodeId }}' -- required +; +``` +
+
diff --git a/website/docs/services/linode/interface_settings/index.md b/website/docs/services/linode/interface_settings/index.md index e87e1d7..0703146 100644 --- a/website/docs/services/linode/interface_settings/index.md +++ b/website/docs/services/linode/interface_settings/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an interface_settings reso ## Overview - +
Nameinterface_settings
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an interface_settings reso The following fields are returned by `SELECT` queries: - + Returns a single Linode interface settings object. @@ -81,16 +82,16 @@ The following methods are available for this resource: - + - + linodeId __Beta__ Lists a Linode's interface settings, including Network Helper and default route settings. This operation is for Linode interfaces, not for legacy configuration profile interfaces.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId __Beta__ Updates Network Helper and default route settings on the Linode. __CLI: Public interface__.

```
linode-cli linodes interface-settings-update $linodeId \
--network_helper true \
--default_route.ipv4_interface_id 4527 \
--default_route.ipv6_interface_id 4541 \
--default_route.ipv4_eligible_interface_ids 4527 \
--default_route.ipv4_eligible_interface_ids 4541 \
--default_route.ipv6_eligible_interface_ids 4527 \
--default_route.ipv6_eligible_interface_ids 4541
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: VLAN interface__.

```
linode-cli linodes interface-settings-update $linodeId \
--network_helper true
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: VPC interface__.

```
linode-cli linodes interface-settings-update $linodeId \
--network_helper true \
--default_route.ipv4_interface_id 5527 \
--default_route.ipv4_eligible_interface_ids 5527 \
--default_route.ipv4_eligible_interface_ids 5541
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -110,18 +111,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The `id` of the Linode. + ## `SELECT` examples - + __Beta__ Lists a Linode's interface settings, including Network Helper and default route settings. This operation is for Linode interfaces, not for legacy configuration profile interfaces.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -130,6 +136,7 @@ SELECT default_route, network_helper FROM linode.linode.interface_settings +WHERE linodeId = '{{ linodeId }}' -- required ; ```
@@ -139,20 +146,22 @@ FROM linode.linode.interface_settings ## `REPLACE` examples - + __Beta__ Updates Network Helper and default route settings on the Linode. __CLI: Public interface__.

```
linode-cli linodes interface-settings-update $linodeId \
--network_helper true \
--default_route.ipv4_interface_id 4527 \
--default_route.ipv6_interface_id 4541 \
--default_route.ipv4_eligible_interface_ids 4527 \
--default_route.ipv4_eligible_interface_ids 4541 \
--default_route.ipv6_eligible_interface_ids 4527 \
--default_route.ipv6_eligible_interface_ids 4541
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: VLAN interface__.

```
linode-cli linodes interface-settings-update $linodeId \
--network_helper true
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: VPC interface__.

```
linode-cli linodes interface-settings-update $linodeId \
--network_helper true \
--default_route.ipv4_interface_id 5527 \
--default_route.ipv4_eligible_interface_ids 5527 \
--default_route.ipv4_eligible_interface_ids 5541
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.linode.interface_settings SET -data__default_route = '{{ default_route }}', -data__network_helper = {{ network_helper }} +default_route = '{{ default_route }}', +network_helper = {{ network_helper }} +WHERE +linodeId = '{{ linodeId }}' --required RETURNING default_route, network_helper; diff --git a/website/docs/services/linode/interfaces/index.md b/website/docs/services/linode/interfaces/index.md index 049f089..f8c77a3 100644 --- a/website/docs/services/linode/interfaces/index.md +++ b/website/docs/services/linode/interfaces/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an interfaces resource. ## Overview - +
Nameinterfaces
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an interfaces resource. The following fields are returned by `SELECT` queries: - + Returns a single interface available for a Linode. @@ -54,12 +55,12 @@ Returns a single interface available for a Linode. integer - __Read-only__ The unique ID for this interface. For `dry_run` upgrades, a unique `id` is not generated for the interface and its value is set to 0. + __Read-only__ The unique ID for this interface. For `dry_run` [upgrades](https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces), a unique `id` is not generated for the interface and its value is set to 0. string (date-time) - When the interface was created. (example: 2025-01-01T00:01:01) + When the interface was created. (example: 2024-01-01T00:01:01) @@ -69,17 +70,17 @@ Returns a single interface available for a Linode. string - A 48-bit MAC address used to identify the Linode's interface. The `mac_address` of an interface remains constant and does not change. (example: 22:00:AB:CD:EF:01, pattern: [a-zA-Z0-9-]+) + A 48-bit MAC address used to identify the Linode’s interface. A public interface's `mac_address` does not change, even if the public interface is deleted and then recreated. (example: 22:00:AB:CD:EF:01, pattern: [a-zA-Z0-9-]+) object - Public interface configuration. Null if not a public interface. + Public interface type. string (date-time) - When the interface was last updated. (example: 2025-01-01T00:01:01) + When the interface was last updated. (example: 2024-01-01T00:01:01) @@ -88,18 +89,18 @@ Returns a single interface available for a Linode. - object - VLAN interface configuration. Null if not a VLAN interface. + string + The value is `null` if this is not a VLAN interface. (opaque JSON object) object - VPC interface configuration. Null if not a VPC interface. + The value is `null` if this is not a VPC interface. - + A list of all the interfaces available for a Linode. @@ -112,6 +113,11 @@ A list of all the interfaces available for a Linode. + + + array + Any of the following interface types: VPC, public, or VLAN. + @@ -133,44 +139,44 @@ The following methods are available for this resource: - + - + linodeId, interfaceId __Beta__ Returns an interface assigned to a specific Linode. This operation requires the `read_only` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId __Beta__ This operation returns all interfaces assigned to a specific Linode. They list in the order they were created. On the Linode, interfaces also list in this order, and are typically named `eth0`, `eth1`, `eth2`, and so on. The MAC address is the most reliable method to identify an interface. This operation requires the `read_only` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode. The Linode needs to use `interfaces` and not configuration profile interfaces. Run [Get account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings) to see if Linode interfaces are supported.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId __Beta__ Creates an interface for the Linode. This interface links to the Linode, rather than to a configuration profile. You can create, delete, or update interfaces when the Linode is either powered off or in the process of being created.

Firewalls are applied to the Linode interface, not directly to the Linode itself. You can add, delete, or update these firewalls at any time.

This operation requires the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

A successful request triggers an `interface_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

You need to set one interface type: `vpc`, `public`, or `vlan`. Omit the others or set them to `null`.

A Linode can have up to three interfaces:

- Only one `public` interface is allowed on a Linode.

- Multiple `vlan` interfaces are allowed, provided that they belong to distinct VLANs, which have unique `vlan_labels`.

- One `vpc` interface is allowed.

The Linode must be located in a region that supports Linode interfaces. Run [Get a region](https://techdocs.akamai.com/linode-api/reference/get-region) to see if interfaces are supported in that region. __CLI: Public interface__.

```
linode-cli linodes interface-add $linodeId \
--firewall_id 123 \
--default_route.ipv4 true \
--default_route.ipv6 true \
--public.ipv4.addresses '[{"address": "192.0.2.141", "primary": true}, {"address": "auto", "primary": false}]' \
--public.ipv6.ranges '[{"range": "2001:0db8::1/64"}, {"range": "/64"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: VLAN interface__.

```
linode-cli linodes interface-add $linodeId \
--vlan.vlan_label my-vlan \
--vlan.ipam_address 192.168.2.2/24
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: VPC interface__.

```
linode-cli linodes interface-add $linodeId \
--firewall_id 123 \
--default_route.ipv4 true \
--vpc.subnet_id 321 \
--vpc.ipv4.addresses '[{"address": "10.0.0.1", "primary": true, "nat_1_1_address": "auto"}, {"address": "auto", "primary": false, "nat_1_1_address": null}]' \
--vpc.ipv4.ranges '[{"range": "/28"}, {"range": "10.11.12.0/24"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId, interfaceId __Beta__ Update the configuration of a Linode interface. __CLI: Public interface__.

```
linode-cli linodes interface-update $linodeId $interfaceId \
--default_route.ipv4 true \
--default_route.ipv6 false \
--public.ipv4.addresses '[{"address": "192.0.2.141", "primary": true}, {"address": "auto", "primary": false}]' \
--public.ipv6.ranges '[{"range": "2001:0db8"::1/64"}, {"range": "/64"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: VLAN interface__.

```
linode-cli linodes interface-update $linodeId $interfaceId \
--vlan.vlan_label my-vlan \
--vlan.ipam_address 192.168.2.2/24
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: VPC interface__.

```
linode-cli linodes interface-update $linodeId $interfaceId \
--default_route.ipv4 true \
--vpc.subnet_id 321 \
--vpc.ipv4.addresses '[{"address": "10.0.0.1", "primary": true, "nat_1_1_address": "auto"}, {"address": "auto", "primary": false, "nat_1_1_address": null}]' \
--vpc.ipv4.ranges '[{"range": "/28"}, {"range": "10.11.12.0/24"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId, interfaceId __Beta__ Deletes a Linode interface on a specific Linode. To access this operation, you need the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode. You can't delete an active interface. First, you need to shut down the associated Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId __Beta__ Automatically upgrades all legacy config interfaces of a single configuration profile to Linode interfaces. A Linode interface is directly associated with the Linode, rather than being tied to a configuration profile.

Firewalls are applied to the Linode interface, not directly to the Linode itself.

> ❗️ This upgrade is irreversible
>
> Once you upgrade a Linode to use Linode interfaces, you can't use legacy config interfaces. This means you can no longer use the Linode with any Linode products that require private IPs, such as NodeBalancer. You can use `dry_run` to preview the upgrade.

Before upgrading interfaces, you can check the new Linode interface configuration by performing a dry run, where you set `dry_run` to `true` or omit it. A `dry_run` runs the upgrade logic and returns a JSON representation of what the interface configuration will be after the upgrade without committing any changes.

When you run this operation with `dry_run` set to `false`, the following occurs:
- It creates matching interfaces on the Linode based on the interfaces present on the `config_id`.
- All firewalls are removed from the Linode. Any firewalls that were originally attached to the Linode are now applied to the public and VPC interfaces. If the Linode has no firewalls attached, then default firewalls are not used.
- If no legacy config interfaces are defined (`legacy_config`) in the `config_id`, a public interface is created using the public IPv4 assigned to the Linode. The same is the case if the Linode has no config defined.
- For public interfaces, the Linode's current MAC address and SLAAC address are conserved. The MAC address won't change.
- It deletes all legacy config interfaces from all configs.
- It returns the list of interfaces for the Linode.

Requirements:
- The `config_id` for the legacy config interfaces can't use a public interface private IPv4 address.
- The Linode needs a MAC address in the database if it's IPv6 enabled. If it doesn't, an error message tells you what to do.
- The Linode must be in a region that supports Linode interfaces. Run [Get a region](https://techdocs.akamai.com/linode-api/reference/get-region).
- Your account must allow creation of Linodes with Linode interfaces, run [Get account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings).
- If the Linode has a user with a non-standard username, it can't be upgraded.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -190,19 +196,29 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The `id` of the Linode interface. + + + + string + The `id` of the Linode. + ## `SELECT` examples - + __Beta__ Returns an interface assigned to a specific Linode. This operation requires the `read_only` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -218,17 +234,20 @@ version, vlan, vpc FROM linode.linode.interfaces +WHERE linodeId = '{{ linodeId }}' -- required +AND interfaceId = '{{ interfaceId }}' -- required ; ```
- + __Beta__ This operation returns all interfaces assigned to a specific Linode. They list in the order they were created. On the Linode, interfaces also list in this order, and are typically named `eth0`, `eth1`, `eth2`, and so on. The MAC address is the most reliable method to identify an interface. This operation requires the `read_only` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode. The Linode needs to use `interfaces` and not configuration profile interfaces. Run [Get account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings) to see if Linode interfaces are supported.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -* +interfaces FROM linode.linode.interfaces +WHERE linodeId = '{{ linodeId }}' -- required ; ```
@@ -238,32 +257,94 @@ FROM linode.linode.interfaces ## `INSERT` examples - + __Beta__ Creates an interface for the Linode. This interface links to the Linode, rather than to a configuration profile. You can create, delete, or update interfaces when the Linode is either powered off or in the process of being created.

Firewalls are applied to the Linode interface, not directly to the Linode itself. You can add, delete, or update these firewalls at any time.

This operation requires the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode.

A successful request triggers an `interface_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

You need to set one interface type: `vpc`, `public`, or `vlan`. Omit the others or set them to `null`.

A Linode can have up to three interfaces:

- Only one `public` interface is allowed on a Linode.

- Multiple `vlan` interfaces are allowed, provided that they belong to distinct VLANs, which have unique `vlan_labels`.

- One `vpc` interface is allowed.

The Linode must be located in a region that supports Linode interfaces. Run [Get a region](https://techdocs.akamai.com/linode-api/reference/get-region) to see if interfaces are supported in that region. __CLI: Public interface__.

```
linode-cli linodes interface-add $linodeId \
--firewall_id 123 \
--default_route.ipv4 true \
--default_route.ipv6 true \
--public.ipv4.addresses '[{"address": "192.0.2.141", "primary": true}, {"address": "auto", "primary": false}]' \
--public.ipv6.ranges '[{"range": "2001:0db8::1/64"}, {"range": "/64"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: VLAN interface__.

```
linode-cli linodes interface-add $linodeId \
--vlan.vlan_label my-vlan \
--vlan.ipam_address 192.168.2.2/24
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: VPC interface__.

```
linode-cli linodes interface-add $linodeId \
--firewall_id 123 \
--default_route.ipv4 true \
--vpc.subnet_id 321 \
--vpc.ipv4.addresses '[{"address": "10.0.0.1", "primary": true, "nat_1_1_address": "auto"}, {"address": "auto", "primary": false, "nat_1_1_address": null}]' \
--vpc.ipv4.ranges '[{"range": "/28"}, {"range": "10.11.12.0/24"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.linode.interfaces ( - +default_route, +firewall_id, +public, +vlan, +vpc, +linodeId ) SELECT - +'{{ default_route }}', +{{ firewall_id }}, +'{{ public }}', +'{{ vlan }}', +'{{ vpc }}', +'{{ linodeId }}' +RETURNING +id, +created, +default_route, +mac_address, +public, +updated, +version, +vlan, +vpc ; ```
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: interfaces props: -``` + - name: linodeId + value: "{{ linodeId }}" + description: Required parameter for the interfaces resource. + - name: default_route + description: | + Indicates if the interface serves as the default route when multiple interfaces are eligible for this role. A public interface can have both an IPv4 \`default_route\` and an IPv6 \`default_route\`, provided it has at least one IP address of the corresponding type. + value: + ipv4: {{ ipv4 }} + ipv6: {{ ipv6 }} + - name: firewall_id + value: {{ firewall_id }} + description: | + The enabled firewall to secure a VPC or public interface. Not allowed for VLAN interfaces. If a \`firewall_id\` is not provided for a VPC or a public interface, then its [default interface firewall](https://techdocs.akamai.com/linode-api/reference/get-linode-interface-firewalls) is used. If a default firewall is not available, and \`null\` is not specified, the request fails. Setting the \`firewall_id\` as \`null\` indicates that no firewall device will be attached to the interface. + - name: public + description: | + Public interface settings. A Linode can have only one public interface. A public interface can have both IPv4 and IPv6 configurations. + value: + ipv4: + addresses: + - address: "{{ address }}" + primary: {{ primary }} + ipv6: + ranges: + - range: "{{ range }}" + - name: vlan + description: | + VLAN interface settings. A Linode can have up to three VLAN interfaces, with a unique \`vlan_label\` for each. + value: + ipam_address: "{{ ipam_address }}" + vlan_label: "{{ vlan_label }}" + - name: vpc + description: | + VPC interface settings. A Linode can have one VPC interface. The maximum number of interfaces allowed on a Linode is three. + value: + ipv4: + addresses: + - address: "{{ address }}" + nat_1_1_address: "{{ nat_1_1_address }}" + primary: {{ primary }} + ranges: + - range: "{{ range }}" + subnet_id: {{ subnet_id }} +`} +
@@ -271,19 +352,35 @@ SELECT ## `REPLACE` examples - + __Beta__ Update the configuration of a Linode interface. __CLI: Public interface__.

```
linode-cli linodes interface-update $linodeId $interfaceId \
--default_route.ipv4 true \
--default_route.ipv6 false \
--public.ipv4.addresses '[{"address": "192.0.2.141", "primary": true}, {"address": "auto", "primary": false}]' \
--public.ipv6.ranges '[{"range": "2001:0db8"::1/64"}, {"range": "/64"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: VLAN interface__.

```
linode-cli linodes interface-update $linodeId $interfaceId \
--vlan.vlan_label my-vlan \
--vlan.ipam_address 192.168.2.2/24
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: VPC interface__.

```
linode-cli linodes interface-update $linodeId $interfaceId \
--default_route.ipv4 true \
--vpc.subnet_id 321 \
--vpc.ipv4.addresses '[{"address": "10.0.0.1", "primary": true, "nat_1_1_address": "auto"}, {"address": "auto", "primary": false, "nat_1_1_address": null}]' \
--vpc.ipv4.ranges '[{"range": "/28"}, {"range": "10.11.12.0/24"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.linode.interfaces SET --- No updatable properties; +default_route = '{{ default_route }}', +public = '{{ public }}', +vlan = '{{ vlan }}', +vpc = '{{ vpc }}' +WHERE +linodeId = '{{ linodeId }}' --required +AND interfaceId = '{{ interfaceId }}' --required +RETURNING +id, +created, +default_route, +mac_address, +public, +updated, +version, +vlan, +vpc; ```
@@ -292,17 +389,19 @@ SET ## `DELETE` examples - + __Beta__ Deletes a Linode interface on a specific Linode. To access this operation, you need the `read_write` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) for the Linode. You can't delete an active interface. First, you need to shut down the associated Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.linode.interfaces +WHERE linodeId = '{{ linodeId }}' --required +AND interfaceId = '{{ interfaceId }}' --required ; ```
@@ -312,17 +411,18 @@ DELETE FROM linode.linode.interfaces ## Lifecycle Methods - + __Beta__ Automatically upgrades all legacy config interfaces of a single configuration profile to Linode interfaces. A Linode interface is directly associated with the Linode, rather than being tied to a configuration profile.

Firewalls are applied to the Linode interface, not directly to the Linode itself.

> ❗️ This upgrade is irreversible
>
> Once you upgrade a Linode to use Linode interfaces, you can't use legacy config interfaces. This means you can no longer use the Linode with any Linode products that require private IPs, such as NodeBalancer. You can use `dry_run` to preview the upgrade.

Before upgrading interfaces, you can check the new Linode interface configuration by performing a dry run, where you set `dry_run` to `true` or omit it. A `dry_run` runs the upgrade logic and returns a JSON representation of what the interface configuration will be after the upgrade without committing any changes.

When you run this operation with `dry_run` set to `false`, the following occurs:
- It creates matching interfaces on the Linode based on the interfaces present on the `config_id`.
- All firewalls are removed from the Linode. Any firewalls that were originally attached to the Linode are now applied to the public and VPC interfaces. If the Linode has no firewalls attached, then default firewalls are not used.
- If no legacy config interfaces are defined (`legacy_config`) in the `config_id`, a public interface is created using the public IPv4 assigned to the Linode. The same is the case if the Linode has no config defined.
- For public interfaces, the Linode's current MAC address and SLAAC address are conserved. The MAC address won't change.
- It deletes all legacy config interfaces from all configs.
- It returns the list of interfaces for the Linode.

Requirements:
- The `config_id` for the legacy config interfaces can't use a public interface private IPv4 address.
- The Linode needs a MAC address in the database if it's IPv6 enabled. If it doesn't, an error message tells you what to do.
- The Linode must be in a region that supports Linode interfaces. Run [Get a region](https://techdocs.akamai.com/linode-api/reference/get-region).
- Your account must allow creation of Linodes with Linode interfaces, run [Get account settings](https://techdocs.akamai.com/linode-api/reference/get-account-settings).
- If the Linode has a user with a non-standard username, it can't be upgraded.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.linode.interfaces.post_upgrade_linode_interfaces +EXEC linode.linode.interfaces.upgrade +@linodeId='{{ linodeId }}' --required @@json= '{ "config_id": {{ config_id }}, diff --git a/website/docs/services/linode/ip_addresses/index.md b/website/docs/services/linode/ip_addresses/index.md index e492096..de04d76 100644 --- a/website/docs/services/linode/ip_addresses/index.md +++ b/website/docs/services/linode/ip_addresses/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an ip_addresses resource. ## Overview - +
Nameip_addresses
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an ip_addresses resource. The following fields are returned by `SELECT` queries: - + A single IP address. @@ -99,7 +100,7 @@ A single IP address. string - __Read-only__ The type of address this is. (example: ipv4) + __Read-only__ The type of address this is. (ipv4, ipv6, ipv6/pool, ipv6/range) (example: ipv4) @@ -109,7 +110,7 @@ A single IP address. - + Requested Linode's networking configuration. @@ -153,37 +154,37 @@ The following methods are available for this resource: - + - + linodeId, address View information for a Linode's set of IPs, its Linode interfaces and VPC IPs and ranges.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Returns networking information for a single Linode.

> 📘
>
> If the target Linode has several configuration profiles that include a Virtual Private Cloud (VPC) interface, the response lists address information for all of the VPCs.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__type, data__public + linodeId, type, public Allocates a public or private IPv4 address to a Linode. Public IP Addresses, after the one included with each Linode, incur an additional monthly charge. If you need an additional public IP Address you must request one - please [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket). You may not add more than one private IPv4 address to a single Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__rdns + linodeId, address, rdns Updates the reverse DNS (RDNS) for a Linode's IP Address. This may be done for both IPv4 and IPv6 addresses.

Setting the RDNS to `null` for a public IPv4 address, resets it to the default `ip.linodeusercontent.com` RDNS value.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId, address Deletes a public or private IPv4 address associated with this Linode. This will fail if it is the Linode's last remaining public IPv4 address, or if the address has a 1:1 NAT with an active VPC Subnet address.

> 📘
>
> You can't use this operation to delete an IP assigned to a Linode interface. Run the [update the Linode interface](https://techdocs.akamai.com/linode-api/reference/put-linode-interface) operation instead.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -203,19 +204,29 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string (ip) + The IP address. (example: {{address}}) + + + + string + The ID of the Linode. + ## `SELECT` examples - + View information for a Linode's set of IPs, its Linode interfaces and VPC IPs and ranges.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -233,10 +244,12 @@ subnet_mask, type, vpc_nat_1_1 FROM linode.linode.ip_addresses +WHERE linodeId = '{{ linodeId }}' -- required +AND address = '{{ address }}' -- required ; ```
- + Returns networking information for a single Linode.

> 📘
>
> If the target Linode has several configuration profiles that include a Virtual Private Cloud (VPC) interface, the response lists address information for all of the VPCs.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -245,6 +258,7 @@ SELECT ipv4, ipv6 FROM linode.linode.ip_addresses +WHERE linodeId = '{{ linodeId }}' -- required ; ```
@@ -254,24 +268,26 @@ FROM linode.linode.ip_addresses ## `INSERT` examples - + Allocates a public or private IPv4 address to a Linode. Public IP Addresses, after the one included with each Linode, incur an additional monthly charge. If you need an additional public IP Address you must request one - please [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket). You may not add more than one private IPv4 address to a single Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.linode.ip_addresses ( -data__public, -data__type +public, +type, +linodeId ) SELECT {{ public }} /* required */, -'{{ type }}' /* required */ +'{{ type }}' /* required */, +'{{ linodeId }}' RETURNING interface_id, linode_id, @@ -289,22 +305,23 @@ vpc_nat_1_1
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: ip_addresses props: + - name: linodeId + value: "{{ linodeId }}" + description: Required parameter for the ip_addresses resource. - name: public - value: boolean - description: > + value: {{ public }} + description: | Whether to create a public or private IPv4 address. - - name: type - value: string - description: > + value: "{{ type }}" + description: | The type of address you are allocating. Only IPv4 addresses may be allocated through this operation. - valid_values: ['ipv4'] -``` +`} +
@@ -312,21 +329,23 @@ vpc_nat_1_1 ## `REPLACE` examples - + Updates the reverse DNS (RDNS) for a Linode's IP Address. This may be done for both IPv4 and IPv6 addresses.

Setting the RDNS to `null` for a public IPv4 address, resets it to the default `ip.linodeusercontent.com` RDNS value.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.linode.ip_addresses SET -data__rdns = '{{ rdns }}' +rdns = '{{ rdns }}' WHERE -data__rdns = '{{ rdns }}' --required +linodeId = '{{ linodeId }}' --required +AND address = '{{ address }}' --required +AND rdns = '{{ rdns }}' --required RETURNING interface_id, linode_id, @@ -347,17 +366,19 @@ vpc_nat_1_1; ## `DELETE` examples - + Deletes a public or private IPv4 address associated with this Linode. This will fail if it is the Linode's last remaining public IPv4 address, or if the address has a 1:1 NAT with an active VPC Subnet address.

> 📘
>
> You can't use this operation to delete an IP assigned to a Linode interface. Run the [update the Linode interface](https://techdocs.akamai.com/linode-api/reference/put-linode-interface) operation instead.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.linode.ip_addresses +WHERE linodeId = '{{ linodeId }}' --required +AND address = '{{ address }}' --required ; ```
diff --git a/website/docs/services/linode/kernels/index.md b/website/docs/services/linode/kernels/index.md index 9151e50..cb239ae 100644 --- a/website/docs/services/linode/kernels/index.md +++ b/website/docs/services/linode/kernels/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a kernels resource. ## Overview - +
Namekernels
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a kernels resource. The following fields are returned by `SELECT` queries: - + A single Kernel object. @@ -59,7 +60,7 @@ A single Kernel object. string - __Filterable__, __Read-only__ The architecture of this Kernel. (example: x86_64) + __Filterable__, __Read-only__ The architecture of this Kernel. (x86_64, i386) (example: x86_64) @@ -94,7 +95,7 @@ A single Kernel object. - + Returns an array of Kernels. @@ -108,24 +109,44 @@ Returns an array of Kernels. - - array - + + string + __Read-only__ The unique ID of this Kernel. (example: linode/latest-64bit) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__, __Read-only__ The architecture of this Kernel. (x86_64, i386) (example: x86_64) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ The date on which this Kernel was built. (example: 2018-01-01T00:01:01) - - integer - __Read-only__ The total number of results. + + boolean + __Filterable__, __Read-only__ If this Kernel is marked as deprecated, this field has a value of `true`; otherwise, this field is `false`. + + + + boolean + __Filterable__, __Read-only__ If this Kernel is suitable for KVM Linodes. + + + + string + __Filterable__, __Read-only__ The friendly name of this Kernel. (example: Latest 64 bit (4.15.7-x86_64-linode102)) + + + + boolean + __Filterable__, __Read-only__ If this Kernel is suitable for paravirtualized operations. + + + + string + __Filterable__, __Read-only__ Linux Kernel version. (example: 4.15.7) @@ -148,14 +169,14 @@ The following methods are available for this resource: - + - + kernelId Returns information about a single Kernel.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + page, page_size @@ -177,6 +198,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Kernel to look up. (example: {{kernelId}}) + integer @@ -193,13 +219,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns information about a single Kernel.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -214,19 +240,24 @@ label, pvops, version FROM linode.linode.kernels +WHERE kernelId = '{{ kernelId }}' -- required ; ```
- + Lists available Kernels.

Due to the extensive list of available kernels, please keep [pagination](https://techdocs.akamai.com/linode-api/reference/pagination) controls in mind when managing responses to this operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +architecture, +built, +deprecated, +kvm, +label, +pvops, +version FROM linode.linode.kernels WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' diff --git a/website/docs/services/linode/network_transfer_statistics/index.md b/website/docs/services/linode/network_transfer_statistics/index.md index 2860506..b7e282a 100644 --- a/website/docs/services/linode/network_transfer_statistics/index.md +++ b/website/docs/services/linode/network_transfer_statistics/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a network_transfer_statistics -Namenetwork_transfer_statistics +Name TypeResource Id @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a network_transfer_statistics - + A collection of the specified Linode's network transfer statistics for the requested month. @@ -86,11 +87,11 @@ The following methods are available for this resource: - + + linodeId, year, month - - Returns a Linode's network transfer statistics for a specific month. The year/month values must be either a date in the past, or the current month. __OAuth scopes__.

```
linodes:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a Linode's network transfer pool statistics for a specific month. If the `{year}` and `{month}` are set to the current month, the API returns statistics for the past 30 days. __OAuth scopes__.

```
linodes:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -108,20 +109,35 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Linode to look up. + + + + string + Numeric value representing the month to look up. + + + + string + Numeric value representing the year to look up. + ## `SELECT` examples - + -Returns a Linode's network transfer statistics for a specific month. The year/month values must be either a date in the past, or the current month. __OAuth scopes__.

```
linodes:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a Linode's network transfer pool statistics for a specific month. If the `{year}` and `{month}` are set to the current month, the API returns statistics for the past 30 days. __OAuth scopes__.

```
linodes:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -129,6 +145,9 @@ bytes_in, bytes_out, bytes_total FROM linode.linode.network_transfer_statistics +WHERE linodeId = '{{ linodeId }}' -- required +AND year = '{{ year }}' -- required +AND month = '{{ month }}' -- required ; ```
diff --git a/website/docs/services/linode/network_transfers/index.md b/website/docs/services/linode/network_transfers/index.md index 6b666ce..748a557 100644 --- a/website/docs/services/linode/network_transfers/index.md +++ b/website/docs/services/linode/network_transfers/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a network_transfers resour ## Overview - +
Namenetwork_transfers
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a network_transfers resour The following fields are returned by `SELECT` queries: - + A collection of the specified Linode's network transfer statistics. @@ -86,9 +87,9 @@ The following methods are available for this resource: - + - + linodeId Returns a Linode's network transfer pool statistics for the current month.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -108,18 +109,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Linode to look up. + ## `SELECT` examples - + Returns a Linode's network transfer pool statistics for the current month.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -129,6 +135,7 @@ billable, quota, used FROM linode.linode.network_transfers +WHERE linodeId = '{{ linodeId }}' -- required ; ```
diff --git a/website/docs/services/linode/node_balancers/index.md b/website/docs/services/linode/node_balancers/index.md index 1d2e884..071795d 100644 --- a/website/docs/services/linode/node_balancers/index.md +++ b/website/docs/services/linode/node_balancers/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a node_balancers resource. ## Overview - +
Namenode_balancers
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a node_balancers resource. The following fields are returned by `SELECT` queries: - + Returns a paginated list of NodeBalancers. @@ -51,24 +52,69 @@ Returns a paginated list of NodeBalancers. - - array - + + integer + __Read-only__ This NodeBalancer's unique ID. - + integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + Throttle TCP connections per second for TCP, HTTP, and HTTPS configurations. Set to `0` (zero) to disable throttling. - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ When this NodeBalancer was created. (example: 2018-01-01T00:01:01) - - integer - __Read-only__ The total number of results. + + string + __Read-only__ This NodeBalancer's hostname, beginning with its IP address and ending with _.ip.linodeusercontent.com_. (example: 192.0.2.1.ip.linodeusercontent.com) + + + + string (ip) + __Filterable__, __Read-only__ This NodeBalancer's public IPv4 address. (example: 203.0.113.1) + + + + string (ip) + __Read-only__ This NodeBalancer's public IPv6 address. + + + + string + __Filterable__ This NodeBalancer's label. These must be unique on your Account. (example: balancer12345, pattern: [a-zA-Z0-9-_]{3,32}) + + + + object + __Read-only__ This NodeBalancer's related LKE cluster, if any. The value is `null` if this NodeBalancer isn't related to an LKE cluster. + + + + string + __Filterable__, __Read-only__ The Region where this NodeBalancer is located. NodeBalancers only support backends in the same Region. (example: us-east) + + + + array + __Filterable__ An array of Tags applied to this object. Tags are for organizational purposes only. + + + + object + __Read-only__ Information about the amount of transfer this NodeBalancer has had so far this month. + + + + string + __Read-only__ The type of NodeBalancer. (common, premium) (example: premium) + + + + string (date-time) + __Read-only__ When this NodeBalancer was last updated. (example: 2018-03-01T00:01:01) @@ -91,9 +137,9 @@ The following methods are available for this resource: - + - + linodeId Returns a list of NodeBalancers that are assigned to this Linode and readable by the requesting User.

Read permission to a NodeBalancer can be given to a User by accessing the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -113,28 +159,43 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Linode to look up. + ## `SELECT` examples - + Returns a list of NodeBalancers that are assigned to this Linode and readable by the requesting User.

Read permission to a NodeBalancer can be given to a User by accessing the [Update a user's grants](https://techdocs.akamai.com/linode-api/reference/put-user-grants) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +client_conn_throttle, +created, +hostname, +ipv4, +ipv6, +label, +lke_cluster, +region, +tags, +transfer, +type, +updated FROM linode.linode.node_balancers +WHERE linodeId = '{{ linodeId }}' -- required ; ```
diff --git a/website/docs/services/linode/stack_scripts/index.md b/website/docs/services/linode/stack_scripts/index.md index d5412e5..5969953 100644 --- a/website/docs/services/linode/stack_scripts/index.md +++ b/website/docs/services/linode/stack_scripts/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a stack_scripts resource. ## Overview - +
Namestack_scripts
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a stack_scripts resource. The following fields are returned by `SELECT` queries: - + A single StackScript. @@ -129,7 +130,7 @@ A single StackScript. - + A list of StackScripts available to the User, including private StackScripts owned by the User if the request is authenticated. @@ -143,24 +144,79 @@ A list of StackScripts available to the User, including private StackScripts own - - array - + + integer + __Read-only__ The unique ID of this StackScript. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Read-only__ The Gravatar ID for the User who created the StackScript. (example: a445b305abda30ebc766bc7fda037c37) - + + string (date-time) + __Read-only__ The date this StackScript was created. (example: 2018-01-01T00:01:01) + + + integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + __Read-only__ Count of currently active, deployed Linodes created from this StackScript. - + integer - __Read-only__ The total number of results. + __Filterable__, __Read-only__ The total number of times this StackScript has been deployed. + + + + string + __Filterable__ A description for the StackScript. (example: This StackScript installs and configures MySQL) + + + + array + An array of Image IDs. These are the Images that can be deployed with this StackScript. `any/all` indicates that all available Images, including private Images, are accepted. + + + + boolean + __Filterable__ This determines whether other users can use your StackScript. __Once a StackScript is made public, it cannot be made private.__ + + + + string + __Filterable__ The StackScript's label is for display purposes only. (example: a-stackscript) + + + + boolean + __Filterable__, __Read-only__ Returns `true` if this StackScript is owned by the account of the user making the request, and the user making the request is unrestricted or has access to this StackScript. + + + + string + __Filterable__ This field allows you to add notes for the set of revisions made to this StackScript. (example: Set up MySQL) + + + + string + The script to execute when provisioning a new Linode with this StackScript. (example: \"#!/bin/bash\", x-linode-cli-format: file) + + + + string (date-time) + __Read-only__ The date this StackScript was last updated. (example: 2018-01-01T00:01:01) + + + + array + __Read-only__ This is a list of fields defined with a special syntax inside this StackScript that allow for supplying customized parameters during deployment. See [Declare User-Defined Fields (UDFs)](https://www.linode.com/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs) for more information. + + + + string + __Read-only__ The User who created the StackScript. (example: myuser) @@ -183,37 +239,37 @@ The following methods are available for this resource: - + - + stackscriptId Returns all of the information about a specified StackScript, including the contents of the script.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size If the request is not authenticated, only public StackScripts are returned.

For more information on StackScripts, please read our [StackScripts documentation](https://www.linode.com/docs/products/tools/stackscripts/).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__script, data__label, data__images + script, label, images Creates a StackScript in your Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + stackscriptId Updates a StackScript.

__Once a StackScript is made public, it cannot be made private.__

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + stackscriptId Deletes a private StackScript you have permission to `read_write`. You cannot delete a public StackScript.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -233,6 +289,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the StackScript to look up. (example: {{stackscriptId}}) + integer @@ -249,13 +310,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns all of the information about a specified StackScript, including the contents of the script.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -277,19 +338,31 @@ updated, user_defined_fields, username FROM linode.linode.stack_scripts +WHERE stackscriptId = '{{ stackscriptId }}' -- required ; ```
- + If the request is not authenticated, only public StackScripts are returned.

For more information on StackScripts, please read our [StackScripts documentation](https://www.linode.com/docs/products/tools/stackscripts/).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +user_gravatar_id, +created, +deployments_active, +deployments_total, +description, +images, +is_public, +label, +mine, +rev_note, +script, +updated, +user_defined_fields, +username FROM linode.linode.stack_scripts WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -302,24 +375,24 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Creates a StackScript in your Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.linode.stack_scripts ( -data__description, -data__images, -data__is_public, -data__label, -data__rev_note, -data__script +description, +images, +is_public, +label, +rev_note, +script ) SELECT '{{ description }}', @@ -349,43 +422,37 @@ username
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: stack_scripts props: - name: description - value: string - description: > + value: "{{ description }}" + description: | __Filterable__ A description for the StackScript. - - name: images - value: array - description: > + value: + - "{{ images }}" + description: | An array of Image IDs. These are the Images that can be deployed with this StackScript. - -`any/all` indicates that all available Images, including private Images, are accepted. - + \`any/all\` indicates that all available Images, including private Images, are accepted. - name: is_public - value: boolean - description: > + value: {{ is_public }} + description: | __Filterable__ This determines whether other users can use your StackScript. __Once a StackScript is made public, it cannot be made private.__ - - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ The StackScript's label is for display purposes only. - - name: rev_note - value: string - description: > + value: "{{ rev_note }}" + description: | __Filterable__ This field allows you to add notes for the set of revisions made to this StackScript. - - name: script - value: string - description: > + value: "{{ script }}" + description: | The script to execute when provisioning a new Linode with this StackScript. - -``` +`} +
@@ -393,24 +460,26 @@ username ## `REPLACE` examples - + Updates a StackScript.

__Once a StackScript is made public, it cannot be made private.__

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.linode.stack_scripts SET -data__description = '{{ description }}', -data__images = '{{ images }}', -data__is_public = {{ is_public }}, -data__label = '{{ label }}', -data__rev_note = '{{ rev_note }}', -data__script = '{{ script }}' +description = '{{ description }}', +images = '{{ images }}', +is_public = {{ is_public }}, +label = '{{ label }}', +rev_note = '{{ rev_note }}', +script = '{{ script }}' +WHERE +stackscriptId = '{{ stackscriptId }}' --required RETURNING id, user_gravatar_id, @@ -435,17 +504,18 @@ username; ## `DELETE` examples - + Deletes a private StackScript you have permission to `read_write`. You cannot delete a public StackScript.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.linode.stack_scripts +WHERE stackscriptId = '{{ stackscriptId }}' --required ; ```
diff --git a/website/docs/services/linode/statistics/index.md b/website/docs/services/linode/statistics/index.md index fe18fb7..8b1761b 100644 --- a/website/docs/services/linode/statistics/index.md +++ b/website/docs/services/linode/statistics/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a statistics resource. ## Overview - +
Namestatistics
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a statistics resource. The following fields are returned by `SELECT` queries: - + The Linode's statistics for the requested period. @@ -79,7 +80,7 @@ The Linode's statistics for the requested period. - + The Linode's stats for the past 24 hours. @@ -138,16 +139,16 @@ The following methods are available for this resource: - + + linodeId, year, month - - Returns statistics for a specific month. The year/month values must be either a date in the past, or the current month. If the current month, statistics will be retrieved for the past 30 days. __OAuth scopes__.

```
linodes:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns CPU, IO, IPv4, and IPv6 statistics for your Linode for a specific month. If the `{year}` and `{month}` are set to the current month, the API returns statistics for the past 30 days. __OAuth scopes__.

```
linodes:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + linodeId Returns CPU, IO, IPv4, and IPv6 statistics for your Linode for the past 24 hours. __OAuth scopes__.

```
linodes:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -167,21 +168,36 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Linode to look up. + + + + string + Numeric value representing the month to look up. + + + + string + Numeric value representing the year to look up. + ## `SELECT` examples - + -Returns statistics for a specific month. The year/month values must be either a date in the past, or the current month. If the current month, statistics will be retrieved for the past 30 days. __OAuth scopes__.

```
linodes:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns CPU, IO, IPv4, and IPv6 statistics for your Linode for a specific month. If the `{year}` and `{month}` are set to the current month, the API returns statistics for the past 30 days. __OAuth scopes__.

```
linodes:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -191,10 +207,13 @@ netv4, netv6, title FROM linode.linode.statistics +WHERE linodeId = '{{ linodeId }}' -- required +AND year = '{{ year }}' -- required +AND month = '{{ month }}' -- required ; ```
- + Returns CPU, IO, IPv4, and IPv6 statistics for your Linode for the past 24 hours. __OAuth scopes__.

```
linodes:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -206,6 +225,7 @@ netv4, netv6, title FROM linode.linode.statistics +WHERE linodeId = '{{ linodeId }}' -- required ; ```
diff --git a/website/docs/services/linode/types/index.md b/website/docs/services/linode/types/index.md index bec4027..37cb4f6 100644 --- a/website/docs/services/linode/types/index.md +++ b/website/docs/services/linode/types/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a types resource. ## Overview - +
Nametypes
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a types resource. The following fields are returned by `SELECT` queries: - + A single Linode Type. @@ -64,7 +65,7 @@ A single Linode Type. string - __Filterable__, __Read-only__ The class of the Linode type. - `nanode`. These instances are good for low-duty workloads, where performance isn't critical. - `standard`. These instances are good for medium-duty workloads, and offer a good mix of performance, resources, and price. - `dedicated`. These instances are good for full-duty workloads where consistent performance is important. - `premium` (limited regions). This includes the features of a `dedicated` instance as well as the latest AMD EPYC™ CPUs. This ensures your applications are running on the latest hardware with consistently high performance. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with "Premium Plans" in their `capabilities`. - `gpu` (limited regions). Linodes with dedicated NVIDIA Quadro® RTX 6000 GPUs accelerate highly specialized applications such as machine learning, AI, and video transcoding. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with `GPU Linodes` in their `capabilities`. - `accelerated` (limited regions). These leverage the power of dedicated, application-specific integrated circuits (ASIC), starting with NETINT Video Processing Units (VPUs). They're ideal for video transcoding, media processing, and other compute-heavy workloads. Designed to offload specialized tasks, these instances deliver faster processing times and greater efficiency than traditional CPU-based solutions. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with `Accelerated` in their `capabilities`. - `highmem`. High Memory instances favor RAM over other resources, and can be good for memory hungry use cases like caching and in-memory databases. All High Memory plans contain dedicated CPU cores. > 📘 > > - A `nanode` class is listed as a 1 GB Linode in Cloud Manager. The API, the CLI, and billing continue to refer to these as a Nanode. > > - A `standard` class is listed as a Shared Linode in Cloud Manager. The API, the CLI, and billing still refer to these as Standard. (example: standard) + __Filterable__, __Read-only__ The class of the Linode type. - `nanode`. These instances are good for low-duty workloads, where performance isn't critical. - `standard`. These instances are good for medium-duty workloads, and offer a good mix of performance, resources, and price. - `dedicated`. These instances are good for full-duty workloads where consistent performance is important. - `premium` (limited regions). This includes the features of a `dedicated` instance as well as the latest AMD EPYC™ CPUs. This ensures your applications are running on the latest hardware with consistently high performance. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with "Premium Plans" in their `capabilities`. - `gpu` (limited regions). Linodes with dedicated NVIDIA Quadro® RTX 6000 GPUs accelerate highly specialized applications such as machine learning, AI, and video transcoding. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with `GPU Linodes` in their `capabilities`. - `accelerated` (limited regions). These leverage the power of dedicated, application-specific integrated circuits (ASIC), starting with NETINT Video Processing Units (VPUs). They're ideal for video transcoding, media processing, and other compute-heavy workloads. Designed to offload specialized tasks, these instances deliver faster processing times and greater efficiency than traditional CPU-based solutions. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with `Accelerated` in their `capabilities`. - `highmem`. High Memory instances favor RAM over other resources, and can be good for memory hungry use cases like caching and in-memory databases. All High Memory plans contain dedicated CPU cores. > 📘 > > - A `nanode` class is listed as a 1 GB Linode in Cloud Manager. The API, the CLI, and billing continue to refer to these as a Nanode. > > - A `standard` class is listed as a Shared Linode in Cloud Manager. The API, the CLI, and billing still refer to these as Standard. (nanode, standard, dedicated, premium, gpu, accelerated, highmem) (example: standard) @@ -119,7 +120,7 @@ A single Linode Type. - + A collection of Linode Types. @@ -133,24 +134,69 @@ A collection of Linode Types. - - array - The Linode types. + + string + __Read-only__ The ID representing the Linode type. (example: g6-standard-2) + + + + object + __Read-only__ Optional add-on services for Linodes and their associated cost. - + + string + __Filterable__, __Read-only__ The class of the Linode type. - `nanode`. These instances are good for low-duty workloads, where performance isn't critical. - `standard`. These instances are good for medium-duty workloads, and offer a good mix of performance, resources, and price. - `dedicated`. These instances are good for full-duty workloads where consistent performance is important. - `premium` (limited regions). This includes the features of a `dedicated` instance as well as the latest AMD EPYC™ CPUs. This ensures your applications are running on the latest hardware with consistently high performance. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with "Premium Plans" in their `capabilities`. - `gpu` (limited regions). Linodes with dedicated NVIDIA Quadro® RTX 6000 GPUs accelerate highly specialized applications such as machine learning, AI, and video transcoding. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with `GPU Linodes` in their `capabilities`. - `accelerated` (limited regions). These leverage the power of dedicated, application-specific integrated circuits (ASIC), starting with NETINT Video Processing Units (VPUs). They're ideal for video transcoding, media processing, and other compute-heavy workloads. Designed to offload specialized tasks, these instances deliver faster processing times and greater efficiency than traditional CPU-based solutions. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with `Accelerated` in their `capabilities`. - `highmem`. High Memory instances favor RAM over other resources, and can be good for memory hungry use cases like caching and in-memory databases. All High Memory plans contain dedicated CPU cores. > 📘 > > - A `nanode` class is listed as a 1 GB Linode in Cloud Manager. The API, the CLI, and billing continue to refer to these as a Nanode. > > - A `standard` class is listed as a Shared Linode in Cloud Manager. The API, the CLI, and billing still refer to these as Standard. (nanode, standard, dedicated, premium, gpu, accelerated, highmem) (example: standard) + + + integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + __Filterable__, __Read-only__ The Linode type's disk size in MB. + + + + integer + __Filterable__, __Read-only__ The number of GPUs this Linode type offers. + + + + string + __Filterable__, __Read-only__ The display name for the Linode type. (example: Linode 4GB) + + + + integer + __Filterable__, __Read-only__ Amount of RAM included in this Linode type. + + + + integer + __Filterable__, __Read-only__ The Mbits outbound bandwidth allocation. - + + object + __Read-only__ The default cost of provisioning this Linode type. Prices are in U.S. dollars, broken down into hourly and monthly charges. Certain regions have different prices. For region-specific pricing, see `region_prices`. + + + + array + + + + + string + __Read-only__ After a [mutate](https://techdocs.akamai.com/linode-api/reference/post-mutate-linode-instance), the Linode is upgraded to this Linode type. If `null`, this Linode type can't be mutated. + + + integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + __Filterable__, __Read-only__ The monthly outbound transfer amount in MB. - + integer - __Read-only__ The total number of results. + __Filterable__, __Read-only__ The number of VCPU cores this Linode type offers. @@ -173,14 +219,14 @@ The following methods are available for this resource: - + - + typeId Returns information about a specific Linode Type, including pricing and specifications. This is used when [creating](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) or [resizing](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance) Linodes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + @@ -202,19 +248,24 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Linode Type to look up. (example: {{typeId}}) + ## `SELECT` examples - + Returns information about a specific Linode Type, including pricing and specifications. This is used when [creating](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) or [resizing](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance) Linodes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -234,19 +285,29 @@ successor, transfer, vcpus FROM linode.linode.types +WHERE typeId = '{{ typeId }}' -- required ; ```
- + Returns Linode Types, including pricing and specifications for each Type. Use these when [creating](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) or [resizing](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance) Linodes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +addons, +class, +disk, +gpus, +label, +memory, +network_out, +price, +region_prices, +successor, +transfer, +vcpus FROM linode.linode.types ; ``` diff --git a/website/docs/services/linode/volumes/index.md b/website/docs/services/linode/volumes/index.md index ae4236a..eec58ae 100644 --- a/website/docs/services/linode/volumes/index.md +++ b/website/docs/services/linode/volumes/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a volumes resource. ## Overview - +
Namevolumes
Name
TypeResource
Id
@@ -32,14 +33,14 @@ Creates, updates, deletes, gets or lists a volumes resource. The following fields are returned by `SELECT` queries: - + -Returns an array of Block Storage Volumes attached to this Linode. +Returns the Block Storage volumes attached to this Linode. @@ -51,24 +52,74 @@ Returns an array of Block Storage Volumes attached to this Linode. - - - + + + - + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + - + + + + + + + + + + + + + + + +
arrayinteger__Read-only__ The unique identifier for the volume.
integer__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).The unique identifier of the Linode this volume is attached to, if applicable.
integer__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).string (date-time)__Read-only__ When this volume was created. (example: 2025-01-01T00:01:01)
string__Read-only__ Whether encryption is enabled on this volume. (enabled, disabled) (example: enabled)
string__Read-only__ The full file system path for the volume, based on its `label`. The path is `/dev/disk/by-id/scsi-0Linode_Volume_label`. (example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume)
string__Read-only__ The storage type of this volume. This can be either `hdd` to emulate a hard disk drive for the volume, or `nvme` to emulate a non-volatile memory express solid state drive. (hdd, nvme) (example: nvme)
boolean__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.
string__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`. (example: my-volume, pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$)
string__Read-only__ The name of the Linode this volume is attached to, if applicable. (example: linode123)
stringThe unique identifier for the region where the volume lives. (example: us-iad)
integer__Read-only__ The total number of results.The volume's size, in gigabytes.
string__Read-only__ The current status of the volume. This can be one of: - `creating`. The API is creating the volume and it's not ready for use. - `active`. The volume is online and ready for use. - `resizing`. The volume's capacity is being upgraded. - `key_rotating`. The volume's encryption keys are being rotated to new values. Requests to resize, delete, or clone a volume fail during encryption key rotation. (creating, active, resizing, key_rotating) (example: active)
array__Filterable__ Any tags applied to this object. Use [tags](https://techdocs.akamai.com/linode-api/reference/post-tag) to label and organize your cloud computing resources.
string (date-time)__Read-only__ When this volume was last updated. (example: 2025-01-01T00:01:01)
@@ -91,11 +142,11 @@ The following methods are available for this resource: - + - + linodeId page, page_size - View Block Storage Volumes attached to this Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + View the Block Storage volumes attached to this Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -113,6 +164,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Linode to look up. + integer @@ -129,23 +185,34 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -View Block Storage Volumes attached to this Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +View the Block Storage volumes attached to this Linode.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +linode_id, +created, +encryption, +filesystem_path, +hardware_type, +io_ready, +label, +linode_label, +region, +size, +status, +tags, +updated FROM linode.linode.volumes -WHERE page = '{{ page }}' +WHERE linodeId = '{{ linodeId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` diff --git a/website/docs/services/lke/api_endpoints/index.md b/website/docs/services/lke/api_endpoints/index.md index b4e7b6a..af988e5 100644 --- a/website/docs/services/lke/api_endpoints/index.md +++ b/website/docs/services/lke/api_endpoints/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an api_endpoints resource. ## Overview - +
Nameapi_endpoints
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an api_endpoints resource. The following fields are returned by `SELECT` queries: - + Returns the Kubernetes API server endpoints for this cluster. @@ -51,24 +52,9 @@ Returns the Kubernetes API server endpoints for this cluster. - - array - The Kubernetes API server endpoints for this cluster. - - - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - __Read-only__ The total number of results. + + string + __Read-only__ A Kubernetes API server endpoint for this cluster. (example: https://192.0.2.1:6443) @@ -91,9 +77,9 @@ The following methods are available for this resource: - + - + clusterId List the Kubernetes API server endpoints for this cluster. Please note that it often takes 2-5 minutes before the endpoint is ready after first [creating a new cluster](https://techdocs.akamai.com/linode-api/reference/post-lke-cluster).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -113,28 +99,31 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Kubernetes cluster to look up. (example: {{clusterId}}) + ## `SELECT` examples - + List the Kubernetes API server endpoints for this cluster. Please note that it often takes 2-5 minutes before the endpoint is ready after first [creating a new cluster](https://techdocs.akamai.com/linode-api/reference/post-lke-cluster).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +endpoint FROM linode.lke.api_endpoints +WHERE clusterId = '{{ clusterId }}' -- required ; ```
diff --git a/website/docs/services/lke/cluster_dashboard/index.md b/website/docs/services/lke/cluster_dashboard/index.md index 67cc972..f16429c 100644 --- a/website/docs/services/lke/cluster_dashboard/index.md +++ b/website/docs/services/lke/cluster_dashboard/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a cluster_dashboard resour ## Overview - +
Namecluster_dashboard
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a cluster_dashboard resour The following fields are returned by `SELECT` queries: - + Returns a Kubernetes Cluster Dashboard URL. @@ -76,9 +77,9 @@ The following methods are available for this resource: - + - + clusterId Get a [Kubernetes Dashboard](https://github.com/kubernetes/dashboard) access URL for this Cluster, which enables performance of administrative tasks through a web interface.

Dashboards are installed for Clusters by default.

To access the Cluster Dashboard login prompt, enter the URL in a web browser. Select either __Token__ or __Kubeconfig__ authentication, then select __Sign in__.

For additional guidance on using the Cluster Dashboard, see the [Navigating the Cluster Dashboard](https://www.linode.com/docs/guides/using-the-kubernetes-dashboard-on-lke/#navigating-the-cluster-dashboard) section of our guide on [Using the Kubernetes Dashboard on LKE](https://www.linode.com/docs/guides/using-the-kubernetes-dashboard-on-lke/).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -98,18 +99,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Kubernetes cluster to look up. (example: {{clusterId}}) + ## `SELECT` examples - + Get a [Kubernetes Dashboard](https://github.com/kubernetes/dashboard) access URL for this Cluster, which enables performance of administrative tasks through a web interface.

Dashboards are installed for Clusters by default.

To access the Cluster Dashboard login prompt, enter the URL in a web browser. Select either __Token__ or __Kubeconfig__ authentication, then select __Sign in__.

For additional guidance on using the Cluster Dashboard, see the [Navigating the Cluster Dashboard](https://www.linode.com/docs/guides/using-the-kubernetes-dashboard-on-lke/#navigating-the-cluster-dashboard) section of our guide on [Using the Kubernetes Dashboard on LKE](https://www.linode.com/docs/guides/using-the-kubernetes-dashboard-on-lke/).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -117,6 +123,7 @@ Get a [Kubernetes Dashboard](https://github.com/kubernetes/dashboard) access URL SELECT url FROM linode.lke.cluster_dashboard +WHERE clusterId = '{{ clusterId }}' -- required ; ```
diff --git a/website/docs/services/lke/clusters/index.md b/website/docs/services/lke/clusters/index.md index 4bfe8dc..8e2d785 100644 --- a/website/docs/services/lke/clusters/index.md +++ b/website/docs/services/lke/clusters/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a clusters resource. ## Overview - +
Nameclusters
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a clusters resource. The following fields are returned by `SELECT` queries: - + Returns a single Kubernetes cluster. @@ -56,6 +57,16 @@ Returns a single Kubernetes cluster. integer __Read-only__ This Kubernetes cluster's unique ID. + + + integer + __Beta__, __LKE Enterprise__ The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must have both IPv4 and IPv6 enabled (dual-stack). When this field is specified, the cluster is deployed to the given subnet and its corresponding VPC. To specify a VPC and have a subnet auto-allocated, use `vpc_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster. > 🚧 > > This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`. + + + + integer + __Beta__, __LKE Enterprise__ The ID of the VPC to use for the Kubernetes cluster. An appropriately sized subnet is auto-allocated. To specify an existing subnet, use `subnet_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster. > 🚧 > > This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`. + boolean @@ -74,7 +85,7 @@ Returns a single Kubernetes cluster. string - __Filterable__ The desired Kubernetes version for this Kubernetes cluster in the format of `.`. The latest supported patch version is deployed. (example: 1.32) + __Filterable__ The desired Kubernetes version for this Kubernetes cluster in the format of `.`. The latest supported patch version is deployed. (example: 1.33) @@ -86,6 +97,11 @@ Returns a single Kubernetes cluster. string __Filterable__ This Kubernetes cluster's location. (example: us-central) + + + string + __Beta__, __LKE Enterprise__ The networking stack type of the Kubernetes cluster. This specifies that the cluster is IPv4 only (default) or supports both IPv4 and IPv6 (dual-stack). > 🚧 > > This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`. (ipv4, ipv4-ipv6) (default: ipv4, example: ipv4) + array @@ -94,7 +110,7 @@ Returns a single Kubernetes cluster. string - __Beta__, __Filterable__ The desired Kubernetes tier, either `standard` or `enterprise`. > 🚧 > > This field is in beta and only works when using the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`. (example: standard) + __Beta__, __Filterable__ The desired Kubernetes tier, either `standard` or `enterprise`. > 🚧 > > This field is available as part of the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`. (standard, enterprise) (example: standard) @@ -104,7 +120,7 @@ Returns a single Kubernetes cluster. - + Returns an array of all Kubernetes clusters on your Account. @@ -118,24 +134,69 @@ Returns an array of all Kubernetes clusters on your Account. - - array - + + integer + __Read-only__ This Kubernetes cluster's unique ID. - + integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + __Beta__, __LKE Enterprise__ The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must have both IPv4 and IPv6 enabled (dual-stack). When this field is specified, the cluster is deployed to the given subnet and its corresponding VPC. To specify a VPC and have a subnet auto-allocated, use `vpc_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster. > 🚧 > > This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`. - + integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + __Beta__, __LKE Enterprise__ The ID of the VPC to use for the Kubernetes cluster. An appropriately sized subnet is auto-allocated. To specify an existing subnet, use `subnet_id` instead. If `subnet_id` and `vpc_id` are both unspecified, a new VPC and subnet are auto-allocated for the cluster. > 🚧 > > This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`. - - integer - __Read-only__ The total number of results. + + boolean + __Write-once__ Indicates whether the Akamai App Platform is installed during creation of the LKE cluster. It defaults to `false`. If set to `true`, `control_plane.high_availability` also needs to be `true`. Automatic installation of the App Platform is only possible when creating a new cluster (not when modifying existing clusters). + + + + object + Defines settings for the Kubernetes control plane, including enabling High Availability (HA) for the control plane. + + + + string (date-time) + __Read-only__ When this Kubernetes cluster was created. (example: 2019-09-12T21:25:30Z) + + + + string + __Filterable__ The desired Kubernetes version for this Kubernetes cluster in the format of `.`. The latest supported patch version is deployed. (example: 1.33) + + + + string + __Filterable__ This Kubernetes cluster's unique label for display purposes only. Labels have the following constraints: - UTF-8 characters will be returned by the API using escape sequences of their Unicode code points. For example, the Japanese character _か_ is 3 bytes in UTF-8 (`0xE382AB`). Its Unicode code point is 2 bytes (`0x30AB`). APIv4 supports this character and the API will return it as the escape sequence using six 1 byte characters which represent 2 bytes of Unicode code point (`"\u30ab"`). - 4 byte UTF-8 characters are not supported. - If the label is entirely composed of UTF-8 characters, the API response will return the code points using up to 193 1 byte characters. (example: lkecluster12345) + + + + string + __Filterable__ This Kubernetes cluster's location. (example: us-central) + + + + string + __Beta__, __LKE Enterprise__ The networking stack type of the Kubernetes cluster. This specifies that the cluster is IPv4 only (default) or supports both IPv4 and IPv6 (dual-stack). > 🚧 > > This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`. (ipv4, ipv4-ipv6) (default: ipv4, example: ipv4) + + + + array + __Filterable__ An array of tags applied to the Kubernetes cluster. Tags are for organizational purposes only. + + + + string + __Beta__, __Filterable__ The desired Kubernetes tier, either `standard` or `enterprise`. > 🚧 > > This field is available as part of the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`. (standard, enterprise) (example: standard) + + + + string (date-time) + __Read-only__ When this Kubernetes cluster was updated. (example: 2019-09-13T21:24:16Z) @@ -158,58 +219,58 @@ The following methods are available for this resource: - + - + clusterId Get a specific Cluster by ID.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + Lists current Kubernetes clusters available on your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__label, data__region, data__k8s_version, data__node_pools + label, region, k8s_version, node_pools Creates a Kubernetes cluster. The Kubernetes cluster will be created asynchronously. You can use the events system to determine when the Kubernetes cluster is ready to use. Please note that it often takes 2-5 minutes before the [Kubernetes API endpoints](https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-api-endpoints) and the [Kubeconfig file](https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-kubeconfig) for the new cluster are ready.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clusterId Updates a Kubernetes cluster.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + clusterId - - Deletes a Cluster you have permission to `read_write`.

__Deleting a Cluster is a destructive action and cannot be undone.__

Deleting a Cluster:

- Deletes all Linodes in all pools within this Kubernetes cluster
- Deletes all supporting Kubernetes services for this Kubernetes cluster (API server, etcd, etc)
- Deletes all NodeBalancers created by this Kubernetes cluster
- Does not delete any of the volumes created by this Kubernetes cluster

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Deletes a cluster from your account.

> 🚧
>
> Deleting a cluster is a destructive action and can't be undone.

When a cluster is deleted, all supporting Kubernetes services are removed from your account along with all Linodes in your cluster's node pools. You must have `read_write` permission to the cluster to initiate deletion.

Some additional services associated with your cluster remain active on your account. These services include NodeBalancers and Block Storage volumes. To avoid further charges, delete these services manually through Cloud Manager, the Linode CLI, or the Linode API.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clusterId Recycles all nodes in all pools of a designated Kubernetes Cluster. All Linodes within the Cluster will be deleted and replaced with new Linodes on a rolling basis, which may take several minutes. Replacement Nodes are installed with the latest available patch version for the Cluster's current Kubernetes minor release.

__Any local storage on deleted Linodes (such as `hostPath` and `emptyDir` volumes, or `local` PersistentVolumes) will be erased.__

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clusterId Regenerate the Kubeconfig file and/or the service account token for a Cluster.

This is a helper operation that allows performing both the [Delete a Kubeconfig](https://techdocs.akamai.com/linode-api/reference/delete-lke-cluster-kubeconfig) and the [Delete a service token](https://techdocs.akamai.com/linode-api/reference/delete-lke-service-token) operations with a single request.

When using this operation, at least one of `kubeconfig` or `servicetoken` is required.

> 📘
>
> When regenerating a service account token, the cluster's control plane components and Linode CSI drivers are also restarted and configured with the new token. High availability clusters shouldn't experience any disruption, while standard clusters may experience brief control plane downtime while components are restarted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clusterId Delete and regenerate the service account token for a Cluster.

> 📘
>
> When you regenerate a service account token, the cluster's control plane components and Linode CSI drivers are also restarted and configured with the new token. High availability clusters shouldn't experience any disruption, while standard clusters may experience brief control plane downtime while components are restarted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -229,48 +290,66 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the target Kubernetes cluster. (example: {{clusterId}}) + ## `SELECT` examples - + Get a specific Cluster by ID.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT id, +subnet_id, +vpc_id, apl_enabled, control_plane, created, k8s_version, label, region, +stack_type, tags, tier, updated FROM linode.lke.clusters +WHERE clusterId = '{{ clusterId }}' -- required ; ```
- + Lists current Kubernetes clusters available on your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +subnet_id, +vpc_id, +apl_enabled, +control_plane, +created, +k8s_version, +label, +region, +stack_type, +tags, +tier, +updated FROM linode.lke.clusters ; ``` @@ -281,26 +360,29 @@ FROM linode.lke.clusters ## `INSERT` examples - + Creates a Kubernetes cluster. The Kubernetes cluster will be created asynchronously. You can use the events system to determine when the Kubernetes cluster is ready to use. Please note that it often takes 2-5 minutes before the [Kubernetes API endpoints](https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-api-endpoints) and the [Kubeconfig file](https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-kubeconfig) for the new cluster are ready.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.lke.clusters ( -data__apl_enabled, -data__control_plane, -data__k8s_version, -data__label, -data__node_pools, -data__region, -data__tags, -data__tier +apl_enabled, +control_plane, +k8s_version, +label, +node_pools, +region, +stack_type, +subnet_id, +tags, +tier, +vpc_id ) SELECT {{ apl_enabled }}, @@ -309,16 +391,22 @@ SELECT '{{ label }}' /* required */, '{{ node_pools }}' /* required */, '{{ region }}' /* required */, +'{{ stack_type }}', +{{ subnet_id }}, '{{ tags }}', -'{{ tier }}' +'{{ tier }}', +{{ vpc_id }} RETURNING id, +subnet_id, +vpc_id, apl_enabled, control_plane, created, k8s_version, label, region, +stack_type, tags, tier, updated @@ -327,59 +415,96 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: clusters props: - name: apl_enabled - value: boolean - description: > - __Write-once__ Indicates whether the Akamai App Platform is installed during creation of the LKE cluster. It defaults to `false`. If set to `true`, `control_plane.high_availability` also needs to be `true`. Automatic installation of the App Platform is only possible when creating a new cluster (not when modifying existing clusters). - + value: {{ apl_enabled }} + description: | + __Write-once__ Indicates whether the Akamai App Platform is installed during creation of the LKE cluster. It defaults to \`false\`. If set to \`true\`, \`control_plane.high_availability\` also needs to be \`true\`. Automatic installation of the App Platform is only possible when creating a new cluster (not when modifying existing clusters). - name: control_plane - value: object - description: > + description: | Defines settings for the Kubernetes control plane, including High Availability (HA) and an IP-based Access Control List (ACL) for the control plane components. - + value: + acl: + addresses: + ipv4: + - "{{ ipv4 }}" + ipv6: + - "{{ ipv6 }}" + enabled: {{ enabled }} + revision-id: "{{ revision-id }}" + audit_logs_enabled: {{ audit_logs_enabled }} + high_availability: {{ high_availability }} - name: k8s_version - value: string - description: > - __Filterable__ The desired Kubernetes version for this Kubernetes cluster in the format of `.`. The latest supported patch version is deployed. - + value: "{{ k8s_version }}" + description: | + __Filterable__ The desired Kubernetes version for this Kubernetes cluster in the format of \`.\`. The latest supported patch version is deployed. - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ This Kubernetes cluster's unique label for display purposes only. Labels have the following constraints: - - - UTF-8 characters will be returned by the API using escape sequences of their Unicode code points. For example, the Japanese character _か_ is 3 bytes in UTF-8 (`0xE382AB`). Its Unicode code point is 2 bytes (`0x30AB`). APIv4 supports this character and the API will return it as the escape sequence using six 1 byte characters which represent 2 bytes of Unicode code point (`"\u30ab"`). - - - 4 byte UTF-8 characters are not supported. - - - If the label is entirely composed of UTF-8 characters, the API response will return the code points using up to 193 1 byte characters. - + - UTF-8 characters will be returned by the API using escape sequences of their Unicode code points. For example, the Japanese character _か_ is 3 bytes in UTF-8 (\`0xE382AB\`). Its Unicode code point is 2 bytes (\`0x30AB\`). APIv4 supports this character and the API will return it as the escape sequence using six 1 byte characters which represent 2 bytes of Unicode code point (\`"\u30ab"\`). + - 4 byte UTF-8 characters are not supported. + - If the label is entirely composed of UTF-8 characters, the API response will return the code points using up to 193 1 byte characters. - name: node_pools - value: array + value: + - autoscaler: + enabled: {{ enabled }} + max: {{ max }} + min: {{ min }} + count: {{ count }} + disk_encryption: "{{ disk_encryption }}" + disks: "{{ disks }}" + k8s_version: "{{ k8s_version }}" + label: "{{ label }}" + labels: "{{ labels }}" + tags: "{{ tags }}" + taints: "{{ taints }}" + type: "{{ type }}" + update_strategy: "{{ update_strategy }}" - name: region - value: string - description: > + value: "{{ region }}" + description: | __Filterable__ This Kubernetes cluster's location. - + - name: stack_type + value: "{{ stack_type }}" + description: | + __Beta__, __LKE Enterprise__ The networking stack type of the Kubernetes cluster. This specifies that the cluster is IPv4 only (default) or supports both IPv4 and IPv6 (dual-stack). + > 🚧 + > + > This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the \`apiVersion\` path parameter set to \`v4beta\`. + valid_values: ['ipv4', 'ipv4-ipv6'] + default: ipv4 + - name: subnet_id + value: {{ subnet_id }} + description: | + __Beta__, __LKE Enterprise__ The ID of the VPC subnet to use for the Kubernetes cluster. This subnet must have both IPv4 and IPv6 enabled (dual-stack). When this field is specified, the cluster is deployed to the given subnet and its corresponding VPC. To specify a VPC and have a subnet auto-allocated, use \`vpc_id\` instead. If \`subnet_id\` and \`vpc_id\` are both unspecified, a new VPC and subnet are auto-allocated for the cluster. + > 🚧 + > + > This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the \`apiVersion\` path parameter set to \`v4beta\`. - name: tags - value: array - description: > + value: + - "{{ tags }}" + description: | __Filterable__ An array of tags applied to the Kubernetes cluster. Tags are for organizational purposes only. - - name: tier - value: string - description: > - __Beta__, __Filterable__ The desired Kubernetes tier, either `standard` or `enterprise`. - -> 🚧 -> -> This field is in beta and only works when using the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`. - + value: "{{ tier }}" + description: | + __Beta__, __Filterable__ The desired Kubernetes tier, either \`standard\` or \`enterprise\`. + > 🚧 + > + > This field is available as part of the beta API. Call the URL with the \`apiVersion\` path parameter set to \`v4beta\`. valid_values: ['standard', 'enterprise'] -``` + - name: vpc_id + value: {{ vpc_id }} + description: | + __Beta__, __LKE Enterprise__ The ID of the VPC to use for the Kubernetes cluster. An appropriately sized subnet is auto-allocated. To specify an existing subnet, use \`subnet_id\` instead. If \`subnet_id\` and \`vpc_id\` are both unspecified, a new VPC and subnet are auto-allocated for the cluster. + > 🚧 + > + > This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the \`apiVersion\` path parameter set to \`v4beta\`. +`} +
@@ -387,28 +512,37 @@ updated ## `REPLACE` examples - + Updates a Kubernetes cluster.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.lke.clusters SET -data__control_plane = '{{ control_plane }}', -data__k8s_version = '{{ k8s_version }}', -data__label = '{{ label }}', -data__tags = '{{ tags }}' +control_plane = '{{ control_plane }}', +k8s_version = '{{ k8s_version }}', +label = '{{ label }}', +tags = '{{ tags }}' +WHERE +clusterId = '{{ clusterId }}' --required RETURNING +id, +subnet_id, +vpc_id, +apl_enabled, +control_plane, created, k8s_version, label, region, +stack_type, tags, +tier, updated; ```
@@ -418,17 +552,18 @@ updated; ## `DELETE` examples - + -Deletes a Cluster you have permission to `read_write`.

__Deleting a Cluster is a destructive action and cannot be undone.__

Deleting a Cluster:

- Deletes all Linodes in all pools within this Kubernetes cluster
- Deletes all supporting Kubernetes services for this Kubernetes cluster (API server, etcd, etc)
- Deletes all NodeBalancers created by this Kubernetes cluster
- Does not delete any of the volumes created by this Kubernetes cluster

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Deletes a cluster from your account.

> 🚧
>
> Deleting a cluster is a destructive action and can't be undone.

When a cluster is deleted, all supporting Kubernetes services are removed from your account along with all Linodes in your cluster's node pools. You must have `read_write` permission to the cluster to initiate deletion.

Some additional services associated with your cluster remain active on your account. These services include NodeBalancers and Block Storage volumes. To avoid further charges, delete these services manually through Cloud Manager, the Linode CLI, or the Linode API.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.lke.clusters +WHERE clusterId = '{{ clusterId }}' --required ; ```
@@ -438,29 +573,30 @@ DELETE FROM linode.lke.clusters ## Lifecycle Methods - + Recycles all nodes in all pools of a designated Kubernetes Cluster. All Linodes within the Cluster will be deleted and replaced with new Linodes on a rolling basis, which may take several minutes. Replacement Nodes are installed with the latest available patch version for the Cluster's current Kubernetes minor release.

__Any local storage on deleted Linodes (such as `hostPath` and `emptyDir` volumes, or `local` PersistentVolumes) will be erased.__

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.lke.clusters.post_lke_cluster_recycle - +EXEC linode.lke.clusters.recycle +@clusterId='{{ clusterId }}' --required ; ```
- + Regenerate the Kubeconfig file and/or the service account token for a Cluster.

This is a helper operation that allows performing both the [Delete a Kubeconfig](https://techdocs.akamai.com/linode-api/reference/delete-lke-cluster-kubeconfig) and the [Delete a service token](https://techdocs.akamai.com/linode-api/reference/delete-lke-service-token) operations with a single request.

When using this operation, at least one of `kubeconfig` or `servicetoken` is required.

> 📘
>
> When regenerating a service account token, the cluster's control plane components and Linode CSI drivers are also restarted and configured with the new token. High availability clusters shouldn't experience any disruption, while standard clusters may experience brief control plane downtime while components are restarted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.lke.clusters.post_lke_cluster_regenerate +EXEC linode.lke.clusters.regenerate +@clusterId='{{ clusterId }}' --required @@json= '{ "kubeconfig": {{ kubeconfig }}, @@ -469,13 +605,13 @@ EXEC linode.lke.clusters.post_lke_cluster_regenerate ; ```
- + Delete and regenerate the service account token for a Cluster.

> 📘
>
> When you regenerate a service account token, the cluster's control plane components and Linode CSI drivers are also restarted and configured with the new token. High availability clusters shouldn't experience any disruption, while standard clusters may experience brief control plane downtime while components are restarted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.lke.clusters.delete_lke_service_token - +EXEC linode.lke.clusters.delete_service_token +@clusterId='{{ clusterId }}' --required ; ```
diff --git a/website/docs/services/lke/control_plane_acl/index.md b/website/docs/services/lke/control_plane_acl/index.md index ee9fef0..158c928 100644 --- a/website/docs/services/lke/control_plane_acl/index.md +++ b/website/docs/services/lke/control_plane_acl/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a control_plane_acl resour ## Overview - +
Namecontrol_plane_acl
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a control_plane_acl resour The following fields are returned by `SELECT` queries: - + Returns a single cluster's control plane access control list. The optional field `revision-id` provided will be reflected on GET response when (and only after) the ACL stanza is verified as enforced. @@ -53,12 +54,17 @@ Returns a single cluster's control plane access control list. The optional field object - + Supports keys `ipv4` and `ipv6`. Defaults to `{}`. + + + + boolean + Defines a default policy. A value of `true` results in a default policy of `DENY`. A value of `false` results in a default policy of `ALLOW`, such as for disabled access controls. It defaults to `true`. Creating a cluster with ACL, or upgrading a cluster to use ACL for LKE, is an irreversible change. Once upgraded, you can only toggle access controls with this field. - - + string + Enables clients to track events related to ACL update requests and enforcements. Optional field. If omitted, defaults to a randomly generated string. (example: 20240127r001) @@ -81,23 +87,23 @@ The following methods are available for this resource: - + - + clusterId Get a specific cluster's control plane access control List.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clusterId Updates a specific cluster's control plane access control list.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clusterId Disable control plane access controls and deletes all rules. This has the same effect as calling `PUT` with an acl json map value of `{“enabled” : false}`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -117,26 +123,33 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Kubernetes cluster to look up. (example: {{clusterId}}) + ## `SELECT` examples - + Get a specific cluster's control plane access control List.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT addresses, +enabled, revision-id FROM linode.lke.control_plane_acl +WHERE clusterId = '{{ clusterId }}' -- required ; ```
@@ -146,19 +159,21 @@ FROM linode.lke.control_plane_acl ## `REPLACE` examples - + Updates a specific cluster's control plane access control list.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.lke.control_plane_acl SET -data__acl = '{{ acl }}' +acl = '{{ acl }}' +WHERE +clusterId = '{{ clusterId }}' --required RETURNING acl; ``` @@ -169,17 +184,18 @@ acl; ## `DELETE` examples - + Disable control plane access controls and deletes all rules. This has the same effect as calling `PUT` with an acl json map value of `{“enabled” : false}`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.lke.control_plane_acl +WHERE clusterId = '{{ clusterId }}' --required ; ```
diff --git a/website/docs/services/lke/kubeconfigs/index.md b/website/docs/services/lke/kubeconfigs/index.md index ab33973..309ef60 100644 --- a/website/docs/services/lke/kubeconfigs/index.md +++ b/website/docs/services/lke/kubeconfigs/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a kubeconfigs resource. ## Overview - +
Namekubeconfigs
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a kubeconfigs resource. The following fields are returned by `SELECT` queries: - + Returns the Base64-encoded Kubeconfig file for this Kubernetes cluster. @@ -76,16 +77,16 @@ The following methods are available for this resource: - + - + clusterId Get the Kubeconfig file for a Cluster. Please note that it often takes 2-5 minutes before the Kubeconfig file is ready after first [creating a new cluster](https://techdocs.akamai.com/linode-api/reference/post-lke-cluster).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clusterId Delete and regenerate the Kubeconfig file for a Cluster.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -105,18 +106,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Kubernetes cluster to look up. (example: {{clusterId}}) + ## `SELECT` examples - + Get the Kubeconfig file for a Cluster. Please note that it often takes 2-5 minutes before the Kubeconfig file is ready after first [creating a new cluster](https://techdocs.akamai.com/linode-api/reference/post-lke-cluster).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -124,6 +130,7 @@ Get the Kubeconfig file for a Cluster. Please note that it often takes 2-5 minut SELECT kubeconfig FROM linode.lke.kubeconfigs +WHERE clusterId = '{{ clusterId }}' -- required ; ```
@@ -133,17 +140,18 @@ FROM linode.lke.kubeconfigs ## `DELETE` examples - + Delete and regenerate the Kubeconfig file for a Cluster.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.lke.kubeconfigs +WHERE clusterId = '{{ clusterId }}' --required ; ```
diff --git a/website/docs/services/lke/node_pools/index.md b/website/docs/services/lke/node_pools/index.md index f412ec2..22e32af 100644 --- a/website/docs/services/lke/node_pools/index.md +++ b/website/docs/services/lke/node_pools/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a node_pools resource. ## Overview - +
Namenode_pools
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a node_pools resource. The following fields are returned by `SELECT` queries: - + Returns the requested Node Pool. @@ -54,7 +55,7 @@ Returns the requested Node Pool. integer - __Filterable__ This Node Pool's unique ID. + __Filterable__ This node pool's unique ID. @@ -64,22 +65,27 @@ Returns the requested Node Pool. integer - The number of nodes in the Node Pool. + The number of nodes in the node pool. string - Indicates the local disk encryption setting for this LKE node pool. (example: disabled) + Indicates the local disk encryption setting for this LKE node pool. (enabled, disabled) (example: disabled) array - This Node Pool's custom disk layout. (x-linode-cli-format: json) + This node pool's custom disk layout. (x-linode-cli-format: json) string - __Beta__ The Kubernetes version used for the worker nodes within this node pool. (example: v1.31.8+lke3) + __Beta__ The Kubernetes version used for the worker nodes within this node pool. > 🚧 > > This field is available as part of the beta API and is only returned for accounts that have been enrolled in the LKE Enterprise LA. (example: v1.31.8+lke3) + + + + string + __Beta__ The optional label defined for this node Pool. > 🚧 > > This field is available as part of the beta API and is only returned for accounts that have been enrolled in the LKE Enterprise LA. (example: app-pool) @@ -89,7 +95,7 @@ Returns the requested Node Pool. array - Status information for the Nodes which are members of this Node Pool. If a Linode has not been provisioned for a given Node slot, the `instance_id` will be returned as `null`. + Status information for the nodes that are members of this node pool. If a Linode has not been provisioned for a given node slot, the `instance_id` is `null`. @@ -104,19 +110,19 @@ Returns the requested Node Pool. string - The Linode Type for all of the nodes in the Node Pool. (example: g6-standard-4) + The Linode Type for all of the nodes in the node pool. (example: g6-standard-4) string - __Beta__ Determines when the worker nodes within this node pool upgrade to the latest selected Kubernetes version, after the cluster has been upgraded. This field is required for LKE Enterprise clusters but should not be used for non-enterprise LKE clusters. (example: on_recycle) + __Beta__ Determines when the worker nodes within this node pool upgrade to the latest selected Kubernetes version, after the cluster has been upgraded. This field is required for LKE Enterprise clusters but should not be used for non-enterprise LKE clusters. (rolling_update, on_recycle) (example: on_recycle) - + -Returns an array of all Pools in this Kubernetes cluster. +Returns all node pools in this Kubernetes cluster. @@ -128,24 +134,69 @@ Returns an array of all Pools in this Kubernetes cluster. - - - + + + - - - + + + - + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
arrayinteger__Filterable__ This node pool's unique ID.
integer__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).objectWhen enabled, the number of nodes autoscales within the defined minimum and maximum values.
integer__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).The number of nodes in the node pool.
integer__Read-only__ The total number of results.stringIndicates the local disk encryption setting for this LKE node pool. (enabled, disabled) (example: disabled)
arrayThis node pool's custom disk layout. (x-linode-cli-format: json)
string__Beta__ The Kubernetes version used for the worker nodes within this node pool. > 🚧 > > This field is available as part of the beta API and is only returned for accounts that have been enrolled in the LKE Enterprise LA. (example: v1.31.8+lke3)
string__Beta__ The optional label defined for this node Pool. > 🚧 > > This field is available as part of the beta API and is only returned for accounts that have been enrolled in the LKE Enterprise LA. (example: app-pool)
objectKey-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and easily select subsets of objects. To learn more, review [Add Labels and Taints to your LKE node pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools).
arrayStatus information for the nodes that are members of this node pool. If a Linode has not been provisioned for a given node slot, the `instance_id` is `null`.
array__Filterable__ An array of tags applied to this object. Tags are for organizational purposes only.
arrayKubernetes taints added to nodes in the node pool. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods.
stringThe Linode Type for all of the nodes in the node pool. (example: g6-standard-4)
string__Beta__ Determines when the worker nodes within this node pool upgrade to the latest selected Kubernetes version, after the cluster has been upgraded. This field is required for LKE Enterprise clusters but should not be used for non-enterprise LKE clusters. (rolling_update, on_recycle) (example: on_recycle)
@@ -168,44 +219,44 @@ The following methods are available for this resource: - + - + clusterId, poolId Get a specific Node Pool by ID.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clusterId Returns all active Node Pools on a Kubernetes cluster.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__type, data__count + clusterId, type, count Creates a new Node Pool for the designated Kubernetes cluster.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clusterId, poolId Updates a node pool's count, labels and taints, and autoscaler configuration.

Linodes are created or deleted to match changes to the Node Pool's count.

Specifying labels or taints on update overwrites any previous values, and updates existing nodes with the new values without a recycle.

__Any local storage on deleted Linodes (such as `hostPath` and `emptyDir` volumes, or `local` PersistentVolumes) will be erased.__

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clusterId, poolId Delete a specific Node Pool from a Kubernetes cluster.

__Deleting a Node Pool is a destructive action and cannot be undone.__

Deleting a Node Pool will delete all Linodes within that Pool.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clusterId, poolId Recycles a Node Pool for the designated Kubernetes Cluster. All Linodes within the Node Pool will be deleted and replaced with new Linodes on a rolling basis, which may take several minutes. Replacement Nodes are installed with the latest available patch for the Cluster's Kubernetes Version.

__Any local storage on deleted Linodes (such as `hostPath` and `emptyDir` volumes, or `local` PersistentVolumes) will be erased.__

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -225,19 +276,29 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Kubernetes cluster this Node Pool is attached to. (example: {{clusterId}}) + + + + string + ID of the Node Pool to be recycled. + ## `SELECT` examples - + Get a specific Node Pool by ID.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -249,6 +310,7 @@ count, disk_encryption, disks, k8s_version, +label, labels, nodes, tags, @@ -256,20 +318,32 @@ taints, type, update_strategy FROM linode.lke.node_pools +WHERE clusterId = '{{ clusterId }}' -- required +AND poolId = '{{ poolId }}' -- required ; ```
- + Returns all active Node Pools on a Kubernetes cluster.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +autoscaler, +count, +disk_encryption, +disks, +k8s_version, +label, +labels, +nodes, +tags, +taints, +type, +update_strategy FROM linode.lke.node_pools +WHERE clusterId = '{{ clusterId }}' -- required ; ```
@@ -279,38 +353,44 @@ FROM linode.lke.node_pools ## `INSERT` examples - + Creates a new Node Pool for the designated Kubernetes cluster.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.lke.node_pools ( -data__autoscaler, -data__count, -data__disks, -data__k8s_version, -data__labels, -data__tags, -data__taints, -data__type, -data__update_strategy +autoscaler, +count, +disk_encryption, +disks, +k8s_version, +label, +labels, +tags, +taints, +type, +update_strategy, +clusterId ) SELECT '{{ autoscaler }}', {{ count }} /* required */, +'{{ disk_encryption }}', '{{ disks }}', '{{ k8s_version }}', +'{{ label }}', '{{ labels }}', '{{ tags }}', '{{ taints }}', '{{ type }}' /* required */, -'{{ update_strategy }}' +'{{ update_strategy }}', +'{{ clusterId }}' RETURNING id, autoscaler, @@ -318,6 +398,7 @@ count, disk_encryption, disks, k8s_version, +label, labels, nodes, tags, @@ -329,98 +410,98 @@ update_strategy
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: node_pools props: + - name: clusterId + value: "{{ clusterId }}" + description: Required parameter for the node_pools resource. - name: autoscaler - value: object - description: > - When enabled, the number of nodes automatically scales within the defined minimum and maximum values. When making a request, `max` and `min` require each other. - + description: | + When enabled, the number of nodes automatically scales within the defined minimum and maximum values. When making a request, \`max\` and \`min\` require each other. + value: + enabled: {{ enabled }} + max: {{ max }} + min: {{ min }} - name: count - value: integer - description: > - The number of nodes in the Node Pool. - + value: {{ count }} + description: | + The number of nodes in the node pool. + - name: disk_encryption + value: "{{ disk_encryption }}" + description: | + Local disk encryption setting for this LKE node pool. Defaults to \`disabled\`. + valid_values: ['enabled', 'disabled'] + default: disabled - name: disks - value: array - description: > + description: | This node pool's custom disk layout. Each item in this array will create a new disk partition for each node in this node pool. - -> 📘 -> -> Omit this field, except for special use cases. The disks specified here are partitions in _addition_ to the primary partition and reduce the size of the primary partition. This can lead to stability problems for the node. - - - The custom disk layout is applied to each node in this node pool. - - - The maximum number of custom disk partitions that can be configured is 7. - - - Once the requested disk partitions are allocated, the remaining disk space is allocated to the node's boot disk. - - - A node pool's custom disk layout is immutable over the lifetime of the node pool. - + > 📘 + > + > Omit this field, except for special use cases. The disks specified here are partitions in _addition_ to the primary partition and reduce the size of the primary partition. This can lead to stability problems for the node. + - The custom disk layout is applied to each node in this node pool. + - The maximum number of custom disk partitions that can be configured is 7. + - Once the requested disk partitions are allocated, the remaining disk space is allocated to the node's boot disk. + - A node pool's custom disk layout is immutable over the lifetime of the node pool. + value: + - size: {{ size }} + type: "{{ type }}" - name: k8s_version - value: string - description: > - __Beta__ The LKE-specific Kubernetes version to use for the worker nodes within this node pool. This field is required when creating node pools on LKE Enterprise clusters. - -> 🚧 -> -> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`. - + value: "{{ k8s_version }}" + description: | + __Beta__, __LKE Enterprise__ The LKE-specific Kubernetes version to use for the worker nodes within this node pool. This field is required when creating node pools on LKE Enterprise clusters. + > 🚧 + > + > This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the \`apiVersion\` path parameter set to \`v4beta\`. + - name: label + value: "{{ label }}" + description: | + __Beta__ An optional label for this node pool. Labels can be up to 32 characters long, containing lowercase alphanumeric characters optionally interspersed with dashes. + A node pool's label also cascades down to its nodes (Linodes). If a label is defined on the node pool, the label for each node is \`--\`. If not, the label is \`--\`. + > 🚧 + > + > This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the \`apiVersion\` path parameter set to \`v4beta\`. - name: labels - value: object - description: > + value: "{{ labels }}" + description: | Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and easily select subsets of objects. To learn more, review [Add Labels and Taints to your LKE node pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools). - -**Label key:** - -- A key can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. - -- If the key begins with a DNS subdomain prefix followed by a single slash, for example `example.com/my-app`, the maximum total length of the label key is 128 characters. Domain labels can be up to 62 characters after the '/'. The prefix needs to adhere to [RFC 1123](https://datatracker.ietf.org/doc/html/rfc1123) DNS subdomain restrictions. - -- If the key doesn't begin with a DNS subdomain prefix, the maximum key length is 63 characters. - -Specifying an empty object removes all previously set labels. - -**Label value:** - -- The label's value can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. - -- Can be specified as an empty string value with `""`. - + **Label key:** + - A key can contain alphanumeric characters, dashes (\`-\`), underscores (\`_\`), or dots (\`.\`). Start and end it with an alphanumeric character. + - If the key begins with a DNS subdomain prefix followed by a single slash, for example \`example.com/my-app\`, the maximum total length of the label key is 128 characters. Domain labels can be up to 62 characters after the '/'. The prefix needs to adhere to [RFC 1123](https://datatracker.ietf.org/doc/html/rfc1123) DNS subdomain restrictions. + - If the key doesn't begin with a DNS subdomain prefix, the maximum key length is 63 characters. + Specifying an empty object removes all previously set labels. + **Label value:** + - The label's value can contain alphanumeric characters, dashes (\`-\`), underscores (\`_\`), or dots (\`.\`). Start and end it with an alphanumeric character. + - Can be specified as an empty string value with \`""\`. - name: tags - value: array - description: > - __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. - + value: + - "{{ tags }}" + description: | + __Filterable__ Organizational tags to apply to this node pool. When you apply tags to LKE Enterprise node pools, they also apply to the nodes (Linodes) within the node pool. Tags don't cascade down to nodes in non-Enterprise node pools. - name: taints - value: array - description: > + description: | Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods. To learn more, review [Add labels and taints to your LKE node pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools). - -Specifying an empty array (`[]`) removes all previously set taints. - + Specifying an empty array (\`[]\`) removes all previously set taints. + value: + - effect: "{{ effect }}" + key: "{{ key }}" + value: "{{ value }}" - name: type - value: string - description: > - The Linode Type for all of the nodes in the Node Pool. - + value: "{{ type }}" + description: | + The Linode Type for all of the nodes in the node pool. - name: update_strategy - value: string - description: > - __Beta__ Determines when the worker nodes within this node pool upgrade to the latest selected Kubernetes version, after the cluster has been upgraded. This field is required when creating node pools on LKE Enterprise clusters. - -- `rolling_update`: Immediately triggers a recycle of this node pool when the Kubernetes version is updated. -- `on_recycle` (default): Does not trigger any immediate recycle. New worker nodes are created with the new Kubernetes version. Existing worker nodes will be upgraded when a recycle is manually triggered. - -> 🚧 -> -> This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the `apiVersion` path parameter set to `v4beta`. - + value: "{{ update_strategy }}" + description: | + __Beta__, __LKE Enterprise__ Determines when the worker nodes within this node pool upgrade to the latest selected Kubernetes version, after the cluster has been upgraded. This field is required when creating node pools on LKE Enterprise clusters. + - \`rolling_update\`: Immediately triggers a recycle of this node pool when the Kubernetes version is updated. + - \`on_recycle\` (default): Does not trigger any immediate recycle. New worker nodes are created with the new Kubernetes version. Existing worker nodes will be upgraded when a recycle is manually triggered. + > 🚧 + > + > This field is available as part of the beta API and can only be used with accounts that have been enrolled in the LKE Enterprise LA. Call the URL with the \`apiVersion\` path parameter set to \`v4beta\`. valid_values: ['rolling_update', 'on_recycle'] -``` +`} +
@@ -428,22 +509,26 @@ Specifying an empty array (`[]`) removes all previously set taints. ## `REPLACE` examples - + Updates a node pool's count, labels and taints, and autoscaler configuration.

Linodes are created or deleted to match changes to the Node Pool's count.

Specifying labels or taints on update overwrites any previous values, and updates existing nodes with the new values without a recycle.

__Any local storage on deleted Linodes (such as `hostPath` and `emptyDir` volumes, or `local` PersistentVolumes) will be erased.__

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.lke.node_pools SET -data__autoscaler = '{{ autoscaler }}', -data__count = {{ count }}, -data__labels = '{{ labels }}', -data__taints = '{{ taints }}' +autoscaler = '{{ autoscaler }}', +count = {{ count }}, +labels = '{{ labels }}', +tags = '{{ tags }}', +taints = '{{ taints }}' +WHERE +clusterId = '{{ clusterId }}' --required +AND poolId = '{{ poolId }}' --required RETURNING id, autoscaler, @@ -451,6 +536,7 @@ count, disk_encryption, disks, k8s_version, +label, labels, nodes, tags, @@ -465,17 +551,19 @@ update_strategy; ## `DELETE` examples - + Delete a specific Node Pool from a Kubernetes cluster.

__Deleting a Node Pool is a destructive action and cannot be undone.__

Deleting a Node Pool will delete all Linodes within that Pool.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.lke.node_pools +WHERE clusterId = '{{ clusterId }}' --required +AND poolId = '{{ poolId }}' --required ; ```
@@ -485,18 +573,19 @@ DELETE FROM linode.lke.node_pools ## Lifecycle Methods - + Recycles a Node Pool for the designated Kubernetes Cluster. All Linodes within the Node Pool will be deleted and replaced with new Linodes on a rolling basis, which may take several minutes. Replacement Nodes are installed with the latest available patch for the Cluster's Kubernetes Version.

__Any local storage on deleted Linodes (such as `hostPath` and `emptyDir` volumes, or `local` PersistentVolumes) will be erased.__

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.lke.node_pools.post_lke_cluster_pool_recycle - +EXEC linode.lke.node_pools.recycle +@clusterId='{{ clusterId }}' --required, +@poolId='{{ poolId }}' --required ; ```
diff --git a/website/docs/services/lke/nodes/index.md b/website/docs/services/lke/nodes/index.md index 1a4d4ce..8309db0 100644 --- a/website/docs/services/lke/nodes/index.md +++ b/website/docs/services/lke/nodes/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a nodes resource. ## Overview - +
Namenodes
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a nodes resource. The following fields are returned by `SELECT` queries: - + Returns the values of a node object in the form that it appears currently in the node pool array. @@ -63,7 +64,7 @@ Returns the values of a node object in the form that it appears currently in the string - The creation status of this Node. This status is distinct from this Node's readiness as a Kubernetes Node Object as determined by the command `kubectl get nodes`. `not_ready` indicates that the Linode is still being created. `ready` indicates that the Linode has successfully been created and is running Kubernetes software. (example: ready) + The creation status of this Node. This status is distinct from this Node's readiness as a Kubernetes Node Object as determined by the command `kubectl get nodes`. `not_ready` indicates that the Linode is still being created. `ready` indicates that the Linode has successfully been created and is running Kubernetes software. (ready, not_ready) (example: ready) @@ -86,23 +87,23 @@ The following methods are available for this resource: - + - + clusterId, nodeId Returns the values for a specified node object.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clusterId, nodeId Deletes a specific Node from a Node Pool.

__Deleting a Node is a destructive action and cannot be undone.__

Deleting a Node will reduce the size of the Node Pool it belongs to.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clusterId, nodeId Recycles an individual Node in the designated Kubernetes Cluster. The Node will be deleted and replaced with a new Linode, which may take a few minutes. Replacement Nodes are installed with the latest available patch for the Cluster's Kubernetes Version.

__Any local storage on deleted Linodes (such as `hostPath` and `emptyDir` volumes, or `local` PersistentVolumes) will be erased.__

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -122,18 +123,28 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Kubernetes cluster containing the Node. (example: {{clusterId}}) + + + + string + ID of the Node to be recycled. (example: {{nodeId}}) + ## `SELECT` examples - + Returns the values for a specified node object.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -143,6 +154,8 @@ id, instance_id, status FROM linode.lke.nodes +WHERE clusterId = '{{ clusterId }}' -- required +AND nodeId = '{{ nodeId }}' -- required ; ```
@@ -152,17 +165,19 @@ FROM linode.lke.nodes ## `DELETE` examples - + Deletes a specific Node from a Node Pool.

__Deleting a Node is a destructive action and cannot be undone.__

Deleting a Node will reduce the size of the Node Pool it belongs to.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.lke.nodes +WHERE clusterId = '{{ clusterId }}' --required +AND nodeId = '{{ nodeId }}' --required ; ```
@@ -172,18 +187,19 @@ DELETE FROM linode.lke.nodes ## Lifecycle Methods - + Recycles an individual Node in the designated Kubernetes Cluster. The Node will be deleted and replaced with a new Linode, which may take a few minutes. Replacement Nodes are installed with the latest available patch for the Cluster's Kubernetes Version.

__Any local storage on deleted Linodes (such as `hostPath` and `emptyDir` volumes, or `local` PersistentVolumes) will be erased.__

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.lke.nodes.post_lke_cluster_node_recycle - +EXEC linode.lke.nodes.recycle +@clusterId='{{ clusterId }}' --required, +@nodeId='{{ nodeId }}' --required ; ```
diff --git a/website/docs/services/lke/non_enterprise_versions/index.md b/website/docs/services/lke/non_enterprise_versions/index.md index 3249573..dede899 100644 --- a/website/docs/services/lke/non_enterprise_versions/index.md +++ b/website/docs/services/lke/non_enterprise_versions/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a non_enterprise_versions ## Overview - +
Namenon_enterprise_versions
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a non_enterprise_versions The following fields are returned by `SELECT` queries: - + Returns an LKE Kubernetes version object available for deployment to a standard tier Kubernetes cluster. @@ -59,7 +60,7 @@ Returns an LKE Kubernetes version object available for deployment to a standard - + Returns a list of LKE Kubernetes versions available for deployment to a standard-tier Kubernetes cluster. @@ -73,24 +74,9 @@ Returns a list of LKE Kubernetes versions available for deployment to a standard - - array - __Read-only__ LKE versions for standard tier. - - - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - __Read-only__ The total number of results. + + string + __Read-only__ A Kubernetes version number available for deployment to a Kubernetes cluster in the format of <major>.<minor>, and the latest supported patch version. (example: 1.31) @@ -113,14 +99,14 @@ The following methods are available for this resource: - + - + version View an LKE Kubernetes version available for deployment to a standard tier Kubernetes cluster.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + @@ -142,19 +128,24 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The LKE version to view. + ## `SELECT` examples - + View an LKE Kubernetes version available for deployment to a standard tier Kubernetes cluster.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -162,19 +153,17 @@ View an LKE Kubernetes version available for deployment to a standard tier Kuber SELECT id FROM linode.lke.non_enterprise_versions +WHERE version = '{{ version }}' -- required ; ```
- + List LKE Kubernetes versions available for deployment to a standard-tier Kubernetes cluster.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id FROM linode.lke.non_enterprise_versions ; ``` diff --git a/website/docs/services/lke/types/index.md b/website/docs/services/lke/types/index.md index dfd0a87..9f3cf7e 100644 --- a/website/docs/services/lke/types/index.md +++ b/website/docs/services/lke/types/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a types resource. ## Overview - +
Nametypes
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a types resource. The following fields are returned by `SELECT` queries: - + A collection of Kubernetes types. @@ -51,24 +52,29 @@ A collection of Kubernetes types. - - array - The Kubernetes types. + + string + __Read-only__ The ID representing the Kubernetes type. (example: lke-sa) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__, __Read-only__ The Kubernetes type label is for display purposes only. (example: LKE Standard Availability) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + __Read-only__ The default cost of this Kubernetes type. Prices are in US dollars, broken down into hourly and monthly charges. Certain regions have different prices from the default. For region-specific prices, see `region_prices`. + + + + array + - + integer - __Read-only__ The total number of results. + __Filterable__, __Read-only__ The monthly outbound transfer amount, in MB. @@ -91,7 +97,7 @@ The following methods are available for this resource: - + @@ -119,21 +125,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns Kubernetes types and prices, including any region-specific rates.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +label, +price, +region_prices, +transfer FROM linode.lke.types ; ``` diff --git a/website/docs/services/lke/versions/index.md b/website/docs/services/lke/versions/index.md index f644abb..dc752be 100644 --- a/website/docs/services/lke/versions/index.md +++ b/website/docs/services/lke/versions/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a versions resource. ## Overview - +
Nameversions
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a versions resource. The following fields are returned by `SELECT` queries: - + Returns an LKE Kubernetes version available for deployment to a Kubernetes cluster (any tier). @@ -59,12 +60,12 @@ Returns an LKE Kubernetes version available for deployment to a Kubernetes clust string - __Read-only__ An LKE tier. (example: standard) + __Read-only__ An LKE tier. (standard, enterprise) (example: standard) - + Returns a list of LKE Kubernetes versions available for deployment to a Kubernetes cluster (any tier). @@ -78,24 +79,14 @@ Returns a list of LKE Kubernetes versions available for deployment to a Kubernet - - array - __Read-only__ LKE versions for the requested tier. - - - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Read-only__ A Kubernetes version number available for deployment to a Kubernetes cluster in the format of <major>.<minor>, and the latest supported patch version. (example: 1.31) - - integer - __Read-only__ The total number of results. + + string + __Read-only__ An LKE tier. (standard, enterprise) (example: standard) @@ -118,16 +109,16 @@ The following methods are available for this resource: - + - + tier, version View an LKE Kubernetes version available for deployment to a Kubernetes cluster (any tier)

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + tier List LKE Kubernetes versions available for deployment to a Kubernetes cluster (any tier).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -147,19 +138,29 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + __Enum__ The LKE tier to use. + + + + string + The LKE version to view. + ## `SELECT` examples - + View an LKE Kubernetes version available for deployment to a Kubernetes cluster (any tier)

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -168,20 +169,21 @@ SELECT id, tier FROM linode.lke.versions +WHERE tier = '{{ tier }}' -- required +AND version = '{{ version }}' -- required ; ```
- + List LKE Kubernetes versions available for deployment to a Kubernetes cluster (any tier).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +tier FROM linode.lke.versions +WHERE tier = '{{ tier }}' -- required ; ```
diff --git a/website/docs/services/longview/clients/index.md b/website/docs/services/longview/clients/index.md index 0e8ed31..413e146 100644 --- a/website/docs/services/longview/clients/index.md +++ b/website/docs/services/longview/clients/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a clients resource. ## Overview - +
Nameclients
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a clients resource. The following fields are returned by `SELECT` queries: - + The requested Longview Client. @@ -79,7 +80,7 @@ The requested Longview Client. string - __Filterable__ This Client's unique label. This is for display purposes only. (example: client789, pattern: [a-zA-Z0-9-_]{3,32}) + __Filterable__ This Client's unique label. This is for display purposes only. (example: client789, pattern: [a-zA-Z0-9-_]{3,32}) @@ -89,7 +90,7 @@ The requested Longview Client. - + A paginated list of Longview Clients. @@ -103,24 +104,39 @@ A paginated list of Longview Clients. - - array - + + integer + __Read-only__ This Client's unique ID. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Read-only__ The API key for this Client, used when configuring the Longview Client application on your Linode. Returns as `[REDACTED]` if you do not have read-write access to this client. (example: BD1B4B54-D752-A76D-5A9BD8A17F39DB61) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + __Read-only__ The apps this Client is monitoring on your Linode. This is configured when you install the Longview Client application, and is present here for information purposes only. - - integer - __Read-only__ The total number of results. + + string (date-time) + __Read-only__ When this Longview Client was created. (example: 2018-01-01T00:01:01) + + + + string + __Read-only__ The install code for this Client, used when configuring the Longview Client application on your Linode. Returns as `[REDACTED]` if you do not have read-write access to this client. (example: BD1B5605-BF5E-D385-BA07AD518BE7F321) + + + + string + __Filterable__ This Client's unique label. This is for display purposes only. (example: client789, pattern: [a-zA-Z0-9-_]{3,32}) + + + + string (date-time) + __Read-only__ When this Longview Client was last updated. (example: 2018-01-01T00:01:01) @@ -143,37 +159,37 @@ The following methods are available for this resource: - + - + clientId Returns a single Longview Client you can access.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Returns a paginated list of Longview Clients you have access to. Longview Client is used to monitor stats on your Linode with the help of the Longview Client application.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + Creates a Longview Client. This Client will not begin monitoring the status of your server until you configure the Longview Client application on your Linode using the returning `install_code` and `api_key`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clientId Updates a Longview Client. This cannot update how it monitors your server; use the Longview Client application on your Linode for monitoring configuration.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + clientId Deletes a Longview Client from your Account.

__All information stored for this client will be lost.__

This _does not_ uninstall the Longview Client application for your Linode - you must do that manually.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -193,6 +209,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The Longview Client ID to access. (example: {{clientId}}) + integer @@ -209,13 +230,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a single Longview Client you can access.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -229,19 +250,23 @@ install_code, label, updated FROM linode.longview.clients +WHERE clientId = '{{ clientId }}' -- required ; ```
- + Returns a paginated list of Longview Clients you have access to. Longview Client is used to monitor stats on your Linode with the help of the Longview Client application.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +api_key, +apps, +created, +install_code, +label, +updated FROM linode.longview.clients WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -254,19 +279,19 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Creates a Longview Client. This Client will not begin monitoring the status of your server until you configure the Longview Client application on your Linode using the returning `install_code` and `api_key`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.longview.clients ( -data__label +label ) SELECT '{{ label }}' @@ -283,16 +308,15 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: clients props: - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ This Client's unique label. This is for display purposes only. - -``` +`} +
@@ -300,19 +324,21 @@ updated ## `REPLACE` examples - + Updates a Longview Client. This cannot update how it monitors your server; use the Longview Client application on your Linode for monitoring configuration.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.longview.clients SET -data__label = '{{ label }}' +label = '{{ label }}' +WHERE +clientId = '{{ clientId }}' --required RETURNING id, api_key, @@ -329,17 +355,18 @@ updated; ## `DELETE` examples - + Deletes a Longview Client from your Account.

__All information stored for this client will be lost.__

This _does not_ uninstall the Longview Client application for your Linode - you must do that manually.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.longview.clients +WHERE clientId = '{{ clientId }}' --required ; ```
diff --git a/website/docs/services/longview/plans/index.md b/website/docs/services/longview/plans/index.md index 1223594..439b1ea 100644 --- a/website/docs/services/longview/plans/index.md +++ b/website/docs/services/longview/plans/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a plans resource. ## Overview - +
Nameplans
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a plans resource. The following fields are returned by `SELECT` queries: - + The Longview plan details for this account. @@ -53,7 +54,7 @@ The Longview plan details for this account. string - __Read-only__ The unique ID of this Subscription tier. (example: longview-10) + __Read-only__ The unique ID of this Subscription tier. (longview-3, longview-10, longview-40, longview-100) (example: longview-10) @@ -91,14 +92,14 @@ The following methods are available for this resource: - + Get the details of your current Longview plan. This returns a `LongviewSubscription` object for your current Longview Pro plan, or an empty set `{}` if your current plan is Longview Free.

You must have at least one of the following `global` [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) in order to run this operation:

- `"account_access": read_write`
- `"account_access": read_only`
- `"longview_subscription": true`
- `"add_longview": true`

To update your subscription plan, send a request to [Update a Longview plan](https://techdocs.akamai.com/linode-api/reference/put-longview-plan).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + @@ -126,12 +127,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the details of your current Longview plan. This returns a `LongviewSubscription` object for your current Longview Pro plan, or an empty set `{}` if your current plan is Longview Free.

You must have at least one of the following `global` [List a user's grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) in order to run this operation:

- `"account_access": read_write`
- `"account_access": read_only`
- `"longview_subscription": true`
- `"add_longview": true`

To update your subscription plan, send a request to [Update a Longview plan](https://techdocs.akamai.com/linode-api/reference/put-longview-plan).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -151,19 +152,19 @@ FROM linode.longview.plans ## `REPLACE` examples - + Update your Longview plan to that of the given subscription ID. This returns a `LongviewSubscription` object for the updated Longview Pro plan, or an empty set `{}` if the updated plan is Longview Free.

You must have `"longview_subscription": true` configured as a `global` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) in order to run this operation.

You can send a request to the [List Longview subscriptions](https://techdocs.akamai.com/linode-api/reference/get-longview-subscriptions) operation to receive the details, including `id`'s, of each plan.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.longview.plans SET -data__longview_subscription = '{{ longview_subscription }}' +longview_subscription = '{{ longview_subscription }}' RETURNING id, clients_included, diff --git a/website/docs/services/longview/subscriptions/index.md b/website/docs/services/longview/subscriptions/index.md index 71232c5..a178120 100644 --- a/website/docs/services/longview/subscriptions/index.md +++ b/website/docs/services/longview/subscriptions/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a subscriptions resource. ## Overview - +
Namesubscriptions
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a subscriptions resource. The following fields are returned by `SELECT` queries: - + The requested Longview Subscription details. @@ -54,7 +55,7 @@ The requested Longview Subscription details. string - __Read-only__ The unique ID of this Subscription tier. (example: longview-10) + __Read-only__ The unique ID of this Subscription tier. (longview-3, longview-10, longview-40, longview-100) (example: longview-10) @@ -74,9 +75,9 @@ The requested Longview Subscription details. - + -A paginated list of Longview Subscriptions. +A paginated list of Longview subscriptions. @@ -88,24 +89,24 @@ A paginated list of Longview Subscriptions. - - - + + + - + - + - - - + + + - - - + + +
arraystring__Read-only__ The unique ID of this Subscription tier. (longview-3, longview-10, longview-40, longview-100) (example: longview-10)
integer__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).__Read-only__ The number of Longview Clients that may be created with this Subscription tier.
integer__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).string__Read-only__ A display name for this Subscription tier. (example: Longview Pro 10 pack)
integer__Read-only__ The total number of results.object__Read-only__ Pricing information about this Subscription tier.
@@ -128,18 +129,18 @@ The following methods are available for this resource: - + - + subscriptionId Get the Longview plan details as a single `LongviewSubscription` object for the provided subscription ID. This is a public endpoint and requires no authentication.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + page, page_size - Returns a paginated list of available Longview Subscriptions. This is a public endpoint and requires no authentication.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + Returns a paginated list of available Longview subscriptions. This is a public endpoint and requires no authentication.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -157,6 +158,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The Longview Subscription to look up. (example: {{subscriptionId}}) + integer @@ -173,13 +179,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the Longview plan details as a single `LongviewSubscription` object for the provided subscription ID. This is a public endpoint and requires no authentication.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -190,19 +196,20 @@ clients_included, label, price FROM linode.longview.subscriptions +WHERE subscriptionId = '{{ subscriptionId }}' -- required ; ```
- + -Returns a paginated list of available Longview Subscriptions. This is a public endpoint and requires no authentication.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) +Returns a paginated list of available Longview subscriptions. This is a public endpoint and requires no authentication.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +clients_included, +label, +price FROM linode.longview.subscriptions WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' diff --git a/website/docs/services/longview/types/index.md b/website/docs/services/longview/types/index.md index d891582..a792e66 100644 --- a/website/docs/services/longview/types/index.md +++ b/website/docs/services/longview/types/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a types resource. ## Overview - +
Nametypes
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a types resource. The following fields are returned by `SELECT` queries: - + A collection of Longview types. @@ -51,24 +52,29 @@ A collection of Longview types. - - array - The Longview types. + + string + __Read-only__ The ID representing the Longview type. (example: longview-3) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__, __Read-only__ The Longview type label is for display purposes only. (example: Longview Pro 3 pack) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + __Read-only__ The default cost of this Longview type. Prices are in US dollars, broken down into hourly and monthly charges. Certain regions have different prices from the default. For region-specific prices, see `region_prices`. + + + + array + - + integer - __Read-only__ The total number of results. + __Filterable__, __Read-only__ The monthly outbound transfer amount, in MB. @@ -91,7 +97,7 @@ The following methods are available for this resource: - + @@ -119,21 +125,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns Longview types and prices, including any region-specific rates.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +label, +price, +region_prices, +transfer FROM linode.longview.types ; ``` diff --git a/website/docs/services/maintenance/index.md b/website/docs/services/maintenance/index.md new file mode 100644 index 0000000..13cd02a --- /dev/null +++ b/website/docs/services/maintenance/index.md @@ -0,0 +1,33 @@ +--- +title: maintenance +hide_title: false +hide_table_of_contents: false +keywords: + - maintenance + - linode + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage linode resources using SQL +custom_edit_url: null +image: /img/stackql-linode-provider-featured-image.png +--- + +maintenance service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/maintenance/policies/index.md b/website/docs/services/maintenance/policies/index.md new file mode 100644 index 0000000..ab8046f --- /dev/null +++ b/website/docs/services/maintenance/policies/index.md @@ -0,0 +1,154 @@ +--- +title: policies +hide_title: false +hide_table_of_contents: false +keywords: + - policies + - maintenance + - linode + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage linode resources using SQL +custom_edit_url: null +image: /img/stackql-linode-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 policies resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Returns a paginated list of maintenance policy objects. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringA brief explanation of the maintenance policy's intended behavior. (example: Migrates the Linode to a new host while it remains fully operational. Recommended for maximizing availability.)
booleanIndicates whether this policy is the default one applied when creating a Linode.
stringThe display name for the maintenance policy. (example: Migrate)
integer__Filterable__ Number of seconds before the maintenance event triggers. A value of 0 means no prior notification.
stringUnique identifier for the maintenance policy. System policies are prefixed with `linode/`. (example: linode/migrate)
stringThe type of policy. (migrate, power_off_on) (example: migrate)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
__Beta__ List all available maintenance policies that can be applied to your Linodes.

> 📘
>
> This operation is beta and only works when using the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
+ +## 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. + + + + + + + + + + + +
NameDatatypeDescription
+ +## `SELECT` examples + + + + +__Beta__ List all available maintenance policies that can be applied to your Linodes.

> 📘
>
> This operation is beta and only works when using the beta API. Call the URL with the `apiVersion` path parameter set to `v4beta`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + +```sql +SELECT +description, +is_default, +label, +notification_period_sec, +slug, +type +FROM linode.maintenance.policies +; +``` +
+
diff --git a/website/docs/services/managed/contacts/index.md b/website/docs/services/managed/contacts/index.md index 9ac90a3..18db4fc 100644 --- a/website/docs/services/managed/contacts/index.md +++ b/website/docs/services/managed/contacts/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a contacts resource. ## Overview - +
Namecontacts
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a contacts resource. The following fields are returned by `SELECT` queries: - + The requested Managed Contact. @@ -59,7 +60,7 @@ The requested Managed Contact. string - The name of this Contact. (example: John Doe, pattern: [a-zA-Z0-9-_ ]{2,64}) + The name of this Contact. (example: John Doe, pattern: [a-zA-Z0-9-_ ]{2,64}) @@ -84,7 +85,7 @@ The requested Managed Contact. - + A paginated list of ManagedContacts. @@ -98,24 +99,34 @@ A paginated list of ManagedContacts. - - array - + + integer + __Read-only__ This Contact's unique ID. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + The name of this Contact. (example: John Doe, pattern: [a-zA-Z0-9-_ ]{2,64}) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (email) + The address to email this Contact to alert them of issues. (example: john.doe@example.org) - - integer - __Read-only__ The total number of results. + + string + __Filterable__ A grouping for this Contact. This is for display purposes only. (example: on-call) + + + + object + Information about how to reach this Contact by phone. + + + + string (date-time) + __Read-only__ When this Contact was last updated. (example: 2018-01-01T00:01:01) @@ -138,39 +149,39 @@ The following methods are available for this resource: - + + contactId - - Returns a single Managed Contact.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a single managed contact.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size - Returns a paginated list of Managed Contacts on your Account.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a paginated list of managed contacts on your account.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - Creates a Managed Contact. A Managed Contact is someone Linode special forces can contact in the course of attempting to resolve an issue with a Managed Service.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Creates a managed contact. When investigating or resolving an issue with a service monitor, Akamai Support may reach out to this contact.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + contactId - - Updates information about a Managed Contact. This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Updates information for a managed contact.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + contactId - - Deletes a Managed Contact.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Deletes a managed contact.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -188,6 +199,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the contact to access. + integer @@ -204,15 +220,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Returns a single Managed Contact.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a single managed contact.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -223,19 +239,22 @@ group, phone, updated FROM linode.managed.contacts +WHERE contactId = '{{ contactId }}' -- required ; ```
- + -Returns a paginated list of Managed Contacts on your Account.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of managed contacts on your account.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +name, +email, +group, +phone, +updated FROM linode.managed.contacts WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -248,22 +267,22 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + -Creates a Managed Contact. A Managed Contact is someone Linode special forces can contact in the course of attempting to resolve an issue with a Managed Service.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Creates a managed contact. When investigating or resolving an issue with a service monitor, Akamai Support may reach out to this contact.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.managed.contacts ( -data__email, -data__group, -data__name, -data__phone +email, +group, +name, +phone ) SELECT '{{ email }}', @@ -282,31 +301,29 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: contacts props: - name: email - value: string - description: > + value: "{{ email }}" + description: | The address to email this Contact to alert them of issues. - - name: group - value: string - description: > + value: "{{ group }}" + description: | __Filterable__ A grouping for this Contact. This is for display purposes only. - - name: name - value: string - description: > + value: "{{ name }}" + description: | The name of this Contact. - - name: phone - value: object - description: > + description: | Information about how to reach this Contact by phone. - -``` + value: + primary: "{{ primary }}" + secondary: "{{ secondary }}" +`} +
@@ -314,22 +331,24 @@ updated ## `REPLACE` examples - + -Updates information about a Managed Contact. This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Updates information for a managed contact.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.managed.contacts SET -data__email = '{{ email }}', -data__group = '{{ group }}', -data__name = '{{ name }}', -data__phone = '{{ phone }}' +email = '{{ email }}', +group = '{{ group }}', +name = '{{ name }}', +phone = '{{ phone }}' +WHERE +contactId = '{{ contactId }}' --required RETURNING id, name, @@ -345,17 +364,18 @@ updated; ## `DELETE` examples - + -Deletes a Managed Contact.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Deletes a managed contact.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.managed.contacts +WHERE contactId = '{{ contactId }}' --required ; ```
diff --git a/website/docs/services/managed/credentials/index.md b/website/docs/services/managed/credentials/index.md index 3f864b6..ac109f0 100644 --- a/website/docs/services/managed/credentials/index.md +++ b/website/docs/services/managed/credentials/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a credentials resource. ## Overview - +
Namecredentials
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a credentials resource. The following fields are returned by `SELECT` queries: - + The requested Managed Credential. @@ -59,7 +60,7 @@ The requested Managed Credential. string - The unique label for this Credential. This is for display purposes only. (example: prod-password-1, pattern: [a-zA-Z0-9-_ \.]{2,75}) + The unique label for this Credential. This is for display purposes only. (example: prod-password-1, pattern: [a-zA-Z0-9-_ \.]{2,75}) @@ -69,7 +70,7 @@ The requested Managed Credential. - + A paginated list of ManagedCredentials. @@ -83,24 +84,19 @@ A paginated list of ManagedCredentials. - - array - - - - + integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + __Read-only__ This Credential's unique ID. - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + The unique label for this Credential. This is for display purposes only. (example: prod-password-1, pattern: [a-zA-Z0-9-_ \.]{2,75}) - - integer - __Read-only__ The total number of results. + + string (date-time) + __Read-only__ The date this Credential was last decrypted by a member of Linode special forces. (example: 2018-01-01T00:01:01) @@ -123,46 +119,46 @@ The following methods are available for this resource: - + - + credentialId Returns a single Managed Credential.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size - Returns a paginated list of Managed Credentials on your Account.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a paginated list of managed credentials on your account.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__label, data__password + label, password - Creates a Managed Credential. A Managed Credential is stored securely to allow Linode special forces to access your Managed Services and resolve issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Creates a managed credential to store usernames and passwords for applications running on your Linode. Akamai Support can use these credentials to access your applications when investigating or resolving issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + credentialId Updates the label of a Managed Credential. This operation does not update the username and password for a Managed Credential. To do this, run the [Update a managed credential's username and password](https://techdocs.akamai.com/linode-api/reference/post-managed-credential-username-password)) operation instead. This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + credentialId - - Deletes a Managed Credential. Linode special forces will no longer have access to this Credential when attempting to resolve issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Deletes a managed credential. Akamai Support will no longer have access to this credential when investigating or resolving issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - password + credentialId, password - Updates the username and password for a Managed Credential.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Updates the username and password for a managed credential.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -180,6 +176,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Credential to update. + integer @@ -196,13 +197,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a single Managed Credential.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -212,19 +213,19 @@ id, label, last_decrypted FROM linode.managed.credentials +WHERE credentialId = '{{ credentialId }}' -- required ; ```
- + -Returns a paginated list of Managed Credentials on your Account.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of managed credentials on your account.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +label, +last_decrypted FROM linode.managed.credentials WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -237,21 +238,21 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + -Creates a Managed Credential. A Managed Credential is stored securely to allow Linode special forces to access your Managed Services and resolve issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Creates a managed credential to store usernames and passwords for applications running on your Linode. Akamai Support can use these credentials to access your applications when investigating or resolving issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.managed.credentials ( -data__label, -data__password, -data__username +label, +password, +username ) SELECT '{{ label }}' /* required */, @@ -266,26 +267,23 @@ last_decrypted
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: credentials props: - name: label - value: string - description: > + value: "{{ label }}" + description: | The unique label for this Credential. This is for display purposes only. - - name: password - value: string - description: > + value: "{{ password }}" + description: | The password to use when accessing the Managed Service. - - name: username - value: string - description: > + value: "{{ username }}" + description: | The username to use when accessing the Managed Service. - -``` +`} +
@@ -293,19 +291,21 @@ last_decrypted ## `REPLACE` examples - + Updates the label of a Managed Credential. This operation does not update the username and password for a Managed Credential. To do this, run the [Update a managed credential's username and password](https://techdocs.akamai.com/linode-api/reference/post-managed-credential-username-password)) operation instead. This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.managed.credentials SET -data__label = '{{ label }}' +label = '{{ label }}' +WHERE +credentialId = '{{ credentialId }}' --required RETURNING id, label, @@ -318,28 +318,29 @@ last_decrypted; ## Lifecycle Methods - + -Deletes a Managed Credential. Linode special forces will no longer have access to this Credential when attempting to resolve issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Deletes a managed credential. Akamai Support will no longer have access to this credential when investigating or resolving issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.managed.credentials.post_managed_credential_revoke - +EXEC linode.managed.credentials.revoke +@credentialId='{{ credentialId }}' --required ; ```
- + -Updates the username and password for a Managed Credential.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Updates the username and password for a managed credential.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.managed.credentials.post_managed_credential_username_password +EXEC linode.managed.credentials.update_username_password +@credentialId='{{ credentialId }}' --required @@json= '{ "password": "{{ password }}", diff --git a/website/docs/services/managed/issues/index.md b/website/docs/services/managed/issues/index.md index 5afe6b8..ba9d352 100644 --- a/website/docs/services/managed/issues/index.md +++ b/website/docs/services/managed/issues/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an issues resource. ## Overview - +
Nameissues
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an issues resource. The following fields are returned by `SELECT` queries: - + The requested issue. @@ -74,7 +75,7 @@ The requested issue. - + A paginated list of open or ongoing Managed Issues. @@ -88,24 +89,24 @@ A paginated list of open or ongoing Managed Issues. - - array - + + integer + __Read-only__ This Issue's unique ID. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ When this Issue was created. Issues are created in response to issues detected with Managed Services, so this is also when the Issue was detected. (example: 2018-01-01T00:01:01) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + __Read-only__ The ticket this Managed Issue opened. - - integer - __Read-only__ The total number of results. + + array + __Read-only__ An array of Managed Service IDs that were affected by this Issue. @@ -128,18 +129,18 @@ The following methods are available for this resource: - + + issueId - - Returns a single Issue that is impacting or did impact one of your Managed Services.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a single issue affecting one of your service monitors.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size - Returns a paginated list of recent and ongoing issues detected on your Managed Services.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a paginated list of recent and ongoing issues detected on your service monitors.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -157,6 +158,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The Issue to look up. + integer @@ -173,15 +179,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Returns a single Issue that is impacting or did impact one of your Managed Services.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a single issue affecting one of your service monitors.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -190,19 +196,20 @@ created, entity, services FROM linode.managed.issues +WHERE issueId = '{{ issueId }}' -- required ; ```
- + -Returns a paginated list of recent and ongoing issues detected on your Managed Services.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of recent and ongoing issues detected on your service monitors.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +created, +entity, +services FROM linode.managed.issues WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' diff --git a/website/docs/services/managed/linode_settings/index.md b/website/docs/services/managed/linode_settings/index.md index 8a5820d..7298d56 100644 --- a/website/docs/services/managed/linode_settings/index.md +++ b/website/docs/services/managed/linode_settings/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a linode_settings resource ## Overview - +
Namelinode_settings
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a linode_settings resource The following fields are returned by `SELECT` queries: - + A paginated list of Managed settings for your Linodes. @@ -51,24 +52,24 @@ A paginated list of Managed settings for your Linodes. - - array - + + integer + __Read-only__ The ID of the Linode these Settings are for. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Read-only__ The group of the Linode these Settings are for. This is for display purposes only. (example: linodes) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Read-only__ The label of the Linode these Settings are for. (example: linode123) - - integer - __Read-only__ The total number of results. + + object + The SSH settings for this Linode. @@ -91,11 +92,11 @@ The following methods are available for this resource: - + page, page_size - Returns a paginated list of Managed Settings for your Linodes. There will be one entry per Linode on your Account.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a paginated list of managed settings for your Linodes (one entry per Linode).

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -129,21 +130,21 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Returns a paginated list of Managed Settings for your Linodes. There will be one entry per Linode on your Account.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of managed settings for your Linodes (one entry per Linode).

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +group, +label, +ssh FROM linode.managed.linode_settings WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' diff --git a/website/docs/services/managed/managed_ssh_keys/index.md b/website/docs/services/managed/managed_ssh_keys/index.md index 6e5b679..0126e33 100644 --- a/website/docs/services/managed/managed_ssh_keys/index.md +++ b/website/docs/services/managed/managed_ssh_keys/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a managed_ssh_keys resourc ## Overview - +
Namemanaged_ssh_keys
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a managed_ssh_keys resourc The following fields are returned by `SELECT` queries: - + The requested Managed SSH public key. @@ -76,11 +77,11 @@ The following methods are available for this resource: - + - Returns the unique SSH public key assigned to your Linode account's Managed service. If you [add this public key](https://www.linode.com/docs/products/services/managed/get-started/#adding-the-public-key) to a Linode on your account, Linode special forces will be able to log in to the Linode with this key when attempting to resolve issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns the unique SSH public key assigned to Linode Managed on your account. If you [add this public key](https://techdocs.akamai.com/cloud-computing/docs/configure-ssh-access-for-linode-managed) to a Linode on your account, Akamai Support can securely access that Linode to help resolve any issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -104,14 +105,14 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Returns the unique SSH public key assigned to your Linode account's Managed service. If you [add this public key](https://www.linode.com/docs/products/services/managed/get-started/#adding-the-public-key) to a Linode on your account, Linode special forces will be able to log in to the Linode with this key when attempting to resolve issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns the unique SSH public key assigned to Linode Managed on your account. If you [add this public key](https://techdocs.akamai.com/cloud-computing/docs/configure-ssh-access-for-linode-managed) to a Linode on your account, Akamai Support can securely access that Linode to help resolve any issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT diff --git a/website/docs/services/managed/services/index.md b/website/docs/services/managed/services/index.md index 672b829..b7cf33b 100644 --- a/website/docs/services/managed/services/index.md +++ b/website/docs/services/managed/services/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a services resource. ## Overview - +
Nameservices
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a services resource. The following fields are returned by `SELECT` queries: - + The requested Managed Service. @@ -84,7 +85,7 @@ The requested Managed Service. string - The label for this Service. This is for display purposes only. (example: prod-1, pattern: [a-zA-Z0-9-_ \.]{3,64}) + The label for this Service. This is for display purposes only. (example: prod-1, pattern: [a-zA-Z0-9-_ \.]{3,64}) @@ -99,12 +100,12 @@ The requested Managed Service. string - How this Service is monitored. (example: url) + How this Service is monitored. (url, tcp) (example: url) string - __Read-only__ The current status of this Service. (example: ok) + __Read-only__ The current status of this Service. (disabled, pending, ok, problem) (example: ok) @@ -119,7 +120,7 @@ The requested Managed Service. - + A paginated list of Managed Services. @@ -133,24 +134,69 @@ A paginated list of Managed Services. - + + integer + __Read-only__ This Service's unique ID. + + + + string (url) + The URL at which this Service is monitored. URL parameters such as `?no-cache=1` are preserved. URL fragments/anchors such as `#monitor` are __not__ preserved. (example: https://example.org) + + + + string + What to expect to find in the response body for the Service to be considered up. (example: it worked) + + + + string + The group of ManagedContacts who should be notified or consulted with when an Issue is detected. (example: on-call) + + + + string (date-time) + __Read-only__ When this Managed Service was created. (example: 2018-01-01T00:01:01) + + + array - + An array of ManagedCredential IDs that should be used when attempting to resolve issues with this Service. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + The label for this Service. This is for display purposes only. (example: prod-1, pattern: [a-zA-Z0-9-_ \.]{3,64}) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + Any information relevant to the Service that Linode special forces should know when attempting to resolve Issues. (example: The service name is my-cool-application) + + + + string + The Region in which this Service is located. This is required if address is a private IP, and may not be set otherwise. + + + + string + How this Service is monitored. (url, tcp) (example: url) - + + string + __Read-only__ The current status of this Service. (disabled, pending, ok, problem) (example: ok) + + + integer - __Read-only__ The total number of results. + How long to wait, in seconds, for a response before considering the Service to be down. + + + + string (date-time) + __Read-only__ When this Managed Service was last updated. (example: 2018-03-01T00:01:01) @@ -173,53 +219,53 @@ The following methods are available for this resource: - + + serviceId - - Returns information about a single Managed Service on your Account.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns the configuration settings for a single service monitor.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - Returns a paginated list of Managed Services on your Account. These are the services Linode Managed is monitoring and will report and attempt to resolve issues with.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a paginated list of service monitors on your account. These are the services on your Linodes monitored by Linode Managed.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__label, data__service_type, data__address, data__timeout + label, service_type, address, timeout - Creates a Managed Service. Linode Managed will begin monitoring this service and reporting and attempting to resolve any Issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Creates a service monitor. Linode Managed monitors this service and alerts Akamai Support when issues are detected.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + serviceId - - Updates information about a Managed Service.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Updates a service monitor's configuration settings.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + serviceId - - Deletes a Managed Service. This service will no longer be monitored by Linode Managed.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Deletes a service monitor, so that the service is no longer monitored by Linode Managed.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + serviceId - - Temporarily disables monitoring of a Managed Service.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Temporarily disables monitoring of a service on a managed Linode.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + serviceId - - Enables monitoring of a Managed Service.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Enables monitoring of a service on a managed Linode.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -237,21 +283,26 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Managed Service to enable. + ## `SELECT` examples - + -Returns information about a single Managed Service on your Account.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns the configuration settings for a single service monitor.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -269,19 +320,29 @@ status, timeout, updated FROM linode.managed.services +WHERE serviceId = '{{ serviceId }}' -- required ; ```
- + -Returns a paginated list of Managed Services on your Account. These are the services Linode Managed is monitoring and will report and attempt to resolve issues with.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of service monitors on your account. These are the services on your Linodes monitored by Linode Managed.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +address, +body, +consultation_group, +created, +credentials, +label, +notes, +region, +service_type, +status, +timeout, +updated FROM linode.managed.services ; ``` @@ -292,27 +353,27 @@ FROM linode.managed.services ## `INSERT` examples - + -Creates a Managed Service. Linode Managed will begin monitoring this service and reporting and attempting to resolve any Issues.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Creates a service monitor. Linode Managed monitors this service and alerts Akamai Support when issues are detected.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.managed.services ( -data__address, -data__body, -data__consultation_group, -data__credentials, -data__label, -data__notes, -data__region, -data__service_type, -data__timeout +address, +body, +consultation_group, +credentials, +label, +notes, +region, +service_type, +timeout ) SELECT '{{ address }}' /* required */, @@ -343,57 +404,49 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: services props: - name: address - value: string - description: > - The URL at which this Service is monitored. URL parameters such as `?no-cache=1` are preserved. URL fragments/anchors such as `#monitor` are __not__ preserved. - + value: "{{ address }}" + description: | + The URL at which this Service is monitored. URL parameters such as \`?no-cache=1\` are preserved. URL fragments/anchors such as \`#monitor\` are __not__ preserved. - name: body - value: string - description: > + value: "{{ body }}" + description: | What to expect to find in the response body for the Service to be considered up. - - name: consultation_group - value: string - description: > + value: "{{ consultation_group }}" + description: | The group of ManagedContacts who should be notified or consulted with when an Issue is detected. - - name: credentials - value: array - description: > + value: + - {{ credentials }} + description: | An array of ManagedCredential IDs that should be used when attempting to resolve issues with this Service. - - name: label - value: string - description: > + value: "{{ label }}" + description: | The label for this Service. This is for display purposes only. - - name: notes - value: string - description: > + value: "{{ notes }}" + description: | Any information relevant to the Service that Linode special forces should know when attempting to resolve Issues. - - name: region - value: string - description: > + value: "{{ region }}" + description: | The Region in which this Service is located. This is required if address is a private IP, and may not be set otherwise. - - name: service_type - value: string - description: > + value: "{{ service_type }}" + description: | How this Service is monitored. - valid_values: ['url', 'tcp'] - name: timeout - value: integer - description: > + value: {{ timeout }} + description: | How long to wait, in seconds, for a response before considering the Service to be down. - -``` +`} +
@@ -401,27 +454,29 @@ updated ## `REPLACE` examples - + -Updates information about a Managed Service.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Updates a service monitor's configuration settings.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.managed.services SET -data__address = '{{ address }}', -data__body = '{{ body }}', -data__consultation_group = '{{ consultation_group }}', -data__credentials = '{{ credentials }}', -data__label = '{{ label }}', -data__notes = '{{ notes }}', -data__region = '{{ region }}', -data__service_type = '{{ service_type }}', -data__timeout = {{ timeout }} +address = '{{ address }}', +body = '{{ body }}', +consultation_group = '{{ consultation_group }}', +credentials = '{{ credentials }}', +label = '{{ label }}', +notes = '{{ notes }}', +region = '{{ region }}', +service_type = '{{ service_type }}', +timeout = {{ timeout }} +WHERE +serviceId = '{{ serviceId }}' --required RETURNING id, address, @@ -444,17 +499,18 @@ updated; ## `DELETE` examples - + -Deletes a Managed Service. This service will no longer be monitored by Linode Managed.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Deletes a service monitor, so that the service is no longer monitored by Linode Managed.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.managed.services +WHERE serviceId = '{{ serviceId }}' --required ; ```
@@ -464,29 +520,29 @@ DELETE FROM linode.managed.services ## Lifecycle Methods - + -Temporarily disables monitoring of a Managed Service.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Temporarily disables monitoring of a service on a managed Linode.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.managed.services.post_disable_managed_service - +EXEC linode.managed.services.disable +@serviceId='{{ serviceId }}' --required ; ```
- + -Enables monitoring of a Managed Service.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Enables monitoring of a service on a managed Linode.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.managed.services.post_enable_managed_service - +EXEC linode.managed.services.enable +@serviceId='{{ serviceId }}' --required ; ```
diff --git a/website/docs/services/managed/settings/index.md b/website/docs/services/managed/settings/index.md index a3e73de..e7242f9 100644 --- a/website/docs/services/managed/settings/index.md +++ b/website/docs/services/managed/settings/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a settings resource. ## Overview - +
Namesettings
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a settings resource. The following fields are returned by `SELECT` queries: - + The requested Linode's Managed settings. @@ -91,18 +92,18 @@ The following methods are available for this resource: - + + linodeId - - Returns a single Linode's Managed settings.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns the managed settings for a single Linode.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + linodeId - - Updates a single Linode's Managed settings. This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Updates the managed settings for a Linode.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -120,20 +121,25 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The Linode ID whose settings we are accessing. + ## `SELECT` examples - + -Returns a single Linode's Managed settings.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns the managed settings for a single Linode.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -142,6 +148,7 @@ group, label, ssh FROM linode.managed.settings +WHERE linodeId = '{{ linodeId }}' -- required ; ```
@@ -151,19 +158,21 @@ FROM linode.managed.settings ## `REPLACE` examples - + -Updates a single Linode's Managed settings. This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Updates the managed settings for a Linode.

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.managed.settings SET -data__ssh = '{{ ssh }}' +ssh = '{{ ssh }}' +WHERE +linodeId = '{{ linodeId }}' --required RETURNING id, group, diff --git a/website/docs/services/managed/statistics/index.md b/website/docs/services/managed/statistics/index.md index 0dd26d9..49f3039 100644 --- a/website/docs/services/managed/statistics/index.md +++ b/website/docs/services/managed/statistics/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a statistics resource. ## Overview - +
Namestatistics
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a statistics resource. The following fields are returned by `SELECT` queries: - + A list of Managed Stats from the last 24 hours. @@ -50,21 +51,6 @@ A list of Managed Stats from the last 24 hours. - - - string - (example: Graphs are not yet available.) - - - - string - (example: Graphs are not yet available.) - - - - string - (example: Graphs are not yet available.) - array @@ -111,11 +97,11 @@ The following methods are available for this resource: - + - Returns a list of Managed Stats on your Account in the form of x and y data points. You can use these data points to plot your own graph visualizations. These stats reflect the last 24 hours of combined usage across all managed Linodes on your account giving you a high-level snapshot of data for the following:

- cpu
- disk
- swap
- network in
- network out

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a list of metrics for the Linodes on your account in arrays of coordinates (_x_-axis and _y_-axis data points). You can use these data points to plot your own graph visualizations. These metrics reflect the last 24 hours of combined usage across all managed Linodes on your account, giving you a high-level snapshot of data for the following:

- CPU
- Disk I/O
- Swap usage
- Network in
- Network out

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -139,20 +125,17 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Returns a list of Managed Stats on your Account in the form of x and y data points. You can use these data points to plot your own graph visualizations. These stats reflect the last 24 hours of combined usage across all managed Linodes on your account giving you a high-level snapshot of data for the following:

- cpu
- disk
- swap
- network in
- network out

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a list of metrics for the Linodes on your account in arrays of coordinates (_x_-axis and _y_-axis data points). You can use these data points to plot your own graph visualizations. These metrics reflect the last 24 hours of combined usage across all managed Linodes on your account, giving you a high-level snapshot of data for the following:

- CPU
- Disk I/O
- Swap usage
- Network in
- Network out

This operation can only be accessed by the unrestricted users of an account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -0, -1, -2, cpu, disk, net_in, diff --git a/website/docs/services/monitor/alert_channels/index.md b/website/docs/services/monitor/alert_channels/index.md index 54e504e..bf7f6a3 100644 --- a/website/docs/services/monitor/alert_channels/index.md +++ b/website/docs/services/monitor/alert_channels/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an alert_channels resource ## Overview - +
Namealert_channels
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an alert_channels resource The following fields are returned by `SELECT` queries: - + Returns a paginated list of alerts channels. @@ -51,24 +52,54 @@ Returns a paginated list of alerts channels. - + + integer + __Filterable__ The unique identifier for the alert channel. + + + array - + Details about the alerts where you've applied this alert channel. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + The type of notification used with the alert channel. Currently, only `email` is supported. (email) (example: email) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + The configuration of the alert channel. - - integer - __Read-only__ The total number of results. + + string (date-time) + When the alert channel was created. (example: 2025-03-20 01:41:09) + + + + string + For a `user` alert channel, this is the user on your account that created it. For a `system` alert channel, this value is returned as `system`. > 📘 > > Currently, only `system` alert channels are supported for use. This value will always return a value of `system`. (example: system) + + + + string + __Filterable__ The name of the alert channel, used to display it in Akamai Cloud Manager. (example: Read-Write Channel) + + + + string + The type of alert channel. This can be either `system` for a channel provided by Akamai, or `user` for one you've created. > 📘 > > Currently, only `system` alert channels are supported for use. This value will always return a value of `system`. (system, user) (example: system) + + + + string (date-time) + When the alert channel was last updated. This is the same as `created` if the channel hasn't been updated. (example: 2025-03-20 01:41:09) + + + + string + For a `user` alert channel, this is the user on your account that last updated it. For a `system` alert channel, this is returned as `system`. If it hasn't been updated, this value is the same as `created_by`. > 📘 > > Currently, only `system` alert channels are supported for use. This value will always return a value of `system`. (example: system) @@ -91,7 +122,7 @@ The following methods are available for this resource: - + @@ -119,21 +150,27 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + __Beta__ Returns all of the monitoring alert channels available to your user.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - [Filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) is supported for specific objects, labeled as **Filterable**. However, only the `+and` and `+or` operators are supported, and you can't nest filter operators. __OAuth scopes__.

```
monitor:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +alerts, +channel_type, +content, +created, +created_by, +label, +type, +updated, +updated_by FROM linode.monitor.alert_channels ; ``` diff --git a/website/docs/services/monitor/alert_definitions/index.md b/website/docs/services/monitor/alert_definitions/index.md index 8bed671..814d239 100644 --- a/website/docs/services/monitor/alert_definitions/index.md +++ b/website/docs/services/monitor/alert_definitions/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an alert_definitions resou ## Overview - +
Namealert_definitions
Name
TypeResource
Id
@@ -32,14 +33,14 @@ Creates, updates, deletes, gets or lists an alert_definitions resou The following fields are returned by `SELECT` queries: - + Returns the specified alert definition. @@ -55,7 +56,7 @@ Returns the specified alert definition. integer - The unique identifier for the alert definition. + __Filterable__ The unique identifier for the alert definition. @@ -65,7 +66,7 @@ Returns the specified alert definition. string - The plan type for the Managed Database cluster, either `shared` or `dedicated`. This only applies to a `system` alert for a `service_type` of `dbaas` (Managed Databases). For `user` alerts for `dbaas`, this is returned as `null`. (example: dedicated) + The plan type for the Managed Database cluster, either `shared` or `dedicated`. This only applies to a `system` alert for a `service_type` of `dbaas` (Managed Databases). For `user` alerts for `dbaas`, this is returned as `null`. (shared, dedicated) (example: dedicated) @@ -85,7 +86,7 @@ Returns the specified alert definition. array - The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response. > 📘 > > The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`, while other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`. + The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response. > 📘 > > The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`. Other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`. @@ -95,7 +96,7 @@ Returns the specified alert definition. string - The name of the alert definition. This is used for display purposes in Akamai Cloud Manager. (example: High Memory Usage Plan Dedicated) + __Filterable__ The name of the alert definition. This is used for display purposes in Akamai Cloud Manager. (example: High Memory Usage Plan Dedicated) @@ -105,17 +106,17 @@ Returns the specified alert definition. string - The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API. Currently, only the Managed Databases (`dbaas`) service is supported. (example: dbaas) + The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API. (example: dbaas) integer - The severity of the alert. Supported values include `3` for info, `2` for low, `1` for medium, and `0` for severe. + The severity of the alert. Supported values include `3` for info, `2` for low, `1` for medium, and `0` for severe. (0, 1, 2, 3) string - The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`. (example: enabled) + __Filterable__ The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`. (enabled, disabled, in progress, failed) (example: enabled) @@ -125,7 +126,7 @@ Returns the specified alert definition. string - The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account. (example: system) + __Filterable__ The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account. (user, system) (example: system) @@ -140,7 +141,7 @@ Returns the specified alert definition. - + Returns a paginated list of alert definitions for the specified service type. @@ -154,29 +155,94 @@ Returns a paginated list of alert definitions for the specified service type. - + + integer + __Filterable__ The unique identifier for the alert definition. + + + array - + The alert channels set up for use with this alert. Run the [List alert channels](https://techdocs.akamai.com/linode-api/reference/get-alert-channels) operation to see all of the available channels. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + The plan type for the Managed Database cluster, either `shared` or `dedicated`. This only applies to a `system` alert for a `service_type` of `dbaas` (Managed Databases). For `user` alerts for `dbaas`, this is returned as `null`. (shared, dedicated) (example: dedicated) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + When the alert definition was created. (example: 2025-03-20 01:42:11) + + + + string + For a `user` alert definition, this is the user on your account that [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type) it. For a `system` alert definition, this is returned as `system`. (example: system) - + + string + An additional description for the alert definition. (example: Alert for my PostgreSQL database) + + + + array + The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response. > 📘 > > The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`. Other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`. + + + + boolean + Whether there are additional `entity_ids` associated with the alert for which the user doesn't have at least `read-only` access. + + + + string + __Filterable__ The name of the alert definition. This is used for display purposes in Akamai Cloud Manager. (example: High Memory Usage Plan Dedicated) + + + + object + Details for the rules required to trigger the alert. + + + + string + The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API. (example: dbaas) + + + integer - __Read-only__ The total number of results. + The severity of the alert. Supported values include `3` for info, `2` for low, `1` for medium, and `0` for severe. (0, 1, 2, 3) + + + + string + __Filterable__ The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`. (enabled, disabled, in progress, failed) (example: enabled) + + + + object + The conditions that need to be met to send a notification for the alert. + + + + string + __Filterable__ The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account. (user, system) (example: system) + + + + string (date-time) + When the alert definition was last updated. This is the same as `created` if the alert definition hasn't been updated. (example: 2025-03-20 01:42:11) + + + + string + For a `user` alert definition, this is the user on your account that last [updated](https://techdocs.akamai.com/linode-api/reference/put-alert-definition) it. For a `system` alert definition, this is returned as `system`. If it hasn't been updated, this value is the same as `created_by`. (example: system) - + Returns a paginated list of all alert definitions. @@ -190,24 +256,89 @@ Returns a paginated list of all alert definitions. - + + integer + __Filterable__ The unique identifier for the alert definition. + + + array - + The alert channels set up for use with this alert. Run the [List alert channels](https://techdocs.akamai.com/linode-api/reference/get-alert-channels) operation to see all of the available channels. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + The plan type for the Managed Database cluster, either `shared` or `dedicated`. This only applies to a `system` alert for a `service_type` of `dbaas` (Managed Databases). For `user` alerts for `dbaas`, this is returned as `null`. (shared, dedicated) (example: dedicated) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + When the alert definition was created. (example: 2025-03-20 01:42:11) + + + + string + For a `user` alert definition, this is the user on your account that [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type) it. For a `system` alert definition, this is returned as `system`. (example: system) + + + + string + An additional description for the alert definition. (example: Alert for my PostgreSQL database) - + + array + The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response. > 📘 > > The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`. Other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`. + + + + boolean + Whether there are additional `entity_ids` associated with the alert for which the user doesn't have at least `read-only` access. + + + + string + __Filterable__ The name of the alert definition. This is used for display purposes in Akamai Cloud Manager. (example: High Memory Usage Plan Dedicated) + + + + object + Details for the rules required to trigger the alert. + + + + string + The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API. (example: dbaas) + + + integer - __Read-only__ The total number of results. + The severity of the alert. Supported values include `3` for info, `2` for low, `1` for medium, and `0` for severe. (0, 1, 2, 3) + + + + string + __Filterable__ The current status of the alert. This can be either `enabled`, `disabled`, `in progress`, or `failed`. (enabled, disabled, in progress, failed) (example: enabled) + + + + object + The conditions that need to be met to send a notification for the alert. + + + + string + __Filterable__ The type of alert. This can be either `user` for an alert specific to the current user, or `system` for one that applies to all users on your account. (user, system) (example: system) + + + + string (date-time) + When the alert definition was last updated. This is the same as `created` if the alert definition hasn't been updated. (example: 2025-03-20 01:42:11) + + + + string + For a `user` alert definition, this is the user on your account that last [updated](https://techdocs.akamai.com/linode-api/reference/put-alert-definition) it. For a `system` alert definition, this is returned as `system`. If it hasn't been updated, this value is the same as `created_by`. (example: system) @@ -230,46 +361,46 @@ The following methods are available for this resource: - + + serviceType, alertId - - __Beta__ Returns a specific alert definition. Include the appropriate `service_type` and `alert_id` as path parameters.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported. __OAuth scopes__.

```
monitor:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + __Beta__ Returns a specific alert definition.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL. __OAuth scopes__.

```
monitor:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + + serviceType - - __Beta__ Returns all available alert definitions for a specific service type. Include the appropriate `service_type` as a path parameter.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported. __OAuth scopes__.

```
monitor:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + __Beta__ Returns all available alert definitions for a specific service type.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL. __OAuth scopes__.

```
monitor:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + __Beta__ Returns all available alert definitions on your account.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - [Filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) is supported for specific objects, labeled as **Filterable**. However, only the `+and` and `+or` operators are supported, and you can't nest filter operators. __OAuth scopes__.

```
monitor:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + - data__label, data__severity, data__rule_criteria, data__trigger_conditions, data__channel_ids + serviceType, label, severity, rule_criteria, trigger_conditions, channel_ids - __Beta__ Create a new alert definition for a specific service type. Include the appropriate `service_type` as a path parameter. These are referred to as `user` alerts. You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/oauth-reference) for the selected `service_type`.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported. __OAuth scopes__.

```
monitor:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + __Beta__ Create a new alert definition for a specific service type. Akamai refers to these as `user` alerts. You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the selected `serviceType`. Check out this [workflow](https://techdocs.akamai.com/linode-api/reference/create-a-logs-stream) for the basics on set up of a destination and a stream to gather logs.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL. __OAuth scopes__.

```
monitor:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + + serviceType, alertId - - __Beta__ Update an existing alert definition. Include the appropriate `service_type` and `alert_id` as path parameters. You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/oauth-reference) for the selected `service_type`. Only include the objects in the request that you want to update. Leave any object out of the request to leave it set as is.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.

**User alert definitions**

When updating an alert definition you've [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type), you can change the `status` to `enabled` or `disabled`. You can also modify the `label`, `description`, `severity`, `entity_ids`, `rule_criteria`, `trigger_conditions`, and `channel_ids` objects. If updating the `entity_ids`, `rule_criteria`, or `channel_ids` list objects, these points apply:

- If you want to keep an existing item, you need to include it in the list.

- If you want to remove an existing item, leave it out of the list.

- To add a new item, include it in the list.

- You can't pass an empty list to remove all items. This doesn't apply to the `entity_ids` or `dimension_filters` (in `rule_criteria`) list objects, because they are optional, while all other list objects are required.

**System alert definitions**

These are the default alert definitions offered by Akamai. You can only edit the `entity_ids` list object for these alerts. All of the points above regarding editing a list object apply here, too. __OAuth scopes__.

```
monitor:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + __Beta__ Update an existing alert definition. You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the selected `serviceType`. Only include the objects in the request that you want to update. Leave any object out of the request to leave it set as is.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL.

**User alert definitions**

When updating an alert definition you've [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type), you can change the `status` to `enabled` or `disabled`. You can also modify the `label`, `description`, `severity`, `entity_ids`, `rule_criteria`, `trigger_conditions`, and `channel_ids` objects. If updating the `entity_ids`, `rule_criteria`, or `channel_ids` list objects, these points apply:

- If you want to keep an existing item, you need to include it in the list.

- If you want to remove an existing item, leave it out of the list.

- To add a new item, include it in the list.

- You can't pass an empty list to remove all items. This doesn't apply to the `entity_ids` or `dimension_filters` (in `rule_criteria`) list objects, because they are optional, while all other list objects are required.

**System alert definitions**

These are the default alert definitions offered by Akamai. You can only edit the `entity_ids` list object for these alerts. All of the points above regarding editing a list object apply here, too. __OAuth scopes__.

```
monitor:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + + serviceType, alertId - - __Beta__ Delete a specific alert definition on your account. Include the appropriate `service_type` and `alert_id` as path parameters.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the target `service_type`.
>
> - An [alert definition](https://techdocs.akamai.com/linode-api/reference/get-alert-definitions) with a `type` of `system` can't be deleted.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + __Beta__ Delete a specific alert definition on your account.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the target `serviceType`.
>
> - An [alert definition](https://techdocs.akamai.com/linode-api/reference/get-alert-definitions) with a `type` of `system` can't be deleted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -287,22 +418,32 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The unique identifier assigned to the alert definition. Run the [List alert definitions](https://techdocs.akamai.com/linode-api/reference/get-alert-definitions) operation and store the `id` for the applicable alert definition. + + + + string + The Akamai Cloud Computing service being monitored. To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation and store the appropriate `service_type`. + ## `SELECT` examples - + -__Beta__ Returns a specific alert definition. Include the appropriate `service_type` and `alert_id` as path parameters.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported. __OAuth scopes__.

```
monitor:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) +__Beta__ Returns a specific alert definition.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL. __OAuth scopes__.

```
monitor:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT @@ -324,33 +465,62 @@ type, updated, updated_by FROM linode.monitor.alert_definitions +WHERE serviceType = '{{ serviceType }}' -- required +AND alertId = '{{ alertId }}' -- required ; ```
- + -__Beta__ Returns all available alert definitions for a specific service type. Include the appropriate `service_type` as a path parameter.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported. __OAuth scopes__.

```
monitor:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) +__Beta__ Returns all available alert definitions for a specific service type.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL. __OAuth scopes__.

```
monitor:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +alert_channels, +class, +created, +created_by, +description, +entity_ids, +has_more_resources, +label, +rule_criteria, +service_type, +severity, +status, +trigger_conditions, +type, +updated, +updated_by FROM linode.monitor.alert_definitions +WHERE serviceType = '{{ serviceType }}' -- required ; ```
- + __Beta__ Returns all available alert definitions on your account.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - [Filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) is supported for specific objects, labeled as **Filterable**. However, only the `+and` and `+or` operators are supported, and you can't nest filter operators. __OAuth scopes__.

```
monitor:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +alert_channels, +class, +created, +created_by, +description, +entity_ids, +has_more_resources, +label, +rule_criteria, +service_type, +severity, +status, +trigger_conditions, +type, +updated, +updated_by FROM linode.monitor.alert_definitions ; ``` @@ -361,25 +531,26 @@ FROM linode.monitor.alert_definitions ## `INSERT` examples - + -__Beta__ Create a new alert definition for a specific service type. Include the appropriate `service_type` as a path parameter. These are referred to as `user` alerts. You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/oauth-reference) for the selected `service_type`.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported. __OAuth scopes__.

```
monitor:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) +__Beta__ Create a new alert definition for a specific service type. Akamai refers to these as `user` alerts. You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the selected `serviceType`. Check out this [workflow](https://techdocs.akamai.com/linode-api/reference/create-a-logs-stream) for the basics on set up of a destination and a stream to gather logs.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL. __OAuth scopes__.

```
monitor:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql INSERT INTO linode.monitor.alert_definitions ( -data__channel_ids, -data__description, -data__entity_ids, -data__label, -data__rule_criteria, -data__severity, -data__trigger_conditions +channel_ids, +description, +entity_ids, +label, +rule_criteria, +severity, +trigger_conditions, +serviceType ) SELECT '{{ channel_ids }}' /* required */, @@ -388,7 +559,8 @@ SELECT '{{ label }}' /* required */, '{{ rule_criteria }}' /* required */, {{ severity }} /* required */, -'{{ trigger_conditions }}' /* required */ +'{{ trigger_conditions }}' /* required */, +'{{ serviceType }}' RETURNING id, alert_channels, @@ -412,53 +584,58 @@ updated_by
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: alert_definitions props: + - name: serviceType + value: "{{ serviceType }}" + description: Required parameter for the alert_definitions resource. - name: channel_ids - value: array - description: > - The identifiers for the alert channels to use for the alert. Run the [List alert channels](https://techdocs.akamai.com/linode-api/reference/get-alert-channels) operation and store the `id` for the applicable channels. - + value: + - {{ channel_ids }} + description: | + The identifiers for the alert channels to use for the alert. Run the [List alert channels](https://techdocs.akamai.com/linode-api/reference/get-alert-channels) operation and store the \`id\` for the applicable channels. - name: description - value: string - description: > + value: "{{ description }}" + description: | An additional description for the alert definition. - - name: entity_ids - value: array - description: > - The `id` for each individual entity from a `service_type`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the `id` for the appropriate database from the response. - -> 📘 -> -> - You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the `service_type` for each of the `entity_ids`. -> -> - The format `type` for an `entity_id` may vary, based on the Akamai Cloud `service_type`. For example, the `dbaas` service returns an integer value for an `id`, that you'd use for the `entity_id`, while other services may return a string for their `id`. With the Alerts operations, all of these formats are recognized as an `entity_id`, when you include them as a `string`. - + value: + - "{{ entity_ids }}" + description: | + The \`id\` for each individual entity from a \`service_type\`. Get this value by running the list operation for the appropriate entity. For example, if your entity is one of your PostgreSQL databases, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation and store the \`id\` for the appropriate database from the response. You also need \`read_only\` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the \`service_type\` for each of the \`entity_ids\`. + > 📘 + > + > The format \`type\` for an \`entity_id\` may vary, based on the Akamai Cloud \`service_type\`. For example, the \`dbaas\` service returns an integer value for an \`id\`, that you'd use for the \`entity_id\`, while other services may return a string for their \`id\`. With the Alerts operations, all of these formats are recognized as an \`entity_id\`, when you include them as a \`string\`. - name: label - value: string - description: > + value: "{{ label }}" + description: | The name of the alert definition. This is used for display purposes in Akamai Cloud Manager. - - name: rule_criteria - value: object - description: > + description: | Details for the rules required to trigger the alert. - + value: + rules: + - aggregate_function: "{{ aggregate_function }}" + dimension_filters: "{{ dimension_filters }}" + metric: "{{ metric }}" + operator: "{{ operator }}" + threshold: {{ threshold }} - name: severity - value: integer - description: > - The severity of the alert. Supported values include `3` for info, `2` for low, `1` for medium, and `0` for severe. - + value: {{ severity }} + description: | + The severity of the alert. Supported values include \`3\` for info, \`2\` for low, \`1\` for medium, and \`0\` for severe. valid_values: ['0', '1', '2', '3'] - name: trigger_conditions - value: object - description: > + description: | The conditions that need to be met to send a notification for the alert. - -``` + value: + criteria_condition: "{{ criteria_condition }}" + evaluation_period_seconds: {{ evaluation_period_seconds }} + polling_interval_seconds: {{ polling_interval_seconds }} + trigger_occurrences: {{ trigger_occurrences }} +`} +
@@ -466,26 +643,29 @@ updated_by ## `REPLACE` examples - + -__Beta__ Update an existing alert definition. Include the appropriate `service_type` and `alert_id` as path parameters. You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/oauth-reference) for the selected `service_type`. Only include the objects in the request that you want to update. Leave any object out of the request to leave it set as is.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.

**User alert definitions**

When updating an alert definition you've [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type), you can change the `status` to `enabled` or `disabled`. You can also modify the `label`, `description`, `severity`, `entity_ids`, `rule_criteria`, `trigger_conditions`, and `channel_ids` objects. If updating the `entity_ids`, `rule_criteria`, or `channel_ids` list objects, these points apply:

- If you want to keep an existing item, you need to include it in the list.

- If you want to remove an existing item, leave it out of the list.

- To add a new item, include it in the list.

- You can't pass an empty list to remove all items. This doesn't apply to the `entity_ids` or `dimension_filters` (in `rule_criteria`) list objects, because they are optional, while all other list objects are required.

**System alert definitions**

These are the default alert definitions offered by Akamai. You can only edit the `entity_ids` list object for these alerts. All of the points above regarding editing a list object apply here, too. __OAuth scopes__.

```
monitor:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) +__Beta__ Update an existing alert definition. You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the selected `serviceType`. Only include the objects in the request that you want to update. Leave any object out of the request to leave it set as is.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL.

**User alert definitions**

When updating an alert definition you've [created](https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type), you can change the `status` to `enabled` or `disabled`. You can also modify the `label`, `description`, `severity`, `entity_ids`, `rule_criteria`, `trigger_conditions`, and `channel_ids` objects. If updating the `entity_ids`, `rule_criteria`, or `channel_ids` list objects, these points apply:

- If you want to keep an existing item, you need to include it in the list.

- If you want to remove an existing item, leave it out of the list.

- To add a new item, include it in the list.

- You can't pass an empty list to remove all items. This doesn't apply to the `entity_ids` or `dimension_filters` (in `rule_criteria`) list objects, because they are optional, while all other list objects are required.

**System alert definitions**

These are the default alert definitions offered by Akamai. You can only edit the `entity_ids` list object for these alerts. All of the points above regarding editing a list object apply here, too. __OAuth scopes__.

```
monitor:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql REPLACE linode.monitor.alert_definitions SET -data__channel_ids = '{{ channel_ids }}', -data__description = '{{ description }}', -data__entity_ids = '{{ entity_ids }}', -data__label = '{{ label }}', -data__rule_criteria = '{{ rule_criteria }}', -data__severity = {{ severity }}, -data__status = '{{ status }}', -data__trigger_conditions = '{{ trigger_conditions }}' +channel_ids = '{{ channel_ids }}', +description = '{{ description }}', +entity_ids = '{{ entity_ids }}', +label = '{{ label }}', +rule_criteria = '{{ rule_criteria }}', +severity = {{ severity }}, +status = '{{ status }}', +trigger_conditions = '{{ trigger_conditions }}' +WHERE +serviceType = '{{ serviceType }}' --required +AND alertId = '{{ alertId }}' --required RETURNING id, alert_channels, @@ -512,17 +692,19 @@ updated_by; ## `DELETE` examples - + -__Beta__ Delete a specific alert definition on your account. Include the appropriate `service_type` and `alert_id` as path parameters.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the target `service_type`.
>
> - An [alert definition](https://techdocs.akamai.com/linode-api/reference/get-alert-definitions) with a `type` of `system` can't be deleted.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +__Beta__ Delete a specific alert definition on your account.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - You need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the target `serviceType`.
>
> - An [alert definition](https://techdocs.akamai.com/linode-api/reference/get-alert-definitions) with a `type` of `system` can't be deleted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.monitor.alert_definitions +WHERE serviceType = '{{ serviceType }}' --required +AND alertId = '{{ alertId }}' --required ; ```
diff --git a/website/docs/services/monitor/dashboards/index.md b/website/docs/services/monitor/dashboards/index.md index 6accf59..85eed6b 100644 --- a/website/docs/services/monitor/dashboards/index.md +++ b/website/docs/services/monitor/dashboards/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a dashboards resource. ## Overview - +
Namedashboards
Name
TypeResource
Id
@@ -32,14 +33,14 @@ Creates, updates, deletes, gets or lists a dashboards resource. The following fields are returned by `SELECT` queries: - + Returns a dashboard. @@ -70,12 +71,12 @@ Returns a dashboard. string - The Akamai Cloud Computing service used by this dashboard. Currently, only the Managed Databases (`dbaas`) service is supported. (example: dbaas) + The Akamai Cloud Computing service used by this dashboard. (example: dbaas) string - The type of dashboard. Currently, this can only be `standard` for a dashboard that uses default formatting. (example: standard) + The type of dashboard. Currently, this can only be `standard` for a dashboard that uses default formatting. (standard) (example: standard) @@ -90,7 +91,7 @@ Returns a dashboard. - + Returns a paginated list of dashboards. @@ -104,29 +105,44 @@ Returns a paginated list of dashboards. - - array - + + integer + The unique ID assigned to the dashboard. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + When the dashboard was created. (example: 2024-10-10T05:01:58Z) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + The name of the dashboard. This is used for display purposes in Akamai Cloud Manager. (example: Resource Usage) - - integer - __Read-only__ The total number of results. + + string + The Akamai Cloud Computing service used by this dashboard. (example: dbaas) + + + + string + The type of dashboard. Currently, this can only be `standard` for a dashboard, which uses default formatting. (standard) (example: standard) + + + + string (date-time) + When the dashboard was last updated. (example: 2024-10-12T08:15:37Z) + + + + array + The widgets used in the dashboard. - + Returns a paginated list of dashboards. @@ -157,12 +173,12 @@ Returns a paginated list of dashboards. string - The Akamai Cloud Computing service used by this dashboard. Currently, only the Managed Databases (`dbaas`) service is supported. (example: dbaas) + The Akamai Cloud Computing service used by this dashboard. (example: dbaas) string - The type of dashboard. Currently, this can only be `standard` for a dashboard that uses default formatting. (example: standard) + The type of dashboard. Currently, this can only be `standard` for a dashboard that uses default formatting. (standard) (example: standard) @@ -195,21 +211,21 @@ The following methods are available for this resource: - + + dashboardId - - __Beta__ Returns a specific dashboard, based on its unique ID. You can run the [List dashboards](https://techdocs.akamai.com/linode-api/reference/get-dashboards-all) operation to see the ID for all dashboards.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + __Beta__ Returns a specific dashboard, based on its unique identifier.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + serviceType - - __Beta__ Returns all available dashboards for a given service type. Include the appropriate `service_type` as a path parameter.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + __Beta__ Returns all available dashboards for a given service type.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + @@ -231,22 +247,32 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The unique identifier of the dashboard. + + + + string + The Akamai Cloud Computing service being monitored. To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation and store the appropriate `service_type`. + ## `SELECT` examples - + -__Beta__ Returns a specific dashboard, based on its unique ID. You can run the [List dashboards](https://techdocs.akamai.com/linode-api/reference/get-dashboards-all) operation to see the ID for all dashboards.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +__Beta__ Returns a specific dashboard, based on its unique identifier.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -258,24 +284,29 @@ type, updated, widgets FROM linode.monitor.dashboards +WHERE dashboardId = '{{ dashboardId }}' -- required ; ```
- + -__Beta__ Returns all available dashboards for a given service type. Include the appropriate `service_type` as a path parameter.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +__Beta__ Returns all available dashboards for a given service type.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +created, +label, +service_type, +type, +updated, +widgets FROM linode.monitor.dashboards +WHERE serviceType = '{{ serviceType }}' -- required ; ```
- + __Beta__ Returns all available dashboards.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) diff --git a/website/docs/services/monitor/metrics/index.md b/website/docs/services/monitor/metrics/index.md index c1f2d04..1d1d737 100644 --- a/website/docs/services/monitor/metrics/index.md +++ b/website/docs/services/monitor/metrics/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a metrics resource. ## Overview - +
Namemetrics
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a metrics resource. The following fields are returned by `SELECT` queries: - + Returns a paginated list of metric information. @@ -51,24 +52,44 @@ Returns a paginated list of metric information. - + array - + Available aggregate functions for the metric. (example: increase) - - integer - The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + array + Dimensions for the metric. - - integer - The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + boolean + Whether the metric is alertable. - - integer - The total number of results. + + string + The name of the metric. This is used for display purposes in Akamai Cloud Manager. (example: CPU Usage) + + + + string + The identifier for the metric. This is how the metric is called out in other Monitor operations in the API. (example: cpu_usage) + + + + string + The type of metric. A value of `counter` represents variable values and a set target for the count. A `histogram` represents the frequency distribution of data points across a continuous range of numerical values. A `gauge` represents the performance against a target goal, and `summary` presents and summarizes data from multiple sources. (counter, histogram, gauge, summary) (example: histogram) + + + + string + How frequently a metric is scraped to gather data, using `s` for seconds, `m` for minutes, or `h` for hours. Set to `60s`, the metric would be scraped every 60 seconds. Set to `2m`, the scrape occurs every two minutes. (example: 60s) + + + + string + The unit of measurement for the metric. (%, Bytes, sec, bps, msec, Bps, KB, MB, GB, rate, percentile, ratio, OPS, IOPS) (example: Bps) @@ -91,25 +112,25 @@ The following methods are available for this resource: - + - + serviceType X-Filter - __Beta__ Returns metrics for a specific service type. Include the appropriate `service_type` as a path parameter.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + __Beta__ Returns metrics for a specific service type.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - For more details on the metrics available for each service, see the [Metrics reference](https://techdocs.akamai.com/cloud-computing/docs/metrics-dimensions-parameters).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + serviceType, relative_time_duration, metrics, entity_ids, absolute_time_duration - - __Beta__ Returns metrics information for the individual entities within a specific service type. Include the appropriate `service_type` as a path parameter. Requires an `authorization: Bearer` [token](https://techdocs.akamai.com/linode-api/reference/post-get-token) you've created for this `service_type`.

> 📘
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.
>
> - This operation uses a different URL and version from standard Linode API operations. Verify you're using the URL with the `monitor-api.linode.com` hostname and include `v2beta` as the version in the URL. + __Beta__ Returns metrics information for the individual entities within a specific service type. Thi operation also requires an `authorization: Bearer` [token](https://techdocs.akamai.com/linode-api/reference/post-get-token) you've created for this `serviceType`.

> 📘
>
> - This operation uses a different URL and version from standard Linode API operations. Verify you're using the URL with the `monitor-api.linode.com` hostname and include `v2beta` as the version in the URL.
>
> - For more details on the metrics available for each service, see the [Metrics reference](https://techdocs.akamai.com/cloud-computing/docs/metrics-dimensions-parameters). - + - entity_ids + serviceType, entity_ids - __Beta__ Returns a token that authenticates requests for the entities within a specific service type. Include the appropriate `service_type` as a path parameter. The token has a lifetime of six hours after you create it. For an example of the token generation process, see [Monitor API operation authentication](https://techdocs.akamai.com/linode-api/docs/get-started#monitor-api-operation-authentication).

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.
>
> - You also need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the selected `service_type`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + __Beta__ Returns a token that authenticates requests for the entities within a specific service type. The token has a lifetime of six hours after you create it. For an example of the token generation process, see [Authenticate Monitor API operations](https://techdocs.akamai.com/linode-api/reference/get-started#authenticate-monitor-api-operations).

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation.
>
> - You also need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the specified `serviceType`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -127,6 +148,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The Akamai Cloud Computing service being monitored. To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation and store the appropriate `service_type`. + object @@ -138,23 +164,28 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -__Beta__ Returns metrics for a specific service type. Include the appropriate `service_type` as a path parameter.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +__Beta__ Returns metrics for a specific service type.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - For more details on the metrics available for each service, see the [Metrics reference](https://techdocs.akamai.com/cloud-computing/docs/metrics-dimensions-parameters).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +available_aggregate_functions, +dimensions, +is_alertable, +label, +metric, +metric_type, +scrape_interval, +unit FROM linode.monitor.metrics -WHERE X-Filter = '{{ X-Filter }}' +WHERE serviceType = '{{ serviceType }}' -- required +AND X-Filter = '{{ X-Filter }}' ; ```
@@ -164,28 +195,39 @@ WHERE X-Filter = '{{ X-Filter }}' ## Lifecycle Methods - + -__Beta__ Returns metrics information for the individual entities within a specific service type. Include the appropriate `service_type` as a path parameter. Requires an `authorization: Bearer` [token](https://techdocs.akamai.com/linode-api/reference/post-get-token) you've created for this `service_type`.

> 📘
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.
>
> - This operation uses a different URL and version from standard Linode API operations. Verify you're using the URL with the `monitor-api.linode.com` hostname and include `v2beta` as the version in the URL. +__Beta__ Returns metrics information for the individual entities within a specific service type. Thi operation also requires an `authorization: Bearer` [token](https://techdocs.akamai.com/linode-api/reference/post-get-token) you've created for this `serviceType`.

> 📘
>
> - This operation uses a different URL and version from standard Linode API operations. Verify you're using the URL with the `monitor-api.linode.com` hostname and include `v2beta` as the version in the URL.
>
> - For more details on the metrics available for each service, see the [Metrics reference](https://techdocs.akamai.com/cloud-computing/docs/metrics-dimensions-parameters). ```sql -EXEC linode.monitor.metrics.post_read_metric - +EXEC linode.monitor.metrics.read +@serviceType='{{ serviceType }}' --required +@@json= +'{ +"entity_ids": "{{ entity_ids }}", +"filters": "{{ filters }}", +"group_by": "{{ group_by }}", +"metrics": "{{ metrics }}", +"time_granularity": "{{ time_granularity }}", +"relative_time_duration": "{{ relative_time_duration }}", +"absolute_time_duration": "{{ absolute_time_duration }}" +}' ; ```
- + -__Beta__ Returns a token that authenticates requests for the entities within a specific service type. Include the appropriate `service_type` as a path parameter. The token has a lifetime of six hours after you create it. For an example of the token generation process, see [Monitor API operation authentication](https://techdocs.akamai.com/linode-api/docs/get-started#monitor-api-operation-authentication).

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.
>
> - You also need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the selected `service_type`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +__Beta__ Returns a token that authenticates requests for the entities within a specific service type. The token has a lifetime of six hours after you create it. For an example of the token generation process, see [Authenticate Monitor API operations](https://techdocs.akamai.com/linode-api/reference/get-started#authenticate-monitor-api-operations).

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation.
>
> - You also need `read_only` access to the [scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) for the specified `serviceType`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.monitor.metrics.post_get_token +EXEC linode.monitor.metrics.create_token +@serviceType='{{ serviceType }}' --required @@json= '{ "entity_ids": "{{ entity_ids }}" diff --git a/website/docs/services/monitor/monitor_services/index.md b/website/docs/services/monitor/monitor_services/index.md index ebd8805..80c17cb 100644 --- a/website/docs/services/monitor/monitor_services/index.md +++ b/website/docs/services/monitor/monitor_services/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a monitor_services resourc ## Overview - +
Namemonitor_services
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a monitor_services resourc The following fields are returned by `SELECT` queries: - + Returns a paginated list of metric definitions. @@ -52,29 +53,19 @@ Returns a paginated list of metric definitions. - - array - - - - - integer - The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + The full name of Akamai Cloud Computing service. This is used for display purposes in Akamai Cloud Manager. (example: Databases) - - integer - The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - The total number of results. + + string + The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API. (example: dbaas) - + Returns a paginated list of metric definitions. @@ -88,24 +79,14 @@ Returns a paginated list of metric definitions. - - array - - - - - integer - The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + The full name of Akamai Cloud Computing service. This is used for display purposes in Akamai Cloud Manager. (example: Databases) - - integer - The total number of results. + + string + The identifier for the Akamai Cloud Computing service. Use this value to call out the service in other Monitor operations in the API. (example: dbaas) @@ -128,14 +109,14 @@ The following methods are available for this resource: - + + serviceType - - __Beta__ Returns details for a specific service type. Include the appropriate `service_type` as a path parameter.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + __Beta__ Returns details for a specific service type.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - For more details on the metrics available for each service, see the [Metrics reference](https://techdocs.akamai.com/cloud-computing/docs/metrics-dimensions-parameters).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + @@ -157,42 +138,44 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The Akamai Cloud Computing service being monitored. To see your currently supported services, run the [List supported service types](https://techdocs.akamai.com/linode-api/reference/get-monitor-services) operation and store the appropriate `service_type`. + ## `SELECT` examples - + -__Beta__ Returns details for a specific service type. Include the appropriate `service_type` as a path parameter.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - Currently, only the Managed Databases (`dbaas`) service type is supported.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +__Beta__ Returns details for a specific service type.

> 📘
>
> - This operation is beta. Call it using the `v4beta` path in its URL.
>
> - For more details on the metrics available for each service, see the [Metrics reference](https://techdocs.akamai.com/cloud-computing/docs/metrics-dimensions-parameters).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +label, +service_type FROM linode.monitor.monitor_services +WHERE serviceType = '{{ serviceType }}' -- required ; ```
- + __Beta__ Returns a paginated list of all current supported service types.

> 📘
>
> This operation is beta. Call it using the `v4beta` path in its URL.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +label, +service_type FROM linode.monitor.monitor_services ; ``` diff --git a/website/docs/services/networking/firewall_devices/index.md b/website/docs/services/networking/firewall_devices/index.md index 4716cbe..c17004d 100644 --- a/website/docs/services/networking/firewall_devices/index.md +++ b/website/docs/services/networking/firewall_devices/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a firewall_devices resourc ## Overview - +
Namefirewall_devices
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a firewall_devices resourc The following fields are returned by `SELECT` queries: - + The requested Firewall Device. @@ -59,22 +60,22 @@ The requested Firewall Device. string (date-time) - __Filterable__, __Read-only__ When this device was created. (example: 2018-01-01T00:01:01) + __Filterable__, __Read-only__ When this device was created. (example: 2025-01-01T00:01:01) object - __Read-only__ The compute service or interface this firewall is assigned to. + The Linode, NodeBalancer, or Linode interface this firewall is assigned to. string (date-time) - __Filterable__, __Read-only__ When this device was last updated. (example: 2018-01-02T00:01:01) + __Filterable__, __Read-only__ When this device was last updated. (example: 2025-01-02T00:01:01) - + A paginated list of Firewall Devices. @@ -88,24 +89,24 @@ A paginated list of Firewall Devices. - - array - + + integer + __Filterable__ The device's unique ID. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Filterable__, __Read-only__ When this device was created. (example: 2025-01-01T00:01:01) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + The Linode, NodeBalancer, or Linode interface this firewall is assigned to. - - integer - __Read-only__ The total number of results. + + string (date-time) + __Filterable__, __Read-only__ When this device was last updated. (example: 2025-01-02T00:01:01) @@ -128,30 +129,30 @@ The following methods are available for this resource: - + - + firewallId, deviceId Returns information for a Firewall Device, which assigns a Firewall to a service (referred to as the Device's `entity`).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + firewallId page, page_size Returns a paginated list of a firewall's devices. A firewall device assigns a firewall to a service (referred to as the device's `entity`).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__id, data__type + firewallId, id, type - Creates a firewall device, which assigns a firewall to a service (referred to as the device's `entity`) and applies the firewall's rules to the device.

- Currently, devices with `linode`, `interface`, and `nodebalancer` entity types are accepted.
- The `linode` type is not allowed for Linodes using Linode interfaces.
- The `interface` type is not allowed for legacy config interfaces. For VPC and public legacy config profile interfaces, the firewall is applied through the `linode` device.

- Firewalls only apply to inbound TCP traffic to NodeBalancers.

- A firewall can be assigned to multiple services at a time.

- A service can have one assigned firewall at a time.

- Assigned Linodes must not have any ongoing live migrations.

- A `firewall_device_add` event is generated when the firewall device is added successfully.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Creates a firewall device, which assigns a firewall to a service (referred to as the device's `entity`) and applies the firewall's rules to the device.

- Currently, devices with `linode`, `linode_interface`, and `nodebalancer` entity types are accepted.
- The `linode` type is not allowed for Linodes using Linode interfaces.
- The `linode_interface` type is not allowed for legacy config interfaces. For VPC and public legacy config profile interfaces, the firewall is applied through the `linode` device.

- Firewalls only apply to inbound TCP traffic to NodeBalancers.

- A firewall can be assigned to multiple services at a time.

- A service can have one assigned firewall at a time.

- Assigned Linodes must not have any ongoing live migrations.

- A `firewall_device_add` event is generated when the firewall device is added successfully.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + firewallId, deviceId Removes a Firewall Device, which removes a Firewall from the service it was assigned to by the Device. This removes all of the Firewall's Rules from the service. If any other Firewalls have been assigned to the service, then those Rules remain in effect.

- Assigned Linodes must not have any ongoing live migrations.

- A `firewall_device_remove` Event is generated when the Firewall Device is removed successfully.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -171,6 +172,16 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Firewall Device to access. + + + + string + ID of the Firewall to access. + integer @@ -187,13 +198,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns information for a Firewall Device, which assigns a Firewall to a service (referred to as the Device's `entity`).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -204,21 +215,24 @@ created, entity, updated FROM linode.networking.firewall_devices +WHERE firewallId = '{{ firewallId }}' -- required +AND deviceId = '{{ deviceId }}' -- required ; ```
- + Returns a paginated list of a firewall's devices. A firewall device assigns a firewall to a service (referred to as the device's `entity`).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +created, +entity, +updated FROM linode.networking.firewall_devices -WHERE page = '{{ page }}' +WHERE firewallId = '{{ firewallId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` @@ -229,24 +243,26 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + -Creates a firewall device, which assigns a firewall to a service (referred to as the device's `entity`) and applies the firewall's rules to the device.

- Currently, devices with `linode`, `interface`, and `nodebalancer` entity types are accepted.
- The `linode` type is not allowed for Linodes using Linode interfaces.
- The `interface` type is not allowed for legacy config interfaces. For VPC and public legacy config profile interfaces, the firewall is applied through the `linode` device.

- Firewalls only apply to inbound TCP traffic to NodeBalancers.

- A firewall can be assigned to multiple services at a time.

- A service can have one assigned firewall at a time.

- Assigned Linodes must not have any ongoing live migrations.

- A `firewall_device_add` event is generated when the firewall device is added successfully.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Creates a firewall device, which assigns a firewall to a service (referred to as the device's `entity`) and applies the firewall's rules to the device.

- Currently, devices with `linode`, `linode_interface`, and `nodebalancer` entity types are accepted.
- The `linode` type is not allowed for Linodes using Linode interfaces.
- The `linode_interface` type is not allowed for legacy config interfaces. For VPC and public legacy config profile interfaces, the firewall is applied through the `linode` device.

- Firewalls only apply to inbound TCP traffic to NodeBalancers.

- A firewall can be assigned to multiple services at a time.

- A service can have one assigned firewall at a time.

- Assigned Linodes must not have any ongoing live migrations.

- A `firewall_device_add` event is generated when the firewall device is added successfully.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.networking.firewall_devices ( -data__id, -data__type +id, +type, +firewallId ) SELECT {{ id }} /* required */, -'{{ type }}' /* required */ +'{{ type }}' /* required */, +'{{ firewallId }}' RETURNING id, created, @@ -257,22 +273,23 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: firewall_devices props: + - name: firewallId + value: "{{ firewallId }}" + description: Required parameter for the firewall_devices resource. - name: id - value: integer - description: > + value: {{ id }} + description: | The entity's ID. - - name: type - value: string - description: > + value: "{{ type }}" + description: | The entity's type. - - valid_values: ['linode', 'nodebalancer', 'interface'] -``` + valid_values: ['linode', 'nodebalancer', 'linode_interface'] +`} +
@@ -280,17 +297,19 @@ updated ## `DELETE` examples - + Removes a Firewall Device, which removes a Firewall from the service it was assigned to by the Device. This removes all of the Firewall's Rules from the service. If any other Firewalls have been assigned to the service, then those Rules remain in effect.

- Assigned Linodes must not have any ongoing live migrations.

- A `firewall_device_remove` Event is generated when the Firewall Device is removed successfully.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.networking.firewall_devices +WHERE firewallId = '{{ firewallId }}' --required +AND deviceId = '{{ deviceId }}' --required ; ```
diff --git a/website/docs/services/networking/firewall_rule_versions/index.md b/website/docs/services/networking/firewall_rule_versions/index.md index 9878504..1889d66 100644 --- a/website/docs/services/networking/firewall_rule_versions/index.md +++ b/website/docs/services/networking/firewall_rule_versions/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a firewall_rule_versions r ## Overview - +
Namefirewall_rule_versions
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a firewall_rule_versions r The following fields are returned by `SELECT` queries: - + Returns a rule version. @@ -59,12 +60,17 @@ Returns a rule version. string (date-time) - __Filterable__, __Read-only__ When this Firewall was created. (example: 2018-01-01T00:01:01) + __Filterable__, __Read-only__ When this Firewall was created. (example: 2025-01-01T00:01:01) + + + + array + __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. string - __Filterable__ The Firewall's label, for display purposes only. Firewall labels have the following constraints: - Must begin and end with an alphanumeric character. - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - Must be between 3 and 32 characters. - Must be unique. (example: firewall123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) + __Filterable__ The Firewall's label, for display purposes only. Firewall labels have the following constraints: - Must begin and end with an alphanumeric character. - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - Must be between 3 and 32 characters. - Must be unique. (example: firewall123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) @@ -74,7 +80,7 @@ Returns a rule version. string - __Read-only__ The status of this Firewall. - When a Firewall is first created its status is `enabled`. - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`. - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall. (example: enabled) + __Read-only__ The status of this Firewall. - When a Firewall is first created its status is `enabled`. - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`. - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall. (enabled, disabled, deleted) (example: enabled) @@ -84,12 +90,12 @@ Returns a rule version. string (date-time) - __Filterable__, __Read-only__ When this Firewall was last updated. (example: 2018-01-02T00:01:01) + __Filterable__, __Read-only__ When this Firewall was last updated. (example: 2025-01-02T00:01:01) - + Returns information for all rule versions for this firewall. @@ -110,12 +116,17 @@ Returns information for all rule versions for this firewall. string (date-time) - __Filterable__, __Read-only__ When this Firewall was created. (example: 2018-01-01T00:01:01) + __Filterable__, __Read-only__ When this Firewall was created. (example: 2025-01-01T00:01:01) + + + + array + __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. string - __Filterable__ The Firewall's label, for display purposes only. Firewall labels have the following constraints: - Must begin and end with an alphanumeric character. - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - Must be between 3 and 32 characters. - Must be unique. (example: firewall123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) + __Filterable__ The Firewall's label, for display purposes only. Firewall labels have the following constraints: - Must begin and end with an alphanumeric character. - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - Must be between 3 and 32 characters. - Must be unique. (example: firewall123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) @@ -125,7 +136,7 @@ Returns information for all rule versions for this firewall. string - __Read-only__ The status of this Firewall. - When a Firewall is first created its status is `enabled`. - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`. - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall. (example: enabled) + __Read-only__ The status of this Firewall. - When a Firewall is first created its status is `enabled`. - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`. - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall. (enabled, disabled, deleted) (example: enabled) @@ -135,7 +146,7 @@ Returns information for all rule versions for this firewall. string (date-time) - __Filterable__, __Read-only__ When this Firewall was last updated. (example: 2018-01-02T00:01:01) + __Filterable__, __Read-only__ When this Firewall was last updated. (example: 2025-01-02T00:01:01) @@ -158,16 +169,16 @@ The following methods are available for this resource: - + - + firewallId, version Get a specific firewall rule version for an `enabled` or `disabled` firewall.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + firewallId Lists the current and historical rules of the firewall (that is not deleted), using `version`. Whenever rules update, the `version` increments from `1`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -187,19 +198,29 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Firewall to access. + + + + string + The firewall rule version to view. + ## `SELECT` examples - + Get a specific firewall rule version for an `enabled` or `disabled` firewall.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -207,16 +228,19 @@ Get a specific firewall rule version for an `enabled` or `disabled` firewall.
- + Lists the current and historical rules of the firewall (that is not deleted), using `version`. Whenever rules update, the `version` increments from `1`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -224,12 +248,14 @@ Lists the current and historical rules of the firewall (that is not deleted), us SELECT id, created, +entities, label, rules, status, tags, updated FROM linode.networking.firewall_rule_versions +WHERE firewallId = '{{ firewallId }}' -- required ; ```
diff --git a/website/docs/services/networking/firewall_rules/index.md b/website/docs/services/networking/firewall_rules/index.md index 42ef23b..53b4e06 100644 --- a/website/docs/services/networking/firewall_rules/index.md +++ b/website/docs/services/networking/firewall_rules/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a firewall_rules resource. ## Overview - +
Namefirewall_rules
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a firewall_rules resource. The following fields are returned by `SELECT` queries: - + The requested Firewall Rules. @@ -63,7 +64,7 @@ The requested Firewall Rules. string - The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. (example: DROP) + The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. (ACCEPT, DROP) (example: DROP) @@ -73,7 +74,7 @@ The requested Firewall Rules. string - The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. (example: DROP) + The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. (ACCEPT, DROP) (example: ACCEPT) @@ -101,16 +102,16 @@ The following methods are available for this resource: - + - + firewallId Returns the inbound and outbound Rules for a Firewall.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + firewallId Updates the inbound and outbound Rules for a Firewall.

- Assigned Linodes must not have any ongoing live migrations.

- __Note__. This operation replaces all of a Firewall's `inbound` and `outbound` rulesets with the values specified in your request.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -130,18 +131,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Firewall to access. + ## `SELECT` examples - + Returns the inbound and outbound Rules for a Firewall.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -154,6 +160,7 @@ outbound, outbound_policy, version FROM linode.networking.firewall_rules +WHERE firewallId = '{{ firewallId }}' -- required ; ```
@@ -163,22 +170,24 @@ FROM linode.networking.firewall_rules ## `REPLACE` examples - + Updates the inbound and outbound Rules for a Firewall.

- Assigned Linodes must not have any ongoing live migrations.

- __Note__. This operation replaces all of a Firewall's `inbound` and `outbound` rulesets with the values specified in your request.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.networking.firewall_rules SET -data__inbound = '{{ inbound }}', -data__inbound_policy = '{{ inbound_policy }}', -data__outbound = '{{ outbound }}', -data__outbound_policy = '{{ outbound_policy }}' +inbound = '{{ inbound }}', +outbound = '{{ outbound }}', +inbound_policy = '{{ inbound_policy }}', +outbound_policy = '{{ outbound_policy }}' +WHERE +firewallId = '{{ firewallId }}' --required RETURNING fingerprint, inbound, diff --git a/website/docs/services/networking/firewall_settings/index.md b/website/docs/services/networking/firewall_settings/index.md index 3a3d6e5..b46baa1 100644 --- a/website/docs/services/networking/firewall_settings/index.md +++ b/website/docs/services/networking/firewall_settings/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a firewall_settings resour ## Overview - +
Namefirewall_settings
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a firewall_settings resour The following fields are returned by `SELECT` queries: - + Returns default firewalls. @@ -91,14 +92,14 @@ The following methods are available for this resource: - + page, page_size __Beta__ Returns default firewalls for Linodes, Linode VPC and public interfaces, and NodeBalancers.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + @@ -136,12 +137,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + __Beta__ Returns default firewalls for Linodes, Linode VPC and public interfaces, and NodeBalancers.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -163,19 +164,19 @@ AND page_size = '{{ page_size }}' ## `REPLACE` examples - + __Beta__ You can update or add a default firewall to:

- Linodes using legacy config profile interfaces

- Linode VPC interfaces and Linode public interfaces

- NodeBalancers

If a firewall isn't provided during service creation, a default firewall is assigned, unless you have opted out of firewall protection.

> 📘
>
> Default firewalls on Linodes with Linode interfaces are applied to the interfaces, not the Linode itself.
>
> Default firewalls on Linodes with legacy configuration profile interfaces are applied directly to the Linode, not its interfaces.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.networking.firewall_settings SET -data__default_firewall_ids = '{{ default_firewall_ids }}' +default_firewall_ids = '{{ default_firewall_ids }}' RETURNING default_firewall_ids; ``` diff --git a/website/docs/services/networking/firewalls/index.md b/website/docs/services/networking/firewalls/index.md index d053286..edb2884 100644 --- a/website/docs/services/networking/firewalls/index.md +++ b/website/docs/services/networking/firewalls/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a firewalls resource. ## Overview - +
Namefirewalls
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a firewalls resource. The following fields are returned by `SELECT` queries: - + Returns information about this Firewall. @@ -59,12 +60,17 @@ Returns information about this Firewall. string (date-time) - __Filterable__, __Read-only__ When this Firewall was created. (example: 2018-01-01T00:01:01) + __Filterable__, __Read-only__ When this Firewall was created. (example: 2025-01-01T00:01:01) + + + + array + __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. string - __Filterable__ The Firewall's label, for display purposes only. Firewall labels have the following constraints: - Must begin and end with an alphanumeric character. - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - Must be between 3 and 32 characters. - Must be unique. (example: firewall123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) + __Filterable__ The Firewall's label, for display purposes only. Firewall labels have the following constraints: - Must begin and end with an alphanumeric character. - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - Must be between 3 and 32 characters. - Must be unique. (example: firewall123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) @@ -74,7 +80,7 @@ Returns information about this Firewall. string - __Read-only__ The status of this Firewall. - When a Firewall is first created its status is `enabled`. - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`. - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall. (example: enabled) + __Read-only__ The status of this Firewall. - When a Firewall is first created its status is `enabled`. - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`. - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall. (enabled, disabled, deleted) (example: enabled) @@ -84,12 +90,12 @@ Returns information about this Firewall. string (date-time) - __Filterable__, __Read-only__ When this Firewall was last updated. (example: 2018-01-02T00:01:01) + __Filterable__, __Read-only__ When this Firewall was last updated. (example: 2025-01-02T00:01:01) - + Returns an array of Firewalls. @@ -103,24 +109,44 @@ Returns an array of Firewalls. - + + integer + __Filterable__, __Read-only__ The Firewall's unique ID. + + + + string (date-time) + __Filterable__, __Read-only__ When this Firewall was created. (example: 2025-01-01T00:01:01) + + + array - + __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__ The Firewall's label, for display purposes only. Firewall labels have the following constraints: - Must begin and end with an alphanumeric character. - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - Must be between 3 and 32 characters. - Must be unique. (example: firewall123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted. - - integer - __Read-only__ The total number of results. + + string + __Read-only__ The status of this Firewall. - When a Firewall is first created its status is `enabled`. - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`. - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall. (enabled, disabled, deleted) (example: enabled) + + + + array + __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. + + + + string (date-time) + __Filterable__, __Read-only__ When this Firewall was last updated. (example: 2025-01-02T00:01:01) @@ -143,37 +169,37 @@ The following methods are available for this resource: - + - + firewallId Get a specific Firewall resource by its ID. The Firewall's Devices will not be returned in the response. Instead, run the [List firewall devices](https://techdocs.akamai.com/linode-api/reference/get-firewall-devices) operation to review them.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Returns a paginated list of accessible Firewalls.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__label, data__rules + label, rules Creates a Firewall to filter network traffic.

- Use `rules` to create inbound and outbound access rules. Rule versions increment from `1` whenever the firewall's `rules` change.

- Use `devices` to assign a firewall to a service such as a Linode that is using legacy config profiles, a Linode interface or a NodeBalancer. The firewall’s rules are then applied to that service. Requires a `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to the device.

- For Linodes using Linode interfaces, firewalls need to be assigned to `interfaces` and not the `linodes`. Firewall templates are available for both VPC Linode interfaces and public Linode interfaces, and come with pre-configured protection rules.

- For Linodes using legacy configuration profiles, firewalls are applied through the Linode. Public and VPC interfaces are subject to the firewall rules, while VLAN interfaces are not.

- Currently, firewalls can be assigned to Linodes with legacy configuration profiles, Linode interfaces, and NodeBalancers.

- The same firewall can be assigned to multiple services at a time.

- Use `firewall_id` to assign a firewall when [creating a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) or when [adding a Linode interface](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).

- A service can have one assigned firewall enabled at a time.

- Assigned Linodes must not have any ongoing live migrations.

- A `firewall_create` event is generated when this operation succeeds.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + firewallId Updates information for a firewall.

- Assigned Linodes must not have any ongoing live migrations.

- If this operation changes a firewall's status, it generates a corresponding `firewall_enable` or `firewall_disable` event.

This operation doesn't affect some parts of a firewall's configuration:

- This operation doesn't set a firewall's devices. Instead, run the [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) and [Delete a firewall device](https://techdocs.akamai.com/linode-api/reference/delete-firewall-device) operations to assign and remove this firewall from services.

- A firewall's rules can't be changed with this operation. Instead, run the [Update firewall rules](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) operation to update your rules.

- Use this operation to set a firewall's status to `enabled` or `disabled`. But to set it to `deleted`, run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation.

- An assigned default firewall can't be disabled.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + firewallId Delete a firewall. This also removes all of the firewall's rules from any services the firewall was assigned to.

- Assigned Linodes must not have any ongoing live migrations.

- A `firewall_delete` event is generated when this operation returns successfully.

- An assigned default firewall can't be deleted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -193,6 +219,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the Firewall to access. + integer @@ -209,13 +240,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a specific Firewall resource by its ID. The Firewall's Devices will not be returned in the response. Instead, run the [List firewall devices](https://techdocs.akamai.com/linode-api/reference/get-firewall-devices) operation to review them.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -223,25 +254,31 @@ Get a specific Firewall resource by its ID. The Firewall's Devices will not be r SELECT id, created, +entities, label, rules, status, tags, updated FROM linode.networking.firewalls +WHERE firewallId = '{{ firewallId }}' -- required ; ```
- + Returns a paginated list of accessible Firewalls.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +created, +entities, +label, +rules, +status, +tags, +updated FROM linode.networking.firewalls WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -254,29 +291,32 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Creates a Firewall to filter network traffic.

- Use `rules` to create inbound and outbound access rules. Rule versions increment from `1` whenever the firewall's `rules` change.

- Use `devices` to assign a firewall to a service such as a Linode that is using legacy config profiles, a Linode interface or a NodeBalancer. The firewall’s rules are then applied to that service. Requires a `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to the device.

- For Linodes using Linode interfaces, firewalls need to be assigned to `interfaces` and not the `linodes`. Firewall templates are available for both VPC Linode interfaces and public Linode interfaces, and come with pre-configured protection rules.

- For Linodes using legacy configuration profiles, firewalls are applied through the Linode. Public and VPC interfaces are subject to the firewall rules, while VLAN interfaces are not.

- Currently, firewalls can be assigned to Linodes with legacy configuration profiles, Linode interfaces, and NodeBalancers.

- The same firewall can be assigned to multiple services at a time.

- Use `firewall_id` to assign a firewall when [creating a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) or when [adding a Linode interface](https://techdocs.akamai.com/linode-api/reference/post-linode-interface).

- A service can have one assigned firewall enabled at a time.

- Assigned Linodes must not have any ongoing live migrations.

- A `firewall_create` event is generated when this operation succeeds.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.networking.firewalls ( -data__label, -data__rules, -data__tags +devices, +rules, +label, +tags ) SELECT -'{{ label }}' /* required */, +'{{ devices }}', '{{ rules }}' /* required */, +'{{ label }}' /* required */, '{{ tags }}' RETURNING id, created, +entities, label, rules, status, @@ -287,38 +327,41 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: firewalls props: + - name: devices + description: | + Devices to create for this firewall. When a device is created, the firewall is assigned to its associated service. Currently, devices can be created for Linodes using legacy configuration profiles, Linode interfaces, and NodeBalancers. Firewall devices can't be created for individual legacy configuration profile interfaces. + Additional devices can be assigned after Firewall creation by using the [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) operation. + value: + linode_interfaces: + - {{ linode_interfaces }} + linodes: + - {{ linodes }} + nodebalancers: + - {{ nodebalancers }} + - name: rules + value: + inbound: "{{ inbound }}" + outbound: "{{ outbound }}" - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ The Firewall's label, for display purposes only. - -Firewall labels have the following constraints: - - - Must begin and end with an alphanumeric character. - - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - - Must be between 3 and 32 characters. - - Must be unique. - - - name: rules - value: object - description: > - The inbound and outbound access rules to apply to the Firewall. - -A Firewall may have up to 25 rules across its inbound and outbound rulesets. - -Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted. - + Firewall labels have the following constraints: + - Must begin and end with an alphanumeric character. + - May only consist of alphanumeric characters, hyphens (\`-\`), underscores (\`_\`) or periods (\`.\`). + - Cannot have two hyphens (\`--\`), underscores (\`__\`) or periods (\`..\`) in a row. + - Must be between 3 and 32 characters. + - Must be unique. - name: tags - value: array - description: > + value: + - "{{ tags }}" + description: | __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. - -``` +`} +
@@ -326,24 +369,27 @@ Multiple rules are applied in order. If two rules conflict, the first rule takes ## `REPLACE` examples - + Updates information for a firewall.

- Assigned Linodes must not have any ongoing live migrations.

- If this operation changes a firewall's status, it generates a corresponding `firewall_enable` or `firewall_disable` event.

This operation doesn't affect some parts of a firewall's configuration:

- This operation doesn't set a firewall's devices. Instead, run the [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) and [Delete a firewall device](https://techdocs.akamai.com/linode-api/reference/delete-firewall-device) operations to assign and remove this firewall from services.

- A firewall's rules can't be changed with this operation. Instead, run the [Update firewall rules](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) operation to update your rules.

- Use this operation to set a firewall's status to `enabled` or `disabled`. But to set it to `deleted`, run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation.

- An assigned default firewall can't be disabled.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.networking.firewalls SET -data__label = '{{ label }}', -data__status = '{{ status }}', -data__tags = '{{ tags }}' +label = '{{ label }}', +status = '{{ status }}', +tags = '{{ tags }}' +WHERE +firewallId = '{{ firewallId }}' --required RETURNING id, created, +entities, label, rules, status, @@ -357,17 +403,18 @@ updated; ## `DELETE` examples - + Delete a firewall. This also removes all of the firewall's rules from any services the firewall was assigned to.

- Assigned Linodes must not have any ongoing live migrations.

- A `firewall_delete` event is generated when this operation returns successfully.

- An assigned default firewall can't be deleted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.networking.firewalls +WHERE firewallId = '{{ firewallId }}' --required ; ```
diff --git a/website/docs/services/networking/ip_addresses/index.md b/website/docs/services/networking/ip_addresses/index.md index 90f22e8..5fca1f3 100644 --- a/website/docs/services/networking/ip_addresses/index.md +++ b/website/docs/services/networking/ip_addresses/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an ip_addresses resource. ## Overview - +
Nameip_addresses
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an ip_addresses resource. The following fields are returned by `SELECT` queries: - + The requested IP Address. @@ -99,7 +100,7 @@ The requested IP Address. string - __Read-only__ The type of address this is. (example: ipv4) + __Read-only__ The type of address this is. (ipv4, ipv6, ipv6/pool, ipv6/range) (example: ipv4) @@ -109,7 +110,7 @@ The requested IP Address. - + A paginated list of IP Addresses. @@ -170,7 +171,7 @@ A paginated list of IP Addresses. string - __Filterable__, __Read-only__ The type of address this is. (example: ipv4) + __Filterable__, __Read-only__ The type of address this is. (ipv4, ipv6, ipv6/pool, ipv6/range) (example: ipv4) @@ -198,42 +199,42 @@ The following methods are available for this resource: - + - + address Returns information about a single IP Address on your Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + skip_ipv6_rdns Returns a paginated list of IP addresses on your account for Linodes or Linode interfaces, excluding private addresses.

> 👍
>
> if your application frequently accesses this operation and doesn't require IPv6 RDNS data, you can use the `skip_ipv6_rdns` query string to improve performance.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__rdns + address, rdns Sets RDNS on an IP Address. Forward DNS must already be set up for reverse DNS to be applied. If you set the RDNS to `null` for public IPv4 addresses, it will be reset to the default _ip.linodeusercontent.com_ RDNS value.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + type, public, linode_id Allocates a new IPv4 Address on your Account. The Linode must be configured to support additional addresses - please [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) requesting additional addresses before attempting allocation.

> 📘
>
> You can run this operation for Linodes with legacy configuration interfaces. You can't use it for Linodes with Linode interfaces. To allocate an IP for a Linode with Linode interfaces, use the [Add a Linode interface](https://techdocs.akamai.com/linode-api/reference/post-linode-interface) operation and set the public IPv4 address to `auto`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + region, assignments Assign any set of IPv4 addresses and IPv6 ranges to Linodes in one region. This allows swapping, shuffling, or otherwise reorganizing IPs among your Linodes.

The following restrictions apply:

- All Linodes need to have at least one public IPv4 address assigned.
- For Linode interfaces, the Linode needs to have a public interface, and the address it receives can't be a private IPv4 address.
- Linodes may have no more than one assigned private IPv4 address.
- Linodes may have no more than one assigned IPv6 range.
- Shared IP addresses cannot be swapped between Linodes.

[Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) to request additional IPv4 addresses or IPv6 ranges beyond standard account limits.

> 📘
>
> Removing an IP address that has been set as a Managed Linode's `ssh.ip` causes the Managed Linode's SSH access settings to reset to their default values.

To view and configure Managed Linode SSH settings, use the following operations:

- [Get a Linode's managed settings](https://techdocs.akamai.com/linode-api/reference/get-managed-linode-setting)
- [Update a Linode's managed settings](https://techdocs.akamai.com/linode-api/reference/put-managed-linode-setting)

> 📘
>
> Addresses with an active 1:1 NAT to a VPC Interface address cannot be assigned to other Linodes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + linode_id, ips @@ -255,6 +256,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string (ip) + The address to operate on. (example: {{address}}) + boolean @@ -266,13 +272,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns information about a single IP Address on your Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -290,10 +296,11 @@ subnet_mask, type, vpc_nat_1_1 FROM linode.networking.ip_addresses +WHERE address = '{{ address }}' -- required ; ```
- + Returns a paginated list of IP addresses on your account for Linodes or Linode interfaces, excluding private addresses.

> 👍
>
> if your application frequently accesses this operation and doesn't require IPv6 RDNS data, you can use the `skip_ipv6_rdns` query string to improve performance.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -321,21 +328,22 @@ WHERE skip_ipv6_rdns = '{{ skip_ipv6_rdns }}' ## `REPLACE` examples - + Sets RDNS on an IP Address. Forward DNS must already be set up for reverse DNS to be applied. If you set the RDNS to `null` for public IPv4 addresses, it will be reset to the default _ip.linodeusercontent.com_ RDNS value.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.networking.ip_addresses SET -data__rdns = '{{ rdns }}' +rdns = '{{ rdns }}' WHERE -data__rdns = '{{ rdns }}' --required +address = '{{ address }}' --required +AND rdns = '{{ rdns }}' --required RETURNING interface_id, linode_id, @@ -356,19 +364,19 @@ vpc_nat_1_1; ## Lifecycle Methods - + Allocates a new IPv4 Address on your Account. The Linode must be configured to support additional addresses - please [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) requesting additional addresses before attempting allocation.

> 📘
>
> You can run this operation for Linodes with legacy configuration interfaces. You can't use it for Linodes with Linode interfaces. To allocate an IP for a Linode with Linode interfaces, use the [Add a Linode interface](https://techdocs.akamai.com/linode-api/reference/post-linode-interface) operation and set the public IPv4 address to `auto`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.networking.ip_addresses.post_allocate_ip +EXEC linode.networking.ip_addresses.allocate @@json= '{ "linode_id": {{ linode_id }}, @@ -378,12 +386,12 @@ EXEC linode.networking.ip_addresses.post_allocate_ip ; ```
- + Assign any set of IPv4 addresses and IPv6 ranges to Linodes in one region. This allows swapping, shuffling, or otherwise reorganizing IPs among your Linodes.

The following restrictions apply:

- All Linodes need to have at least one public IPv4 address assigned.
- For Linode interfaces, the Linode needs to have a public interface, and the address it receives can't be a private IPv4 address.
- Linodes may have no more than one assigned private IPv4 address.
- Linodes may have no more than one assigned IPv6 range.
- Shared IP addresses cannot be swapped between Linodes.

[Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) to request additional IPv4 addresses or IPv6 ranges beyond standard account limits.

> 📘
>
> Removing an IP address that has been set as a Managed Linode's `ssh.ip` causes the Managed Linode's SSH access settings to reset to their default values.

To view and configure Managed Linode SSH settings, use the following operations:

- [Get a Linode's managed settings](https://techdocs.akamai.com/linode-api/reference/get-managed-linode-setting)
- [Update a Linode's managed settings](https://techdocs.akamai.com/linode-api/reference/put-managed-linode-setting)

> 📘
>
> Addresses with an active 1:1 NAT to a VPC Interface address cannot be assigned to other Linodes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.networking.ip_addresses.post_assign_ips +EXEC linode.networking.ip_addresses.assign @@json= '{ "assignments": "{{ assignments }}", @@ -392,12 +400,12 @@ EXEC linode.networking.ip_addresses.post_assign_ips ; ```
- + Configure shared IPs.

IP sharing allows IP address reassignment (also referred to as IP failover) from one Linode to another if the primary Linode becomes unresponsive. This means that requests to the primary Linode's IP address can be automatically rerouted to secondary Linodes at the configured shared IP addresses.

IP failover requires configuration of a [BGP based failover service](https://techdocs.akamai.com/cloud-computing/docs/configure-failover-on-a-compute-instance) within the internal system of the primary Linode.

> 📘
>
> A public IPv4 address can't be shared if it's configured for a 1:1 NAT on a legacy configuration profile VPC interface or on a Linode VPC interface.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.networking.ip_addresses.post_share_ips +EXEC linode.networking.ip_addresses.share @@json= '{ "ips": "{{ ips }}", diff --git a/website/docs/services/networking/ipv4_addresses/index.md b/website/docs/services/networking/ipv4_addresses/index.md index 70f3192..a9eb36f 100644 --- a/website/docs/services/networking/ipv4_addresses/index.md +++ b/website/docs/services/networking/ipv4_addresses/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an ipv4_addresses resource ## Overview - +
Nameipv4_addresses
Name
TypeResource
Id
@@ -50,16 +51,16 @@ The following methods are available for this resource: - + - data__region, data__assignments + region, assignments This operation is equivalent to [Assign IP addresses](https://techdocs.akamai.com/linode-api/reference/post-assign-ips).

Assign multiple IPv4 addresses and/or IPv6 ranges to multiple Linodes in one Region. This allows swapping, shuffling, or otherwise reorganizing IPs to your Linodes.

The following restrictions apply:

- All Linodes involved must have at least one public IPv4 address after assignment.
- For Linode interfaces, the Linode needs to have a public interface, and the address it receives can't be a private IPv4 address.
- Linodes may have no more than one assigned private IPv4 address.
- Linodes may have no more than one assigned IPv6 range.

[Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) to request additional IPv4 addresses or IPv6 ranges beyond standard account limits.

> 📘
>
> Removing an IP address that has been set as a Managed Linode's `ssh.ip` causes the Managed Linode's SSH access settings to reset to their default values.

To view and configure Managed Linode SSH settings, use the following operations:
- [Get a Linode's managed settings](https://techdocs.akamai.com/linode-api/reference/get-managed-linode-setting)
- [Update a Linode's managed settings](https://techdocs.akamai.com/linode-api/reference/put-managed-linode-setting) __OAuth scopes__.

```
ips:read_write
linodes:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__linode_id, data__ips + linode_id, ips This operation is equivalent to [Share IP addresses](https://techdocs.akamai.com/linode-api/reference/post-share-ips).

Configure shared IPs.

IP sharing allows IP address reassignment (also referred to as IP failover) from one Linode to another if the primary Linode becomes unresponsive. This means that requests to the primary Linode's IP address can be automatically rerouted to secondary Linodes at the configured shared IP addresses.

IP failover requires configuration of a [BGP based failover service](https://techdocs.akamai.com/cloud-computing/docs/configure-failover-on-a-compute-instance) within the internal system of the primary Linode.

> 📘
>
> A public IPv4 address can't be shared if it's configured for a 1:1 NAT on a legacy configuration profile VPC interface or on a Linode VPC interface. __OAuth scopes__.

```
ips:read_write
linodes:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -85,74 +86,76 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `INSERT` examples - + This operation is equivalent to [Assign IP addresses](https://techdocs.akamai.com/linode-api/reference/post-assign-ips).

Assign multiple IPv4 addresses and/or IPv6 ranges to multiple Linodes in one Region. This allows swapping, shuffling, or otherwise reorganizing IPs to your Linodes.

The following restrictions apply:

- All Linodes involved must have at least one public IPv4 address after assignment.
- For Linode interfaces, the Linode needs to have a public interface, and the address it receives can't be a private IPv4 address.
- Linodes may have no more than one assigned private IPv4 address.
- Linodes may have no more than one assigned IPv6 range.

[Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) to request additional IPv4 addresses or IPv6 ranges beyond standard account limits.

> 📘
>
> Removing an IP address that has been set as a Managed Linode's `ssh.ip` causes the Managed Linode's SSH access settings to reset to their default values.

To view and configure Managed Linode SSH settings, use the following operations:
- [Get a Linode's managed settings](https://techdocs.akamai.com/linode-api/reference/get-managed-linode-setting)
- [Update a Linode's managed settings](https://techdocs.akamai.com/linode-api/reference/put-managed-linode-setting) __OAuth scopes__.

```
ips:read_write
linodes:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.networking.ipv4_addresses ( -data__assignments, -data__region +assignments, +region ) SELECT '{{ assignments }}' /* required */, '{{ region }}' /* required */ +RETURNING +message ; ```
- + This operation is equivalent to [Share IP addresses](https://techdocs.akamai.com/linode-api/reference/post-share-ips).

Configure shared IPs.

IP sharing allows IP address reassignment (also referred to as IP failover) from one Linode to another if the primary Linode becomes unresponsive. This means that requests to the primary Linode's IP address can be automatically rerouted to secondary Linodes at the configured shared IP addresses.

IP failover requires configuration of a [BGP based failover service](https://techdocs.akamai.com/cloud-computing/docs/configure-failover-on-a-compute-instance) within the internal system of the primary Linode.

> 📘
>
> A public IPv4 address can't be shared if it's configured for a 1:1 NAT on a legacy configuration profile VPC interface or on a Linode VPC interface. __OAuth scopes__.

```
ips:read_write
linodes:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.networking.ipv4_addresses ( -data__ips, -data__linode_id +ips, +linode_id ) SELECT '{{ ips }}' /* required */, {{ linode_id }} /* required */ +RETURNING +message ; ```
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: ipv4_addresses props: - name: assignments - value: array - description: > + description: | The list of assignments to make. You must have read_write access to all IPs being assigned and all Linodes being assigned to in order for the assignments to succeed. - + value: + - address: "{{ address }}" + linode_id: {{ linode_id }} - name: region - value: string - description: > + value: "{{ region }}" + description: | The ID of the Region in which these assignments are to take place. All IPs and Linodes must exist in this Region. - - name: ips - value: array - description: > + value: + - "{{ ips }}" + description: | A list of secondary Linode IPs to share with the primary Linode. - -- Can include both IPv4 addresses and IPv6 ranges (omit /56 and /64 prefix lengths) -- Can include both private and public IPv4 addresses. -- You must have access to all of these addresses and they must be in the same Region as the primary Linode. -- Enter an empty array to remove all shared IP addresses. - + - Can include both IPv4 addresses and IPv6 ranges (omit /56 and /64 prefix lengths) + - Can include both private and public IPv4 addresses. + - You must have access to all of these addresses and they must be in the same Region as the primary Linode. + - Enter an empty array to remove all shared IP addresses. - name: linode_id - value: integer - description: > + value: {{ linode_id }} + description: | The ID of the primary Linode that the addresses will be shared with. - -``` +`} +
diff --git a/website/docs/services/networking/ipv6_pools/index.md b/website/docs/services/networking/ipv6_pools/index.md index 7bcb801..d47c278 100644 --- a/website/docs/services/networking/ipv6_pools/index.md +++ b/website/docs/services/networking/ipv6_pools/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an ipv6_pools resource. ## Overview - +
Nameipv6_pools
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an ipv6_pools resource. The following fields are returned by `SELECT` queries: - + The IPv6 pools on your Account. @@ -51,24 +52,24 @@ The IPv6 pools on your Account. - - array - + + integer + The prefix length of the address. The total number of addresses that can be assigned from this range is calculated as 2<sup>(128 - prefix length)</sup>. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Read-only__ The IPv6 range of addresses in this pool. (example: 2600:3c01::2:5000:0) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__, __Read-only__ The region for this pool of IPv6 addresses. (example: us-east) - - integer - __Read-only__ The total number of results. + + string + The last address in this block of IPv6 addresses. (example: 2600:3c01::2:5000:f) @@ -91,7 +92,7 @@ The following methods are available for this resource: - + page, page_size @@ -129,21 +130,21 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Displays the IPv6 pools on your Account. A pool of IPv6 addresses are routed to all of your Linodes in a single [region](https://techdocs.akamai.com/linode-api/reference/get-regions). Any Linode on your Account may bring up any address in this pool at any time, with no external configuration required.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +prefix, +range, +region, +route_target FROM linode.networking.ipv6_pools WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' diff --git a/website/docs/services/networking/ipv6_ranges/index.md b/website/docs/services/networking/ipv6_ranges/index.md index 6066333..88b526f 100644 --- a/website/docs/services/networking/ipv6_ranges/index.md +++ b/website/docs/services/networking/ipv6_ranges/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an ipv6_ranges resource. ## Overview - +
Nameipv6_ranges
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an ipv6_ranges resource. The following fields are returned by `SELECT` queries: - + Returns IPv6 range information. @@ -79,7 +80,7 @@ Returns IPv6 range information. - + The IPv6 ranges on your Account. @@ -93,24 +94,24 @@ The IPv6 ranges on your Account. - - array - + + integer + The prefix length of the address. The total number of addresses that can be assigned from this range is calculated as 2<sup>(128 - prefix length)</sup>. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Read-only__ The IPv6 address of this range. (example: 2600:3c01::) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Read-only__ The region for this range of IPv6 addresses. (example: us-east) - - integer - __Read-only__ The total number of results. + + string + The IPv6 SLAAC address. (example: 2600:3c01::ffff:ffff:ffff:ffff) @@ -133,30 +134,30 @@ The following methods are available for this resource: - + - + range View IPv6 range information.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Displays the IPv6 ranges on your Account.

- An IPv6 range is a `/64` or `/56` block of IPv6 addresses routed to a single Linode in a given [region](https://techdocs.akamai.com/linode-api/reference/get-regions).

- Your Linode is responsible for routing individual addresses in the range, or handling traffic for all the addresses in the range.

- Run the [Create an IPv6 range](https://techdocs.akamai.com/linode-api/reference/post-ipv6-range) operation to add a `/64` or `/56` block of IPv6 addresses to your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__prefix_length + prefix_length Creates an IPv6 Range and assigns it based on the provided Linode or route target IPv6 SLAAC address. See the `ipv6` property when running the [Get a Linode](https://techdocs.akamai.com/linode-api/reference/get-linode-instance) operation to view a Linode's IPv6 SLAAC address.

- Either `linode_id` or `route_target` is required in a request.
- `linode_id` and `route_target` are mutually exclusive. Submitting values for both properties in a request results in an error.
- Upon a successful request, an IPv6 range is created in the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) that corresponds to the provided `linode_id` or `route_target`.
- Your Linode is responsible for routing individual addresses in the range, or handling traffic for all the addresses in the range.
- Run the [Assign IP addresses](https://techdocs.akamai.com/linode-api/reference/post-assign-ips) operation to re-assign IPv6 Ranges to your Linodes.

> 📘
>
> - A Linode can only have one IPv6 range targeting its SLAAC address.
> - An account can only have one IPv6 range in each [region](https://techdocs.akamai.com/linode-api/reference/get-regions).
> - [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) to request expansion of these restrictions.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + range Removes this IPv6 range from your account and disconnects the range from any assigned Linodes.

> 📘
>
> You can't delete shared IPv6 ranges. Contact Customer Support for assistance.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -176,6 +177,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string (ipv6) + The IPv6 range to access. Corresponds to the `range` property of objects returned from the [List IPv6 ranges](https://techdocs.akamai.com/linode-api/reference/get-ipv6-ranges) operation. > 📘 > > You need to omit the prefix length of the IPv6 range. (example: {{range}}) + integer @@ -192,13 +198,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + View IPv6 range information.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -210,19 +216,20 @@ prefix, range, region FROM linode.networking.ipv6_ranges +WHERE range = '{{ range }}' -- required ; ```
- + Displays the IPv6 ranges on your Account.

- An IPv6 range is a `/64` or `/56` block of IPv6 addresses routed to a single Linode in a given [region](https://techdocs.akamai.com/linode-api/reference/get-regions).

- Your Linode is responsible for routing individual addresses in the range, or handling traffic for all the addresses in the range.

- Run the [Create an IPv6 range](https://techdocs.akamai.com/linode-api/reference/post-ipv6-range) operation to add a `/64` or `/56` block of IPv6 addresses to your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +prefix, +range, +region, +route_target FROM linode.networking.ipv6_ranges WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -235,21 +242,21 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Creates an IPv6 Range and assigns it based on the provided Linode or route target IPv6 SLAAC address. See the `ipv6` property when running the [Get a Linode](https://techdocs.akamai.com/linode-api/reference/get-linode-instance) operation to view a Linode's IPv6 SLAAC address.

- Either `linode_id` or `route_target` is required in a request.
- `linode_id` and `route_target` are mutually exclusive. Submitting values for both properties in a request results in an error.
- Upon a successful request, an IPv6 range is created in the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) that corresponds to the provided `linode_id` or `route_target`.
- Your Linode is responsible for routing individual addresses in the range, or handling traffic for all the addresses in the range.
- Run the [Assign IP addresses](https://techdocs.akamai.com/linode-api/reference/post-assign-ips) operation to re-assign IPv6 Ranges to your Linodes.

> 📘
>
> - A Linode can only have one IPv6 range targeting its SLAAC address.
> - An account can only have one IPv6 range in each [region](https://techdocs.akamai.com/linode-api/reference/get-regions).
> - [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) to request expansion of these restrictions.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.networking.ipv6_ranges ( -data__linode_id, -data__prefix_length, -data__route_target +linode_id, +prefix_length, +route_target ) SELECT {{ linode_id }}, @@ -263,39 +270,31 @@ route_target
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: ipv6_ranges props: - name: linode_id - value: integer - description: > - The ID of the Linode to assign this range to. The SLAAC address for the provided Linode is used as the range's `route_target`. - -- __Required__ if `route_target` is omitted from the request. - -- Mutually exclusive with `route_target`. Submitting values for both properties in a request results in an error. - + value: {{ linode_id }} + description: | + The ID of the Linode to assign this range to. The SLAAC address for the provided Linode is used as the range's \`route_target\`. + - __Required__ if \`route_target\` is omitted from the request. + - Mutually exclusive with \`route_target\`. Submitting values for both properties in a request results in an error. - name: prefix_length - value: integer - description: > + value: {{ prefix_length }} + description: | The prefix length of the IPv6 range. - valid_values: ['56', '64'] - name: route_target - value: string - description: > + value: "{{ route_target }}" + description: | The IPv6 SLAAC address to assign this range to. + - __Required__ if \`linode_id\` is omitted from the request. + - Mutually exclusive with \`linode_id\`. Submitting values for both properties in a request results in an error. + > 📘 + > + > You need to omit the \`/128\` prefix length of the SLAAC address when using this property. +`} -- __Required__ if `linode_id` is omitted from the request. - -- Mutually exclusive with `linode_id`. Submitting values for both properties in a request results in an error. - -> 📘 -> -> You need to omit the `/128` prefix length of the SLAAC address when using this property. - -```
@@ -303,17 +302,18 @@ route_target ## `DELETE` examples - + Removes this IPv6 range from your account and disconnects the range from any assigned Linodes.

> 📘
>
> You can't delete shared IPv6 ranges. Contact Customer Support for assistance.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.networking.ipv6_ranges +WHERE range = '{{ range }}' --required ; ```
diff --git a/website/docs/services/networking/network_transfer_prices/index.md b/website/docs/services/networking/network_transfer_prices/index.md index 9c762e2..58d28d0 100644 --- a/website/docs/services/networking/network_transfer_prices/index.md +++ b/website/docs/services/networking/network_transfer_prices/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a network_transfer_prices ## Overview - +
Namenetwork_transfer_prices
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a network_transfer_prices The following fields are returned by `SELECT` queries: - + A collection of network transfer prices. @@ -51,24 +52,29 @@ A collection of network transfer prices. - - array - + + string + __Read-only__ The ID representing the network transfer price. (example: network_transfer) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__, __Read-only__ The network transfer price label is for display purposes only. (example: Network Transfer) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + __Read-only__ The default cost of this network transfer. Prices are in US dollars, broken down into hourly and monthly charges. Certain regions have different prices from the default. For region-specific prices, see `region_prices`. + + + + array + - + integer - __Read-only__ The total number of results. + __Filterable__, __Read-only__ The monthly outbound transfer amount, in MB. @@ -91,7 +97,7 @@ The following methods are available for this resource: - + @@ -119,21 +125,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns collection of network transfer prices, including any region-specific rates.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +label, +price, +region_prices, +transfer FROM linode.networking.network_transfer_prices ; ``` diff --git a/website/docs/services/networking/templates/index.md b/website/docs/services/networking/templates/index.md index c090b9c..4cfb6b0 100644 --- a/website/docs/services/networking/templates/index.md +++ b/website/docs/services/networking/templates/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a templates resource. ## Overview - +
Nametemplates
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a templates resource. The following fields are returned by `SELECT` queries: - + Returns a `vpc` or `public` firewall template for interface firewalls. @@ -59,12 +60,12 @@ Returns a `vpc` or `public` firewall template for interface firewalls. array - __Read-only__ The firewall template types available for VPC and public Linode interfaces. (example: vpc) + __Read-only__ The firewall template types available for VPC and public Linode interfaces. (vpc, public) (example: vpc) - + Returns a paginated list of firewall templates. @@ -78,24 +79,14 @@ Returns a paginated list of firewall templates. - - array - - - - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + The inbound and outbound access rules for the VPC firewall template. A firewall can have up to 25 rules across its inbound and outbound rule sets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic from the same address, the first rule applies, and inbound traffic from that address is accepted. - - integer - __Read-only__ The total number of results. + + array + __Read-only__ The firewall template types available for VPC and public Linode interfaces. (vpc, public) (example: vpc) @@ -118,14 +109,14 @@ The following methods are available for this resource: - + - + slug page, page_size __Beta__ Gets a `vpc` or `public` firewall template you can use with Linode VPC and public interfaces. Firewall templates come with some protection rules already configured.

The public interface's firewall template allows for login with SSH, and regular networking control data. You should further strengthen these rules by limiting the allowed IPv4 and IPv6 ranges.

The VPC interface's firewall template allows for login with SSH, regular networking control data, and inbound traffic from the VPC address space. You should further strengthen these rules by limiting the allowed IPv4 and IPv6 ranges.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size @@ -147,6 +138,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + __Enum__ The firewall template type, available for either `vpc` or `public` interfaces. (example: {{slug}}) + integer @@ -163,13 +159,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + __Beta__ Gets a `vpc` or `public` firewall template you can use with Linode VPC and public interfaces. Firewall templates come with some protection rules already configured.

The public interface's firewall template allows for login with SSH, and regular networking control data. You should further strengthen these rules by limiting the allowed IPv4 and IPv6 ranges.

The VPC interface's firewall template allows for login with SSH, regular networking control data, and inbound traffic from the VPC address space. You should further strengthen these rules by limiting the allowed IPv4 and IPv6 ranges.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -178,21 +174,20 @@ SELECT rules, slug FROM linode.networking.templates -WHERE page = '{{ page }}' +WHERE slug = '{{ slug }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ```
- + __Beta__ Returns a paginated list of a firewall templates. There are firewall templates specifically for VPC interfaces and public interfaces. Firewall templates come with some protection rules already configured.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +rules, +slug FROM linode.networking.templates WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' diff --git a/website/docs/services/networking/vlans/index.md b/website/docs/services/networking/vlans/index.md index 27e78f3..6883ca5 100644 --- a/website/docs/services/networking/vlans/index.md +++ b/website/docs/services/networking/vlans/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a vlans resource. ## Overview - +
Namevlans
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a vlans resource. The following fields are returned by `SELECT` queries: - + The VLANs available on this Account. @@ -51,24 +52,24 @@ The VLANs available on this Account. - - array - + + string (date-time) + __Read-only__ The date this VLAN was created. (example: 2020-01-01T00:01:01) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__, __Read-only__ The name of this VLAN. (example: vlan-example) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + array + __Read-only__ An array of Linode IDs attached to this VLAN. - - integer - __Read-only__ The total number of results. + + string + __Filterable__, __Read-only__ This VLAN's data center region. > 📘 > > Currently, a VLAN can only be assigned to a Linode within the same data center region. (example: ap-west) @@ -91,16 +92,16 @@ The following methods are available for this resource: - + page, page_size Returns a list of all Virtual Local Area Networks (VLANs) on your account. VLANs provide a mechanism for secure communication between two or more Linodes that are assigned to the same VLAN, and are both within the same Layer 2 broadcast domain.

For legacy configuration profile interfaces, you can use the following operations to create, attach, detach, and delete VLANs on a Linode:
- [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
- [Create a config profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config)
- [Update a config profile](https://techdocs.akamai.com/linode-api/reference/put-linode-config)
- [Update](https://techdocs.akamai.com/linode-api/reference/put-linode-config) the active Configuration Profile to remove the VLAN Interface, then [reboot](https://techdocs.akamai.com/linode-api/reference/post-reboot-linode-instance) the Linode.
- [Create a config profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config) without the VLAN Interface, then [reboot](https://techdocs.akamai.com/linode-api/reference/post-reboot-linode-instance) the Linode into the new Configuration Profile.
- [Delete](https://techdocs.akamai.com/linode-api/reference/delete-linode-instance) the Linode.

For Linode interfaces, you can use the following operations to create, attach, detach, and delete VLANs on a Linode:
- [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
- [Add a Linode interface](https://techdocs.akamai.com/linode-api/reference/post-linode-interface)
- [Update a Linode interface](put-linode-interface-settings)
- [Delete a Linode interface](https://techdocs.akamai.com/linode-api/reference/delete-linode-interface) from a Linode.

> 📘
>
> - Only Next Generation Network (NGN) data centers support VLANs. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the capabilities of data center regions. If a VLAN is attached to your Linode and you attempt to migrate or clone it to a non-NGN data center, the migration or cloning won't initiate. If a Linode cannot be migrated because of an incompatibility, you will be prompted to select a different data center or contact support.
>
> - See the [VLANs Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications) to view additional specifications and limitations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + label, regionId This operation deletes a legacy configuration profile VLAN interface. To delete a Linode interface VLAN, use the [Delete a Linode interface](https://techdocs.akamai.com/linode-api/reference/delete-linode-interface) operation.

You can't delete a VLAN if it's still attached to a Linode. There are a few ways to detach it:
- [Update](https://techdocs.akamai.com/linode-api/reference/put-linode-config) the active configuration profile to remove the VLAN interface, then [reboot](https://techdocs.akamai.com/linode-api/reference/post-reboot-linode-instance) the Linode.
- [Create a config profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config) without the VLAN interface, then [reboot](https://techdocs.akamai.com/linode-api/reference/post-reboot-linode-instance) the Linode into the new configuration profile.
- [Delete](https://techdocs.akamai.com/linode-api/reference/delete-linode-instance) the Linode.

To run this operation, you need `read_write` grants to Linodes that use the VLAN.

A successful request triggers a `vlan_delete` event.

> 📘
>
> VLANs without any attached Linodes are periodically cleaned up by the system.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -120,6 +121,16 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The label of the VLAN to be deleted. + + + + string + The VLAN's region. + integer @@ -136,21 +147,21 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a list of all Virtual Local Area Networks (VLANs) on your account. VLANs provide a mechanism for secure communication between two or more Linodes that are assigned to the same VLAN, and are both within the same Layer 2 broadcast domain.

For legacy configuration profile interfaces, you can use the following operations to create, attach, detach, and delete VLANs on a Linode:
- [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
- [Create a config profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config)
- [Update a config profile](https://techdocs.akamai.com/linode-api/reference/put-linode-config)
- [Update](https://techdocs.akamai.com/linode-api/reference/put-linode-config) the active Configuration Profile to remove the VLAN Interface, then [reboot](https://techdocs.akamai.com/linode-api/reference/post-reboot-linode-instance) the Linode.
- [Create a config profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config) without the VLAN Interface, then [reboot](https://techdocs.akamai.com/linode-api/reference/post-reboot-linode-instance) the Linode into the new Configuration Profile.
- [Delete](https://techdocs.akamai.com/linode-api/reference/delete-linode-instance) the Linode.

For Linode interfaces, you can use the following operations to create, attach, detach, and delete VLANs on a Linode:
- [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
- [Add a Linode interface](https://techdocs.akamai.com/linode-api/reference/post-linode-interface)
- [Update a Linode interface](put-linode-interface-settings)
- [Delete a Linode interface](https://techdocs.akamai.com/linode-api/reference/delete-linode-interface) from a Linode.

> 📘
>
> - Only Next Generation Network (NGN) data centers support VLANs. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the capabilities of data center regions. If a VLAN is attached to your Linode and you attempt to migrate or clone it to a non-NGN data center, the migration or cloning won't initiate. If a Linode cannot be migrated because of an incompatibility, you will be prompted to select a different data center or contact support.
>
> - See the [VLANs Overview](https://www.linode.com/docs/products/networking/vlans/#technical-specifications) to view additional specifications and limitations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +created, +label, +linodes, +region FROM linode.networking.vlans WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -163,17 +174,19 @@ AND page_size = '{{ page_size }}' ## `DELETE` examples - + This operation deletes a legacy configuration profile VLAN interface. To delete a Linode interface VLAN, use the [Delete a Linode interface](https://techdocs.akamai.com/linode-api/reference/delete-linode-interface) operation.

You can't delete a VLAN if it's still attached to a Linode. There are a few ways to detach it:
- [Update](https://techdocs.akamai.com/linode-api/reference/put-linode-config) the active configuration profile to remove the VLAN interface, then [reboot](https://techdocs.akamai.com/linode-api/reference/post-reboot-linode-instance) the Linode.
- [Create a config profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config) without the VLAN interface, then [reboot](https://techdocs.akamai.com/linode-api/reference/post-reboot-linode-instance) the Linode into the new configuration profile.
- [Delete](https://techdocs.akamai.com/linode-api/reference/delete-linode-instance) the Linode.

To run this operation, you need `read_write` grants to Linodes that use the VLAN.

A successful request triggers a `vlan_delete` event.

> 📘
>
> VLANs without any attached Linodes are periodically cleaned up by the system.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.networking.vlans +WHERE label = '{{ label }}' --required +AND regionId = '{{ regionId }}' --required ; ```
diff --git a/website/docs/services/nodebalancers/configurations/index.md b/website/docs/services/nodebalancers/configurations/index.md index a947e23..78f1146 100644 --- a/website/docs/services/nodebalancers/configurations/index.md +++ b/website/docs/services/nodebalancers/configurations/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a configurations resource. ## Overview - +
Nameconfigurations
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a configurations resource. The following fields are returned by `SELECT` queries: - + The requested NodeBalancer config. @@ -51,10 +52,120 @@ The requested NodeBalancer config. + + + integer + __Read-only__ This config's unique ID. + + + + integer + __Read-only__ The ID for the NodeBalancer this config belongs to. + + + + string + The algorithm this UDP NodeBalancer uses to route traffic to backends. (roundrobin, leastconn, ring_hash) (default: roundrobin, example: leastconn) + + + + string + The type of check to perform against backends to ensure they are serving requests. This determines if backends are up or down. - If `none`, no check is performed. - `connection` requires only a connection to the backend to succeed. - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. (none, connection, http, http_body) (default: none, example: http_body) + + + + integer + How many times to attempt a check before considering a backend to be down. + + + + string + This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. (example: it works) + + + + integer + How often, in seconds, to check that backends are up and serving requests. Must be greater than `check_timeout`. + + + + boolean + __Read-only__ Must be `false` for UDP. + + + + string + The URL path to check on each backend. If the backend does not respond to this request, it's considered to be down. (example: /test, pattern: ^[a-zA-Z0-9\/\-%?&=.]*$) + + + + integer + How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. + + + + string + __Read-only__ Not applicable for `udp` configs. (example: none) + + + + object + __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + + + + integer + This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + + + + string + The protocol the port is configured to serve, `udp` in this case. Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. (udp) (default: http, example: udp) + + + + string + __Read-only__ Must be `none` for UDP. (example: none) + + + + string + __Read-only__ Not applicable for UDP configs. + + + + string + __Read-only__ Not applicable for UPD configs. (example: ) + + + + string + __Read-only__ Not applicable for UDP configs. (example: ) + + + + string + __Read-only__ Not applicable for UDP configs. + + + + string + Controls how session stickiness is handled on this port. - If set to `none`, connections are assigned a backend server based on the algorithm configured. - If set to `session`, all packets with the same session identifiers are routed to the same backend server. Two packets are considered part of the same session if they share the same source and destination IP addresses or ports, and are received within a short time window. - If set to `source_ip`, the NodeBalancer uses the client's source IP address to route all packets from the same client to the same backend server. (none, session, source_ip) (default: session, example: none) + + + + integer + UDP NodeBalancers use TCP and HTTP active health checks to ensure back-end nodes can receive traffic. You can specify the health check port that the backend node listens on, which may differ from the UDP port used to serve traffic. + + + + integer + __Read-only__ The maximum duration in seconds, a UDP session can be idle before it is closed. + - + A paginated list of NodeBalancer Configs. @@ -67,6 +178,116 @@ A paginated list of NodeBalancer Configs. + + + integer + __Read-only__ This config's unique ID. + + + + integer + __Read-only__ The ID for the NodeBalancer this config belongs to. + + + + string + The algorithm this UDP NodeBalancer uses to route traffic to backends. (roundrobin, leastconn, ring_hash) (default: roundrobin, example: leastconn) + + + + string + The type of check to perform against backends to ensure they are serving requests. This determines if backends are up or down. - If `none`, no check is performed. - `connection` requires only a connection to the backend to succeed. - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. (none, connection, http, http_body) (default: none, example: http_body) + + + + integer + How many times to attempt a check before considering a backend to be down. + + + + string + This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. (example: it works) + + + + integer + How often, in seconds, to check that backends are up and serving requests. Must be greater than `check_timeout`. + + + + boolean + __Read-only__ Must be `false` for UDP. + + + + string + The URL path to check on each backend. If the backend does not respond to this request, it's considered to be down. (example: /test, pattern: ^[a-zA-Z0-9\/\-%?&=.]*$) + + + + integer + How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. + + + + string + __Read-only__ Not applicable for `udp` configs. (example: none) + + + + object + __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + + + + integer + This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + + + + string + The protocol the port is configured to serve, `udp` in this case. Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. (udp) (default: http, example: udp) + + + + string + __Read-only__ Must be `none` for UDP. (example: none) + + + + string + __Read-only__ Not applicable for UDP configs. + + + + string + __Read-only__ Not applicable for UPD configs. (example: ) + + + + string + __Read-only__ Not applicable for UDP configs. (example: ) + + + + string + __Read-only__ Not applicable for UDP configs. + + + + string + Controls how session stickiness is handled on this port. - If set to `none`, connections are assigned a backend server based on the algorithm configured. - If set to `session`, all packets with the same session identifiers are routed to the same backend server. Two packets are considered part of the same session if they share the same source and destination IP addresses or ports, and are received within a short time window. - If set to `source_ip`, the NodeBalancer uses the client's source IP address to route all packets from the same client to the same backend server. (none, session, source_ip) (default: session, example: none) + + + + integer + UDP NodeBalancers use TCP and HTTP active health checks to ensure back-end nodes can receive traffic. You can specify the health check port that the backend node listens on, which may differ from the UDP port used to serve traffic. + + + + integer + __Read-only__ The maximum duration in seconds, a UDP session can be idle before it is closed. + @@ -88,44 +309,44 @@ The following methods are available for this resource: - + - + nodeBalancerId, configId Returns configuration information for a single port of this NodeBalancer.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + nodeBalancerId page, page_size Returns a paginated list of NodeBalancer Configs associated with this NodeBalancer. NodeBalancer Configs represent individual ports that this NodeBalancer will accept traffic on, one Config per port.

For example, if you wanted to accept standard HTTP traffic, you would need a Config listening on port 80.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__nodes + nodeBalancerId, nodes Creates a NodeBalancer configuration, which allows the NodeBalancer to accept traffic on a new port. You will need to add NodeBalancer nodes to the new configuration before it can actually serve requests.

> 🚧
>
> You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn't currently support UDP. __CLI: HTTPS__.

```
linode-cli nodebalancers config-create 12345 \
--port 443 \
--protocol https \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--check_passive true \
--proxy_protocol "none" \
--ssl_cert "-----BEGIN CERTIFICATE-----
CERTIFICATE_INFORMATION
-----END CERTIFICATE-----" \
--ssl_key "-----BEGIN PRIVATE KEY-----
PRIVATE_KEY_INFORMATION
-----END PRIVATE KEY-----" \
--cipher_suite recommended
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: UDP__.

```
linode-cli nodebalancers config-create 12345 \
--port 80 \
--protocol udp \
--algorithm ring_hash \
--stickiness session \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--udp_check_port 80
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: TCP__.

```
linode-cli nodebalancers config-create 12345 \
--port 80 \
--protocol tcp \
--algorithm roundrobin \
--stickiness none \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--proxy_protocol "v2"
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: HTTP__.

```
linode-cli nodebalancers config-create 12345 \
--port 440 \
--protocol http \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works"
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + nodeBalancerId, configId Updates the configuration for a single port on a NodeBalancer.

> 🚧
>
> You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn't currently support UDP. __CLI: HTTPS__.

```
linode-cli nodebalancers config-update \
12345 4567 \
--port 443 \
--protocol https \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--check_passive true \
--proxy_protocol "none" \
--ssl_cert "-----BEGIN CERTIFICATE-----
CERTIFICATE_INFORMATION
-----END CERTIFICATE-----" \
--ssl_key "-----BEGIN PRIVATE KEY-----
PRIVATE_KEY_INFORMATION
-----END PRIVATE KEY-----" \
--cipher_suite recommended
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: UDP__.

```
linode-cli nodebalancers config-update \
12345 4567 \
--port 80 \
--protocol udp \
--algorithm ring_hash \
--stickiness session \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--udp_check_port 80
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: TCP__.

```
linode-cli nodebalancers config-update \
12345 4567 \
--port 80 \
--protocol tcp \
--algorithm roundrobin \
--stickiness none \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--proxy_protocol "v2"
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: HTTP__.

```
linode-cli nodebalancers config-update \
12345 4567 \
--port 440 \
--protocol http \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works"
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + nodeBalancerId, configId Deletes the Config for a port of this NodeBalancer.

__This cannot be undone.__

Once completed, this NodeBalancer will no longer respond to requests on the given port. This also deletes all associated NodeBalancerNodes, but the Linodes they were routing traffic to will be unchanged and will not be removed.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - nodes + nodeBalancerId, configId, nodes Rebuilds a NodeBalancer config and its nodes that you have permission to modify.

Use this operation to update a NodeBalancer's config and nodes with a single request.

> 🚧
>
> You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn't currently support UDP. __CLI: HTTPS__.

```
linode-cli nodebalancers config-rebuild \
12345 4567 \
--port 443 \
--protocol https \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--check_passive true \
--proxy_protocol "none" \
--ssl_cert "-----BEGIN CERTIFICATE-----
CERTIFICATE_INFORMATION
-----END CERTIFICATE-----" \
--ssl_key "-----BEGIN PRIVATE KEY-----
PRIVATE_KEY_INFORMATION
-----END PRIVATE KEY-----" \
--cipher_suite recommended \
--nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
--nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' \
--nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: UDP__.

```
linode-cli nodebalancers config-rebuild \
12345 4567 \
--port 80 \
--protocol udp \
--algorithm ring_hash \
--udp_check_port 80 \
--nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
--nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50}]' \
--nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: TCP__.

```
linode-cli nodebalancers config-rebuild \
12345 4567 \
--port 80 \
--protocol tcp \
--algorithm roundrobin \
--stickiness none \
--proxy_protocol "v2"
--nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
--nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' \
--nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
```

[Learn more...](https://www.linode.com/docs/products/tools/cli/get-started/)

- __CLI: HTTP__.

```
linode-cli nodebalancers config-rebuild \
12345 4567 \
--port 440 \
--protocol http \
--algorithm roundrobin \
--stickiness none \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
--nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' \
--nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -145,6 +366,16 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Config to access. + + + + string + The ID of the NodeBalancer. (example: {{nodeBalancerId}}) + integer @@ -161,32 +392,77 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns configuration information for a single port of this NodeBalancer.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -* +id, +nodebalancer_id, +algorithm, +check, +check_attempts, +check_body, +check_interval, +check_passive, +check_path, +check_timeout, +cipher_suite, +nodes_status, +port, +protocol, +proxy_protocol, +ssl_cert, +ssl_commonname, +ssl_fingerprint, +ssl_key, +stickiness, +udp_check_port, +udp_session_timeout FROM linode.nodebalancers.configurations +WHERE nodeBalancerId = '{{ nodeBalancerId }}' -- required +AND configId = '{{ configId }}' -- required ; ```
- + Returns a paginated list of NodeBalancer Configs associated with this NodeBalancer. NodeBalancer Configs represent individual ports that this NodeBalancer will accept traffic on, one Config per port.

For example, if you wanted to accept standard HTTP traffic, you would need a Config listening on port 80.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -* +id, +nodebalancer_id, +algorithm, +check, +check_attempts, +check_body, +check_interval, +check_passive, +check_path, +check_timeout, +cipher_suite, +nodes_status, +port, +protocol, +proxy_protocol, +ssl_cert, +ssl_commonname, +ssl_fingerprint, +ssl_key, +stickiness, +udp_check_port, +udp_session_timeout FROM linode.nodebalancers.configurations -WHERE page = '{{ page }}' +WHERE nodeBalancerId = '{{ nodeBalancerId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` @@ -197,43 +473,160 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Creates a NodeBalancer configuration, which allows the NodeBalancer to accept traffic on a new port. You will need to add NodeBalancer nodes to the new configuration before it can actually serve requests.

> 🚧
>
> You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn't currently support UDP. __CLI: HTTPS__.

```
linode-cli nodebalancers config-create 12345 \
--port 443 \
--protocol https \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--check_passive true \
--proxy_protocol "none" \
--ssl_cert "-----BEGIN CERTIFICATE-----
CERTIFICATE_INFORMATION
-----END CERTIFICATE-----" \
--ssl_key "-----BEGIN PRIVATE KEY-----
PRIVATE_KEY_INFORMATION
-----END PRIVATE KEY-----" \
--cipher_suite recommended
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: UDP__.

```
linode-cli nodebalancers config-create 12345 \
--port 80 \
--protocol udp \
--algorithm ring_hash \
--stickiness session \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--udp_check_port 80
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: TCP__.

```
linode-cli nodebalancers config-create 12345 \
--port 80 \
--protocol tcp \
--algorithm roundrobin \
--stickiness none \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--proxy_protocol "v2"
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: HTTP__.

```
linode-cli nodebalancers config-create 12345 \
--port 440 \
--protocol http \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works"
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.nodebalancers.configurations ( -data__nodes +algorithm, +check, +check_attempts, +check_body, +check_interval, +check_path, +check_timeout, +nodes, +port, +protocol, +stickiness, +udp_check_port, +nodeBalancerId ) SELECT -'{{ nodes }}' /* required */ +'{{ algorithm }}', +'{{ check }}', +{{ check_attempts }}, +'{{ check_body }}', +{{ check_interval }}, +'{{ check_path }}', +{{ check_timeout }}, +'{{ nodes }}' /* required */, +{{ port }}, +'{{ protocol }}', +'{{ stickiness }}', +{{ udp_check_port }}, +'{{ nodeBalancerId }}' +RETURNING +id, +nodebalancer_id, +algorithm, +check, +check_attempts, +check_body, +check_interval, +check_passive, +check_path, +check_timeout, +cipher_suite, +nodes_status, +port, +protocol, +proxy_protocol, +ssl_cert, +ssl_commonname, +ssl_fingerprint, +ssl_key, +stickiness, +udp_check_port, +udp_session_timeout ; ```
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: configurations props: + - name: nodeBalancerId + value: "{{ nodeBalancerId }}" + description: Required parameter for the configurations resource. + - name: algorithm + value: "{{ algorithm }}" + description: | + The algorithm this UDP NodeBalancer uses to route traffic to backends. + valid_values: ['roundrobin', 'leastconn', 'ring_hash'] + default: roundrobin + - name: check + value: "{{ check }}" + description: | + The type of check to perform against backends to ensure they are serving requests. This determines if backends are up or down. + - If \`none\`, no check is performed. + - \`connection\` requires only a connection to the backend to succeed. + - \`http\` and \`http_body\` rely on the backend serving HTTP, and that the response returned matches what is expected. + valid_values: ['none', 'connection', 'http', 'http_body'] + default: none + - name: check_attempts + value: {{ check_attempts }} + description: | + How many times to attempt a check before considering a backend to be down. + default: 3 + - name: check_body + value: "{{ check_body }}" + description: | + This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. + - name: check_interval + value: {{ check_interval }} + description: | + How often, in seconds, to check that backends are up and serving requests. + Must be greater than \`check_timeout\`. + default: 5 + - name: check_path + value: "{{ check_path }}" + description: | + The URL path to check on each backend. If the backend does not respond to this request, it's considered to be down. + - name: check_timeout + value: {{ check_timeout }} + description: | + How long, in seconds, to wait for a check attempt before considering it failed. + Must be less than \`check_interval\`. + default: 30 - name: nodes - value: array - description: > - The NodeBalancer nodes that serve this config. - -Some considerations for Nodes when rebuilding a config: + description: | + The NodeBalancer nodes that serve this configuration. + value: + - address: "{{ address }}" + config_id: {{ config_id }} + id: {{ id }} + label: "{{ label }}" + mode: "{{ mode }}" + nodebalancer_id: {{ nodebalancer_id }} + status: "{{ status }}" + subnet_id: {{ subnet_id }} + weight: {{ weight }} + - name: port + value: {{ port }} + description: | + This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + default: 80 + - name: protocol + value: "{{ protocol }}" + description: | + The protocol the port is configured to serve, \`udp\` in this case. Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. + valid_values: ['udp'] + default: http + - name: stickiness + value: "{{ stickiness }}" + description: | + Controls how session stickiness is handled on this port. + - If set to \`none\`, connections are assigned a backend server based on the algorithm configured. + - If set to \`session\`, all packets with the same session identifiers are routed to the same backend server. Two packets are considered part of the same session if they share the same source and destination IP addresses or ports, and are received within a short time window. + - If set to \`source_ip\`, the NodeBalancer uses the client's source IP address to route all packets from the same client to the same backend server. + valid_values: ['none', 'session', 'source_ip'] + default: session + - name: udp_check_port + value: {{ udp_check_port }} + description: | + UDP NodeBalancers use TCP and HTTP active health checks to ensure back-end nodes can receive traffic. You can specify the health check port that the backend node listens on, which may differ from the UDP port used to serve traffic. + default: 80 +`} - - Current Nodes excluded from the request body will be deleted from the Config. - - Current Nodes (identified by their Node ID) will be updated. - - New Nodes (included without a Node ID) will be created. - -```
@@ -241,19 +634,55 @@ Some considerations for Nodes when rebuilding a config: ## `REPLACE` examples - + Updates the configuration for a single port on a NodeBalancer.

> 🚧
>
> You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn't currently support UDP. __CLI: HTTPS__.

```
linode-cli nodebalancers config-update \
12345 4567 \
--port 443 \
--protocol https \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--check_passive true \
--proxy_protocol "none" \
--ssl_cert "-----BEGIN CERTIFICATE-----
CERTIFICATE_INFORMATION
-----END CERTIFICATE-----" \
--ssl_key "-----BEGIN PRIVATE KEY-----
PRIVATE_KEY_INFORMATION
-----END PRIVATE KEY-----" \
--cipher_suite recommended
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: UDP__.

```
linode-cli nodebalancers config-update \
12345 4567 \
--port 80 \
--protocol udp \
--algorithm ring_hash \
--stickiness session \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--udp_check_port 80
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: TCP__.

```
linode-cli nodebalancers config-update \
12345 4567 \
--port 80 \
--protocol tcp \
--algorithm roundrobin \
--stickiness none \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--proxy_protocol "v2"
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: HTTP__.

```
linode-cli nodebalancers config-update \
12345 4567 \
--port 440 \
--protocol http \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works"
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.nodebalancers.configurations SET --- No updatable properties; +algorithm = '{{ algorithm }}', +check = '{{ check }}', +check_attempts = {{ check_attempts }}, +check_body = '{{ check_body }}', +check_interval = {{ check_interval }}, +check_path = '{{ check_path }}', +check_timeout = {{ check_timeout }}, +port = {{ port }}, +protocol = '{{ protocol }}', +stickiness = '{{ stickiness }}', +udp_check_port = {{ udp_check_port }} +WHERE +nodeBalancerId = '{{ nodeBalancerId }}' --required +AND configId = '{{ configId }}' --required +RETURNING +id, +nodebalancer_id, +algorithm, +check, +check_attempts, +check_body, +check_interval, +check_passive, +check_path, +check_timeout, +cipher_suite, +nodes_status, +port, +protocol, +proxy_protocol, +ssl_cert, +ssl_commonname, +ssl_fingerprint, +ssl_key, +stickiness, +udp_check_port, +udp_session_timeout; ```
@@ -262,17 +691,19 @@ SET ## `DELETE` examples - + Deletes the Config for a port of this NodeBalancer.

__This cannot be undone.__

Once completed, this NodeBalancer will no longer respond to requests on the given port. This also deletes all associated NodeBalancerNodes, but the Linodes they were routing traffic to will be unchanged and will not be removed.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.nodebalancers.configurations +WHERE nodeBalancerId = '{{ nodeBalancerId }}' --required +AND configId = '{{ configId }}' --required ; ```
@@ -282,20 +713,33 @@ DELETE FROM linode.nodebalancers.configurations ## Lifecycle Methods - + Rebuilds a NodeBalancer config and its nodes that you have permission to modify.

Use this operation to update a NodeBalancer's config and nodes with a single request.

> 🚧
>
> You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn't currently support UDP. __CLI: HTTPS__.

```
linode-cli nodebalancers config-rebuild \
12345 4567 \
--port 443 \
--protocol https \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--check_passive true \
--proxy_protocol "none" \
--ssl_cert "-----BEGIN CERTIFICATE-----
CERTIFICATE_INFORMATION
-----END CERTIFICATE-----" \
--ssl_key "-----BEGIN PRIVATE KEY-----
PRIVATE_KEY_INFORMATION
-----END PRIVATE KEY-----" \
--cipher_suite recommended \
--nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
--nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' \
--nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: UDP__.

```
linode-cli nodebalancers config-rebuild \
12345 4567 \
--port 80 \
--protocol udp \
--algorithm ring_hash \
--udp_check_port 80 \
--nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
--nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50}]' \
--nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: TCP__.

```
linode-cli nodebalancers config-rebuild \
12345 4567 \
--port 80 \
--protocol tcp \
--algorithm roundrobin \
--stickiness none \
--proxy_protocol "v2"
--nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
--nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' \
--nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
```

[Learn more...](https://www.linode.com/docs/products/tools/cli/get-started/)

- __CLI: HTTP__.

```
linode-cli nodebalancers config-rebuild \
12345 4567 \
--port 440 \
--protocol http \
--algorithm roundrobin \
--stickiness none \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \
--nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' \
--nodes '[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.nodebalancers.configurations.post_rebuild_node_balancer_config +EXEC linode.nodebalancers.configurations.rebuild +@nodeBalancerId='{{ nodeBalancerId }}' --required, +@configId='{{ configId }}' --required @@json= '{ -"nodes": "{{ nodes }}" +"algorithm": "{{ algorithm }}", +"check": "{{ check }}", +"check_attempts": {{ check_attempts }}, +"check_body": "{{ check_body }}", +"check_interval": {{ check_interval }}, +"check_path": "{{ check_path }}", +"check_timeout": {{ check_timeout }}, +"nodes": "{{ nodes }}", +"port": {{ port }}, +"protocol": "{{ protocol }}", +"stickiness": "{{ stickiness }}", +"udp_check_port": {{ udp_check_port }} }' ; ``` diff --git a/website/docs/services/nodebalancers/firewalls/index.md b/website/docs/services/nodebalancers/firewalls/index.md index 142daa4..62a9ef6 100644 --- a/website/docs/services/nodebalancers/firewalls/index.md +++ b/website/docs/services/nodebalancers/firewalls/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a firewalls resource. ## Overview - +
Namefirewalls
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a firewalls resource. The following fields are returned by `SELECT` queries: - + Returns a paginated list of Firewalls assigned to this NodeBalancer. @@ -58,12 +59,17 @@ Returns a paginated list of Firewalls assigned to this NodeBalancer. string (date-time) - __Filterable__, __Read-only__ When this Firewall was created. (example: 2018-01-01T00:01:01) + __Filterable__, __Read-only__ When this Firewall was created. (example: 2025-01-01T00:01:01) + + + + array + __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. string - __Filterable__ The Firewall's label, for display purposes only. Firewall labels have the following constraints: - Must begin and end with an alphanumeric character. - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - Must be between 3 and 32 characters. - Must be unique. (example: firewall123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) + __Filterable__ The Firewall's label, for display purposes only. Firewall labels have the following constraints: - Must begin and end with an alphanumeric character. - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row. - Must be between 3 and 32 characters. - Must be unique. (example: firewall123, pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$) @@ -73,7 +79,7 @@ Returns a paginated list of Firewalls assigned to this NodeBalancer. string - __Read-only__ The status of this Firewall. - When a Firewall is first created its status is `enabled`. - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`. - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall. (example: enabled) + __Read-only__ The status of this Firewall. - When a Firewall is first created its status is `enabled`. - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`. - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall. (enabled, disabled, deleted) (example: enabled) @@ -83,7 +89,7 @@ Returns a paginated list of Firewalls assigned to this NodeBalancer. string (date-time) - __Filterable__, __Read-only__ When this Firewall was last updated. (example: 2018-01-02T00:01:01) + __Filterable__, __Read-only__ When this Firewall was last updated. (example: 2025-01-02T00:01:01) @@ -106,16 +112,16 @@ The following methods are available for this resource: - + - + nodeBalancerId View information for Firewalls assigned to this NodeBalancer.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__firewall_ids + nodeBalancerId, firewall_ids page, page_size Replace the current list of assigned firewalls with a new list, or provide an empty list to remove all firewalls from this NodeBalancer.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -135,6 +141,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the NodeBalancer. (example: {{nodeBalancerId}}) + integer @@ -151,12 +162,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + View information for Firewalls assigned to this NodeBalancer.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -164,12 +175,14 @@ View information for Firewalls assigned to this NodeBalancer.

[Learn SELECT id, created, +entities, label, rules, status, tags, updated FROM linode.nodebalancers.firewalls +WHERE nodeBalancerId = '{{ nodeBalancerId }}' -- required ; ```
@@ -179,21 +192,22 @@ FROM linode.nodebalancers.firewalls ## `REPLACE` examples - + Replace the current list of assigned firewalls with a new list, or provide an empty list to remove all firewalls from this NodeBalancer.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.nodebalancers.firewalls SET -data__firewall_ids = '{{ firewall_ids }}' +firewall_ids = '{{ firewall_ids }}' WHERE -data__firewall_ids = '{{ firewall_ids }}' --required +nodeBalancerId = '{{ nodeBalancerId }}' --required +AND firewall_ids = '{{ firewall_ids }}' --required AND page = '{{ page}}' AND page_size = '{{ page_size}}' RETURNING diff --git a/website/docs/services/nodebalancers/node_balancers/index.md b/website/docs/services/nodebalancers/node_balancers/index.md index f9f5665..b14e3a8 100644 --- a/website/docs/services/nodebalancers/node_balancers/index.md +++ b/website/docs/services/nodebalancers/node_balancers/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a node_balancers resource. ## Overview - +
Namenode_balancers
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a node_balancers resource. The following fields are returned by `SELECT` queries: - + The requested NodeBalancer object. @@ -84,7 +85,7 @@ The requested NodeBalancer object. string - __Filterable__ This NodeBalancer's label. These must be unique on your Account. (example: balancer12345, pattern: [a-zA-Z0-9-_]{3,32}) + __Filterable__ This NodeBalancer's label. These must be unique on your Account. (example: balancer12345, pattern: [a-zA-Z0-9-_]{3,32}) @@ -109,7 +110,7 @@ The requested NodeBalancer object. string - __Read-only__ The type of NodeBalancer. (example: premium) + __Read-only__ The type of NodeBalancer. (common, premium) (example: premium) @@ -119,7 +120,7 @@ The requested NodeBalancer object. - + A paginated list of NodeBalancers. @@ -133,24 +134,69 @@ A paginated list of NodeBalancers. - - array - + + integer + __Read-only__ This NodeBalancer's unique ID. - + integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + Throttle TCP connections per second for TCP, HTTP, and HTTPS configurations. Set to `0` (zero) to disable throttling. - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ When this NodeBalancer was created. (example: 2018-01-01T00:01:01) - - integer - __Read-only__ The total number of results. + + string + __Read-only__ This NodeBalancer's hostname, beginning with its IP address and ending with _.ip.linodeusercontent.com_. (example: 192.0.2.1.ip.linodeusercontent.com) + + + + string (ip) + __Filterable__, __Read-only__ This NodeBalancer's public IPv4 address. (example: 203.0.113.1) + + + + string (ip) + __Read-only__ This NodeBalancer's public IPv6 address. + + + + string + __Filterable__ This NodeBalancer's label. These must be unique on your Account. (example: balancer12345, pattern: [a-zA-Z0-9-_]{3,32}) + + + + object + __Read-only__ This NodeBalancer's related LKE cluster, if any. The value is `null` if this NodeBalancer isn't related to an LKE cluster. + + + + string + __Filterable__, __Read-only__ The Region where this NodeBalancer is located. NodeBalancers only support backends in the same Region. (example: us-east) + + + + array + __Filterable__ An array of Tags applied to this object. Tags are for organizational purposes only. + + + + object + __Read-only__ Information about the amount of transfer this NodeBalancer has had so far this month. + + + + string + __Read-only__ The type of NodeBalancer. (common, premium) (example: premium) + + + + string (date-time) + __Read-only__ When this NodeBalancer was last updated. (example: 2018-03-01T00:01:01) @@ -173,37 +219,37 @@ The following methods are available for this resource: - + - + nodeBalancerId Returns a single NodeBalancer you can access.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Returns a paginated list of NodeBalancers you have access to.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__region + region Creates a NodeBalancer in the requested Region. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with "NodeBalancers" in their `capabilities`.

NodeBalancers require a port config with at least one backend node to start serving requests.

When using the Linode CLI to create a NodeBalancer, first create a NodeBalancer without any configs. Then, create configs and nodes for that NodeBalancer with the respective [Create a config](https://techdocs.akamai.com/linode-api/reference/post-node-balancer-config) and [Create a node](https://techdocs.akamai.com/linode-api/reference/post-node-balancer-node) operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + nodeBalancerId Updates information about a NodeBalancer you can access.

> 🚧
>
> You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn't currently support UDP.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + nodeBalancerId Deletes a NodeBalancer.

__This is a destructive action and cannot be undone.__

Deleting a NodeBalancer will also delete all associated Configs and Nodes, although the backend servers represented by the Nodes will not be changed or removed. Deleting a NodeBalancer will cause you to lose access to the IP Addresses assigned to this NodeBalancer.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -223,6 +269,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the NodeBalancer. (example: {{nodeBalancerId}}) + integer @@ -239,13 +290,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a single NodeBalancer you can access.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -265,19 +316,29 @@ transfer, type, updated FROM linode.nodebalancers.node_balancers +WHERE nodeBalancerId = '{{ nodeBalancerId }}' -- required ; ```
- + Returns a paginated list of NodeBalancers you have access to.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +client_conn_throttle, +created, +hostname, +ipv4, +ipv6, +label, +lke_cluster, +region, +tags, +transfer, +type, +updated FROM linode.nodebalancers.node_balancers WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -290,25 +351,25 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Creates a NodeBalancer in the requested Region. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with "NodeBalancers" in their `capabilities`.

NodeBalancers require a port config with at least one backend node to start serving requests.

When using the Linode CLI to create a NodeBalancer, first create a NodeBalancer without any configs. Then, create configs and nodes for that NodeBalancer with the respective [Create a config](https://techdocs.akamai.com/linode-api/reference/post-node-balancer-config) and [Create a node](https://techdocs.akamai.com/linode-api/reference/post-node-balancer-node) operations.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.nodebalancers.node_balancers ( -data__client_conn_throttle, -data__configs, -data__firewall_id, -data__label, -data__region, -data__tags, -data__vpcs +client_conn_throttle, +configs, +firewall_id, +label, +region, +tags, +vpcs ) SELECT {{ client_conn_throttle }}, @@ -337,49 +398,48 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: node_balancers props: - name: client_conn_throttle - value: integer - description: > - Throttle TCP connections per second for TCP, HTTP, and HTTPS configurations. Set to `0` (zero) to disable throttling. - + value: {{ client_conn_throttle }} + description: | + Throttle TCP connections per second for TCP, HTTP, and HTTPS configurations. Set to \`0\` (zero) to disable throttling. - name: configs - value: array - description: > + value: "{{ configs }}" + description: | The port configs to create for this NodeBalancer. Each config needs a unique port and at least one node. - - name: firewall_id - value: integer - description: > + value: {{ firewall_id }} + description: | The ID of the Firewall to assign to the NodeBalancer. - -- A NodeBalancer can have only one Firewall assigned to it. -- Firewalls control inbound network traffic to NodeBalancers. - + - A NodeBalancer can have only one Firewall assigned to it. + - Firewalls control inbound network traffic to NodeBalancers. - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ This NodeBalancer's label. These must be unique on your Account. - - name: region - value: string - description: > + value: "{{ region }}" + description: | The ID of the Region to create this NodeBalancer in. - - name: tags - value: array - description: > + value: + - "{{ tags }}" + description: | An array of Tags applied to this object. Tags are for organizational purposes only. - - name: vpcs - value: array - description: > - You can have only one `vpcs` in a NodeBalancer configuration. If any of your backend nodes are VPC Linodes, specify the VPC subnet and CIDR range. NodeBalancer routes traffic to backend VPC nodes through this subnet. The specified VPC subnet must exist within the same data center as the NodeBalancer, and the provided IP range must be contained within the subnet's CIDR block. All IP addresses within the specified range must be free and available for assignment. Once the NodeBalancer is created, its VPC cannot be changed. - -``` + description: | + You can have only one \`vpcs\` in a NodeBalancer configuration. If any of your backend nodes are VPC Linodes, specify the VPC subnet and CIDR range. NodeBalancer routes traffic to backend VPC nodes through this subnet. The specified VPC subnet must exist within the same data center as the NodeBalancer, and the provided IP range must be contained within the subnet's CIDR block. All IP addresses within the specified range must be free and available for assignment. Once the NodeBalancer is created, its VPC cannot be changed. + value: + - id: {{ id }} + ipv4_range: "{{ ipv4_range }}" + ipv4_range_auto_assign: {{ ipv4_range_auto_assign }} + nodebalancer_id: {{ nodebalancer_id }} + subnet_id: {{ subnet_id }} + vpc_id: {{ vpc_id }} +`} +
@@ -387,21 +447,23 @@ updated ## `REPLACE` examples - + Updates information about a NodeBalancer you can access.

> 🚧
>
> You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn't currently support UDP.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.nodebalancers.node_balancers SET -data__client_conn_throttle = {{ client_conn_throttle }}, -data__label = '{{ label }}', -data__tags = '{{ tags }}' +client_conn_throttle = {{ client_conn_throttle }}, +label = '{{ label }}', +tags = '{{ tags }}' +WHERE +nodeBalancerId = '{{ nodeBalancerId }}' --required RETURNING id, client_conn_throttle, @@ -424,17 +486,18 @@ updated; ## `DELETE` examples - + Deletes a NodeBalancer.

__This is a destructive action and cannot be undone.__

Deleting a NodeBalancer will also delete all associated Configs and Nodes, although the backend servers represented by the Nodes will not be changed or removed. Deleting a NodeBalancer will cause you to lose access to the IP Addresses assigned to this NodeBalancer.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.nodebalancers.node_balancers +WHERE nodeBalancerId = '{{ nodeBalancerId }}' --required ; ```
diff --git a/website/docs/services/nodebalancers/nodes/index.md b/website/docs/services/nodebalancers/nodes/index.md index b7416a6..4b9879d 100644 --- a/website/docs/services/nodebalancers/nodes/index.md +++ b/website/docs/services/nodebalancers/nodes/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a nodes resource. ## Overview - +
Namenodes
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a nodes resource. The following fields are returned by `SELECT` queries: - + A paginated list of NodeBalancer nodes. @@ -51,10 +52,55 @@ A paginated list of NodeBalancer nodes. + + + integer + __Read-only__ This node's unique ID. + + + + integer + __Read-only__ The NodeBalancer Config ID that this Node belongs to. + + + + integer + __Read-only__ The NodeBalancer ID that this Node belongs to. + + + + integer + __Read-only__ For VPC backends, you can use the `vpc_config_id` to [get VPC IDs and VPC subnet IDs](https://techdocs.akamai.com/linode-api/reference/get-node-balancer-vpc-config). Returns a `null` value if the backend is not a VPC node. Included only in `{apiVersion}` `v4beta`. + + + + string (ip) + The address and port where this backend can be reached: either the Linode’s private IPv4, public IPv6, or the VPC's IPv4 address. (example: 10.0.0.45:80) + + + + string + The label for this node. This is for display purposes only. (example: vpc-node, pattern: [a-zA-Z0-9-_.]{3,32}) + + + + string + The mode this NodeBalancer should use when sending traffic to this backend. - If set to `accept` this backend is accepting traffic. - If set to `reject` this backend will not receive traffic. - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. (accept, reject, drain, backup) (example: accept) + + + + string + __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. (Unknown, UP, DOWN) (example: UP) + + + + integer + Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + - + A paginated list of NodeBalancer nodes. @@ -67,26 +113,6 @@ A paginated list of NodeBalancer nodes. - - - array - - - - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - __Read-only__ The total number of results. - @@ -108,37 +134,37 @@ The following methods are available for this resource: - + - + nodeBalancerId, configId, nodeId Returns information about a single Node, a backend for this NodeBalancer's configured port.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + nodeBalancerId, configId page, page_size Returns a paginated list of NodeBalancer nodes associated with this Config. These are the backends that will be sent traffic for this port.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__label, data__address + nodeBalancerId, configId Creates a backend node that can receive traffic for the NodeBalancer configuration. Requests are routed to backend nodes on the specified port based on their `status`. The configurable fields for the backend node depend on the chosen protocol and whether the node is located within a Linode VPC.

> 🚧
>
> You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn't currently support UDP. __CLI: TCP, HTTP, HTTPS__.

```
linode-cli nodebalancers node-create \
12345 4567 \
--address 10.0.0.45:80 \
--label node54321 \
--weight 50 \
--mode accept \
--subnet_id 1
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: UDP__.

```
linode-cli nodebalancers node-create \
12345 4567 \
--address 192.168.210.120:80 \
--label node54321 \
--weight 50
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + nodeBalancerId, configId, nodeId Updates information about a node, a backend for this NodeBalancer's configured port.

> 🚧
>
> You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn't currently support UDP. __CLI: TCP, HTTP, HTTPS__.

```
linode-cli nodebalancers node-update \
12345 4567 54321 \
--address 192.168.210.120:80 \
--label node54321 \
--weight 50 \
--mode accept
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: UDP__.

```
linode-cli nodebalancers node-create \
12345 4567 \
--address 192.168.210.120:80 \
--label node54321 \
--weight 50
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + nodeBalancerId, configId, nodeId Deletes a Node from this Config. This backend will no longer receive traffic for the configured port of this NodeBalancer.

This does not change or remove the Linode whose address was used in the creation of this Node.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -158,6 +184,21 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the Config to access. + + + + string + The ID of the NodeBalancer. (example: {{nodeBalancerId}}) + + + + string + The ID of the Node to access. (example: {{nodeId}}) + integer @@ -174,35 +215,45 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns information about a single Node, a backend for this NodeBalancer's configured port.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -* +id, +config_id, +nodebalancer_id, +vpc_config_id, +address, +label, +mode, +status, +weight FROM linode.nodebalancers.nodes +WHERE nodeBalancerId = '{{ nodeBalancerId }}' -- required +AND configId = '{{ configId }}' -- required +AND nodeId = '{{ nodeId }}' -- required ; ```
- + Returns a paginated list of NodeBalancer nodes associated with this Config. These are the backends that will be sent traffic for this port.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +* FROM linode.nodebalancers.nodes -WHERE page = '{{ page }}' +WHERE nodeBalancerId = '{{ nodeBalancerId }}' -- required +AND configId = '{{ configId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` @@ -213,32 +264,77 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Creates a backend node that can receive traffic for the NodeBalancer configuration. Requests are routed to backend nodes on the specified port based on their `status`. The configurable fields for the backend node depend on the chosen protocol and whether the node is located within a Linode VPC.

> 🚧
>
> You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn't currently support UDP. __CLI: TCP, HTTP, HTTPS__.

```
linode-cli nodebalancers node-create \
12345 4567 \
--address 10.0.0.45:80 \
--label node54321 \
--weight 50 \
--mode accept \
--subnet_id 1
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: UDP__.

```
linode-cli nodebalancers node-create \
12345 4567 \
--address 192.168.210.120:80 \
--label node54321 \
--weight 50
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.nodebalancers.nodes ( - +address, +label, +subnet_id, +weight, +nodeBalancerId, +configId ) SELECT - +'{{ address }}', +'{{ label }}', +{{ subnet_id }}, +{{ weight }}, +'{{ nodeBalancerId }}', +'{{ configId }}' +RETURNING +id, +config_id, +nodebalancer_id, +vpc_config_id, +address, +label, +mode, +status, +weight ; ```
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: nodes props: -``` + - name: nodeBalancerId + value: "{{ nodeBalancerId }}" + description: Required parameter for the nodes resource. + - name: configId + value: "{{ configId }}" + description: Required parameter for the nodes resource. + - name: address + value: "{{ address }}" + description: | + Backend nodes can be Linodes and Linodes within a VPC. The following IP types are supported: + - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached. + - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached. + - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached. + - name: label + value: "{{ label }}" + description: | + The label for this node. This is for display purposes only. + - name: subnet_id + value: {{ subnet_id }} + description: | + Required for VPC backend nodes only. The VPC's subnet. To display information about your VPCs and their subnets, run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation. + - name: weight + value: {{ weight }} + description: | + Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. +`} +
@@ -246,19 +342,36 @@ SELECT ## `REPLACE` examples - + Updates information about a node, a backend for this NodeBalancer's configured port.

> 🚧
>
> You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn't currently support UDP. __CLI: TCP, HTTP, HTTPS__.

```
linode-cli nodebalancers node-update \
12345 4567 54321 \
--address 192.168.210.120:80 \
--label node54321 \
--weight 50 \
--mode accept
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

- __CLI: UDP__.

```
linode-cli nodebalancers node-create \
12345 4567 \
--address 192.168.210.120:80 \
--label node54321 \
--weight 50
```

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.nodebalancers.nodes SET --- No updatable properties; +address = '{{ address }}', +label = '{{ label }}', +subnet_id = {{ subnet_id }}, +weight = {{ weight }} +WHERE +nodeBalancerId = '{{ nodeBalancerId }}' --required +AND configId = '{{ configId }}' --required +AND nodeId = '{{ nodeId }}' --required +RETURNING +id, +config_id, +nodebalancer_id, +vpc_config_id, +address, +label, +mode, +status, +weight; ```
@@ -267,17 +380,20 @@ SET ## `DELETE` examples - + Deletes a Node from this Config. This backend will no longer receive traffic for the configured port of this NodeBalancer.

This does not change or remove the Linode whose address was used in the creation of this Node.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.nodebalancers.nodes +WHERE nodeBalancerId = '{{ nodeBalancerId }}' --required +AND configId = '{{ configId }}' --required +AND nodeId = '{{ nodeId }}' --required ; ```
diff --git a/website/docs/services/nodebalancers/statistics/index.md b/website/docs/services/nodebalancers/statistics/index.md index 8553e76..bb57690 100644 --- a/website/docs/services/nodebalancers/statistics/index.md +++ b/website/docs/services/nodebalancers/statistics/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a statistics resource. ## Overview - +
Namestatistics
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a statistics resource. The following fields are returned by `SELECT` queries: - + The requested stats. @@ -81,9 +82,9 @@ The following methods are available for this resource: - + - + nodeBalancerId Returns detailed statistics about the requested NodeBalancer. __OAuth scopes__.

```
nodebalancers:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -103,18 +104,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the NodeBalancer. (example: {{nodeBalancerId}}) + ## `SELECT` examples - + Returns detailed statistics about the requested NodeBalancer. __OAuth scopes__.

```
nodebalancers:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -123,6 +129,7 @@ SELECT data, title FROM linode.nodebalancers.statistics +WHERE nodeBalancerId = '{{ nodeBalancerId }}' -- required ; ```
diff --git a/website/docs/services/nodebalancers/types/index.md b/website/docs/services/nodebalancers/types/index.md index f742cbf..b47a4e1 100644 --- a/website/docs/services/nodebalancers/types/index.md +++ b/website/docs/services/nodebalancers/types/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a types resource. ## Overview - +
Nametypes
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a types resource. The following fields are returned by `SELECT` queries: - + A collection of NodeBalancer types. @@ -51,24 +52,29 @@ A collection of NodeBalancer types. - - array - The NodeBalancer types. + + string + __Read-only__ The ID representing the NodeBalancer type. (example: nodebalancer) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__, __Read-only__ The NodeBalancer type label is for display purposes only. (example: NodeBalancer) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + __Read-only__ The default cost of this NodeBalancer type. Prices are in US dollars, broken down into hourly and monthly charges. Certain regions have different prices from the default. For region-specific prices, see `region_prices`. + + + + array + - + integer - __Read-only__ The total number of results. + __Filterable__, __Read-only__ The monthly outbound transfer amount, in MB. @@ -91,7 +97,7 @@ The following methods are available for this resource: - + @@ -119,21 +125,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns NodeBalancer types and prices, including any region-specific rates.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +label, +price, +region_prices, +transfer FROM linode.nodebalancers.types ; ``` diff --git a/website/docs/services/nodebalancers/vpc_configs/index.md b/website/docs/services/nodebalancers/vpc_configs/index.md index ad17174..eacf83a 100644 --- a/website/docs/services/nodebalancers/vpc_configs/index.md +++ b/website/docs/services/nodebalancers/vpc_configs/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a vpc_configs resource. ## Overview - +
Namevpc_configs
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a vpc_configs resource. The following fields are returned by `SELECT` queries: - + The requested NodeBalancer VPC configuration. @@ -84,7 +85,7 @@ The requested NodeBalancer VPC configuration. - + A paginated list of NodeBalancer VPC configurations. @@ -98,24 +99,34 @@ A paginated list of NodeBalancer VPC configurations. - - array - + + integer + __Read-only__ Identifies the VPC configuration for this NodeBalancer. - + integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + __Read-only__ Identifies the NodeBalancer. - + integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + The VPC's subnet. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation provides data for your VPCs and their subnets. - + integer - __Read-only__ The total number of results. + __Read-only__ The `id` of the VPC configured for this NodeBalancer. + + + + string + A CIDR range for the VPC's IPv4 addresses. The NodeBalancer sources IP addresses from this range when routing traffic to the backend VPC nodes. (example: 10.100.5.100/30) + + + + boolean + Enables the use of a larger `ipv4_range` subnet for multiple NodeBalancers within the same VPC by allocating smaller `/30` subnets for each NodeBalancer's backends. - When set to `true`, the system automatically allocates the smallest possible subnet (`/30`) from the provided `ipv4_range` for the NodeBalancer's backend interface. If the specified range doesn't have enough available IPs to allocate a `/30` subnet, the creation fails. - When set to `false`, the NodeBalancer is created using the entire `ipv4_range` as specified, without attempting to allocate a `/30` subnet. @@ -138,16 +149,16 @@ The following methods are available for this resource: - + - + nodeBalancerId, nodeBalancerVpcConfigId Returns a single VPC configuration for the NodeBalancer ID.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + nodeBalancerId page, page_size Returns a paginated list of VPC configurations for the NodeBalancer.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -167,6 +178,16 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the NodeBalancer. (example: {{nodeBalancerId}}) + + + + string + The VPC configuration `id` for the NodeBalancer. + integer @@ -183,13 +204,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a single VPC configuration for the NodeBalancer ID.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -202,21 +223,26 @@ vpc_id, ipv4_range, ipv4_range_auto_assign FROM linode.nodebalancers.vpc_configs +WHERE nodeBalancerId = '{{ nodeBalancerId }}' -- required +AND nodeBalancerVpcConfigId = '{{ nodeBalancerVpcConfigId }}' -- required ; ```
- + Returns a paginated list of VPC configurations for the NodeBalancer.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +nodebalancer_id, +subnet_id, +vpc_id, +ipv4_range, +ipv4_range_auto_assign FROM linode.nodebalancers.vpc_configs -WHERE page = '{{ page }}' +WHERE nodeBalancerId = '{{ nodeBalancerId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` diff --git a/website/docs/services/object_storage/acl_configurations/index.md b/website/docs/services/object_storage/acl_configurations/index.md index 24cbad3..18bd0bc 100644 --- a/website/docs/services/object_storage/acl_configurations/index.md +++ b/website/docs/services/object_storage/acl_configurations/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an acl_configurations reso ## Overview - +
Nameacl_configurations
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an acl_configurations reso The following fields are returned by `SELECT` queries: - + The Object's canned ACL and policy. @@ -53,7 +54,7 @@ The Object's canned ACL and policy. string - The S3 predefined collection of grantees and permissions set for the bucket, also referred to as a [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl). (example: public-read) + The S3 predefined collection of grantees and permissions set for the bucket, also referred to as a [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl). (private, public-read, authenticated-read, public-read-write, custom) (example: public-read) @@ -81,16 +82,16 @@ The following methods are available for this resource: - + - name + name, regionId, bucket View a specific object's access control list (ACL) settings. ACLs define who can access your buckets and objects and specify the level of access granted to those users.

> 📘
>
> You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#get-object-acl) for more options. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__acl, data__name + regionId, bucket, acl, name Update a specific object's access control list (ACL) settings. ACLs define who can access your buckets and objects, and specify the level of access granted to those users.

> 📘
>
> You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#set-object-acl) for more options. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -110,23 +111,33 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The bucket name. (example: {{bucket}}) + string The name of a specific object to get its access control list (ACL) details. Run the [List Object Storage bucket contents](https://techdocs.akamai.com/linode-api/reference/get-object-storage-bucket-content) operation to access all object names in a bucket. (example: {{name}}) + + + string + Identifies a region where this bucket lives. > 📘 > > You can use a `clusterId` in place of `regionId` in requests for buckets that you created using the legacy version of the API. Run [List clusters](https://techdocs.akamai.com/linode-api/reference/get-object-storage-clusters) to see each cluster `id`. + ## `SELECT` examples - + View a specific object's access control list (ACL) settings. ACLs define who can access your buckets and objects and specify the level of access granted to those users.

> 📘
>
> You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#get-object-acl) for more options. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -136,6 +147,8 @@ acl, acl_xml FROM linode.object_storage.acl_configurations WHERE name = '{{ name }}' -- required +AND regionId = '{{ regionId }}' -- required +AND bucket = '{{ bucket }}' -- required ; ```
@@ -145,23 +158,29 @@ WHERE name = '{{ name }}' -- required ## `REPLACE` examples - + Update a specific object's access control list (ACL) settings. ACLs define who can access your buckets and objects, and specify the level of access granted to those users.

> 📘
>
> You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#set-object-acl) for more options. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.object_storage.acl_configurations SET -data__acl = '{{ acl }}', -data__name = '{{ name }}' +acl = '{{ acl }}', +name = '{{ name }}' WHERE -data__acl = '{{ acl }}' --required -AND data__name = '{{ name }}' --required; +regionId = '{{ regionId }}' --required +AND bucket = '{{ bucket }}' --required +AND acl = '{{ acl }}' --required +AND name = '{{ name }}' --required +RETURNING +bucket, +message, +regionId; ```
diff --git a/website/docs/services/object_storage/bucket_access/index.md b/website/docs/services/object_storage/bucket_access/index.md index 6df976b..111b19f 100644 --- a/website/docs/services/object_storage/bucket_access/index.md +++ b/website/docs/services/object_storage/bucket_access/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a bucket_access resource. ## Overview - +
Namebucket_access
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a bucket_access resource. The following fields are returned by `SELECT` queries: - + Access settings for the specific bucket. @@ -53,7 +54,7 @@ Access settings for the specific bucket. string - The S3 predefined collection of grantees and permissions set for the bucket, also referred to as a [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl). (example: public-read) + The S3 predefined collection of grantees and permissions set for the bucket, also referred to as a [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl). (private, public-read, authenticated-read, public-read-write, custom) (example: public-read) @@ -91,23 +92,23 @@ The following methods are available for this resource: - + - + regionId, bucket View the cross-origin resource sharing (CORS) and [S3 canned access control (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) settings for a specific Object Storage bucket.

> 📘
>
> You can use the S3 API to view more details on [CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) or [S3 canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html) settings. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + regionId, bucket Apply basic cross-origin resource sharing (CORS) and [S3 canned access control list (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) settings.

> 📘
>
> You can use the S3 API for more fine-grained control of the [CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) or [S3 canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html) settings. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + regionId, bucket Update basic cross-origin resource sharing (CORS) and [S3 canned access control list (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) settings.

> 📘
>
> You can use the S3 API for more fine-grained control of the [CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) or [S3 canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html) settings. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -127,18 +128,28 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The bucket name. (example: {{bucket}}) + + + + string + Identifies a region where this bucket lives. > 📘 > > You can use a `clusterId` in place of `regionId` in requests for buckets that you created using the legacy version of the API. Run [List clusters](https://techdocs.akamai.com/linode-api/reference/get-object-storage-clusters) to see each cluster `id`. + ## `SELECT` examples - + View the cross-origin resource sharing (CORS) and [S3 canned access control (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) settings for a specific Object Storage bucket.

> 📘
>
> You can use the S3 API to view more details on [CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) or [S3 canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html) settings. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -149,6 +160,8 @@ acl_xml, cors_enabled, cors_xml FROM linode.object_storage.bucket_access +WHERE regionId = '{{ regionId }}' -- required +AND bucket = '{{ bucket }}' -- required ; ```
@@ -158,45 +171,57 @@ FROM linode.object_storage.bucket_access ## `INSERT` examples - + Apply basic cross-origin resource sharing (CORS) and [S3 canned access control list (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) settings.

> 📘
>
> You can use the S3 API for more fine-grained control of the [CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) or [S3 canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html) settings. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.object_storage.bucket_access ( -data__acl, -data__cors_enabled +acl, +cors_enabled, +regionId, +bucket ) SELECT '{{ acl }}', -{{ cors_enabled }} +{{ cors_enabled }}, +'{{ regionId }}', +'{{ bucket }}' +RETURNING +bucket, +message, +regionId ; ```
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: bucket_access props: + - name: regionId + value: "{{ regionId }}" + description: Required parameter for the bucket_access resource. + - name: bucket + value: "{{ bucket }}" + description: Required parameter for the bucket_access resource. - name: acl - value: string - description: > + value: "{{ acl }}" + description: | The S3 predefined collection of grantees and permissions set for the bucket, also referred to as a [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl). - valid_values: ['private', 'public-read', 'authenticated-read', 'public-read-write', 'custom'] - name: cors_enabled - value: boolean - description: > - If `true`, cross-origin resource sharing (CORS) is enabled for all origins in the bucket. - -``` + value: {{ cors_enabled }} + description: | + If \`true\`, cross-origin resource sharing (CORS) is enabled for all origins in the bucket. +`} +
@@ -204,20 +229,27 @@ SELECT ## `REPLACE` examples - + Update basic cross-origin resource sharing (CORS) and [S3 canned access control list (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) settings.

> 📘
>
> You can use the S3 API for more fine-grained control of the [CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) or [S3 canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html) settings. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.object_storage.bucket_access SET -data__acl = '{{ acl }}', -data__cors_enabled = {{ cors_enabled }}; +acl = '{{ acl }}', +cors_enabled = {{ cors_enabled }} +WHERE +regionId = '{{ regionId }}' --required +AND bucket = '{{ bucket }}' --required +RETURNING +bucket, +message, +regionId; ```
diff --git a/website/docs/services/object_storage/bucket_contents/index.md b/website/docs/services/object_storage/bucket_contents/index.md index 267d720..524011e 100644 --- a/website/docs/services/object_storage/bucket_contents/index.md +++ b/website/docs/services/object_storage/bucket_contents/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a bucket_contents resource ## Overview - +
Namebucket_contents
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a bucket_contents resource The following fields are returned by `SELECT` queries: - + One page of the requested bucket's contents. @@ -51,19 +52,29 @@ One page of the requested bucket's contents. - - array - + + string + The name of this object or prefix. (example: example) + + + + string + An MD-5 hash of the object. `null` if this object represents a prefix. (example: 9f254c71e28e033bf9e0e5262e3e72ab) - - boolean - Designates if there is another page of bucket objects. + + string (date-time) + The date and time this object was last modified. `null` if this object represents a prefix. (example: 2019-01-01T01:23:45) - + string - Returns the value you should pass to the `marker` query parameter to get the next page of objects. If there is no next page, `null` will be returned. (example: bd021c21-e734-4823-97a4-58b41c2cd4c8.892602.184) + The owner of this object, as a UUID. `null` if this object represents a prefix. (example: bfc70ab2-e3d4-42a4-ad55-83921822270c) + + + + integer + The size of this object, in bytes. `null` if this object represents a prefix. @@ -86,9 +97,9 @@ The following methods are available for this resource: - + - + regionId, bucket marker, delimiter, prefix, page_size Returns the contents of a bucket. The contents are paginated using a `marker`, that's the name of the last object on the previous page. Objects can also be filtered by `prefix` and `delimiter`. See [Filtering and sorting](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) for more information.

> 📘
>
> You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#get-object) for more options. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -108,6 +119,16 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The bucket name. (example: {{bucket}}) + + + + string + Identifies a region where this bucket lives. > 📘 > > You can use a `clusterId` in place of `regionId` in requests for buckets that you created using the legacy version of the API. Run [List clusters](https://techdocs.akamai.com/linode-api/reference/get-object-storage-clusters) to see each cluster `id`. + string @@ -134,22 +155,26 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns the contents of a bucket. The contents are paginated using a `marker`, that's the name of the last object on the previous page. Objects can also be filtered by `prefix` and `delimiter`. See [Filtering and sorting](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) for more information.

> 📘
>
> You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#get-object) for more options. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -is_truncated, -next_marker +name, +etag, +last_modified, +owner, +size FROM linode.object_storage.bucket_contents -WHERE marker = '{{ marker }}' +WHERE regionId = '{{ regionId }}' -- required +AND bucket = '{{ bucket }}' -- required +AND marker = '{{ marker }}' AND delimiter = '{{ delimiter }}' AND prefix = '{{ prefix }}' AND page_size = '{{ page_size }}' diff --git a/website/docs/services/object_storage/buckets/index.md b/website/docs/services/object_storage/buckets/index.md index 5ffe515..4e3704f 100644 --- a/website/docs/services/object_storage/buckets/index.md +++ b/website/docs/services/object_storage/buckets/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a buckets resource. ## Overview - +
Namebuckets
Name
TypeResource
Id
@@ -32,14 +33,14 @@ Creates, updates, deletes, gets or lists a buckets resource. The following fields are returned by `SELECT` queries: - + The requested bucket. @@ -65,7 +66,7 @@ The requested bucket. string - The type of `s3_endpoint` available to the active `user` in this `region`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) for more information. (example: E1) + The type of `s3_endpoint` available to the active `user` in this `region`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) for more information. (E0, E1, E2, E3) (example: E1) @@ -100,7 +101,7 @@ The requested bucket. - + A paginated list of buckets on your account in this region. @@ -114,29 +115,54 @@ A paginated list of buckets on your account in this region. - - array - + + string + __Deprecated__ The legacy `clusterId` equivalent for the `regionId` where this bucket lives. The API maintains this for backward compatibility. > 📘 > > - This value and the `regionId` are interchangeable when used in requests. Best practice is to use the `regionId`. > > - This value is empty for newer regions that don't have a legacy `clusterId`. (example: us-east-1) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + When this bucket was created. (example: 2019-01-01T01:23:45) - + + string + The type of `s3_endpoint` available to the active `user` in this `region`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) for more information. (E0, E1, E2, E3) (example: E1) + + + + string + The hostname where this bucket can be accessed. This hostname can be accessed through a browser if the bucket is made public. (example: primary-bucket-1.us-east-12.linodeobjects.com) + + + + string + The name of this bucket. (example: primary-bucket) + + + integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + The number of objects stored in this bucket. - + + string + The `id` of the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where this Object Storage bucket lives. (example: us-east) + + + + string + The active user's S3-compatible endpoint URL, based on the `endpoint_type` and `region`. (example: us-east-12.linodeobjects.com) + + + integer - __Read-only__ The total number of results. + The size of the bucket in bytes. - + A paginated list of buckets you own. @@ -150,24 +176,49 @@ A paginated list of buckets you own. - - array - + + string + __Deprecated__ The legacy `clusterId` equivalent for the `regionId` where this bucket lives. The API maintains this for backward compatibility. > 📘 > > - This value and the `regionId` are interchangeable when used in requests. Best practice is to use the `regionId`. > > - This value is empty for newer regions that don't have a legacy `clusterId`. (example: us-east-1) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + When this bucket was created. (example: 2019-01-01T01:23:45) + + + + string + The type of `s3_endpoint` available to the active `user` in this `region`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) for more information. (E0, E1, E2, E3) (example: E1) + + + + string + The hostname where this bucket can be accessed. This hostname can be accessed through a browser if the bucket is made public. (example: primary-bucket-1.us-east-12.linodeobjects.com) - + + string + The name of this bucket. (example: primary-bucket) + + + integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + The number of objects stored in this bucket. + + + + string + The `id` of the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where this Object Storage bucket lives. (example: us-east) + + + + string + The active user's S3-compatible endpoint URL, based on the `endpoint_type` and `region`. (example: us-east-12.linodeobjects.com) - + integer - __Read-only__ The total number of results. + The size of the bucket in bytes. @@ -190,44 +241,44 @@ The following methods are available for this resource: - + - + regionId, bucket Returns a single Object Storage bucket.

> 📘
>
> You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#get-bucket) for more options. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + regionId Returns a list of buckets on your account, in the specified region.

> 📘
>
> You can use the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#get-bucket) for more options. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + Returns a paginated list of all Object Storage buckets available in your account.

> 📘
>
> You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/serviceops/#list-buckets) for more options. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__label, data__cluster + label - Creates an Object Storage bucket in the specified data center ([region](https://techdocs.akamai.com/linode-api/reference/get-regions)). If the bucket already exists on your account, this operation returns a 200 response with that bucket as if the API just created it.

> 📘
>
> - Accounts with negative balances can't access this operation.
>
> - The API still supports the `clusterId` equivalent (`us-west-1`) when setting a `region` for a new bucket, but you should use the `regionId` (`us-west`) instead.
>
> - You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#put-bucket) for more options. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Creates an Object Storage bucket in the specified data center ([region](https://techdocs.akamai.com/linode-api/reference/get-regions)). If the bucket already exists on your account, this operation returns a 200 response with that bucket as if the API just created it.

> 📘
>
> - Accounts with negative balances can't access this operation.
>
> - The API still supports the `clusterId` equivalent (`us-west-1`) when setting a `region` for a new bucket, but you should use the `regionId` (`us-west`) instead.
>
> - This operation has specific [rate limits](https://techdocs.akamai.com/linode-api/reference/rate-limits#specific-operation-rate-limits).
>
> - You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#put-bucket) for more options. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + regionId, bucket Removes a single bucket.

> 📘
>
> - You need to remove all objects from a bucket before you can delete it. While you can delete a bucket using the [CLI](https://www.linode.com/docs/products/storage/object-storage/guides/s3cmd/#delete-a-bucket), this operation fails if the bucket contains too many objects. The best way to empty large buckets is to configure lifecycle policies with an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/bucketpolicy/#). Set a policy to remove all objects, wait a day or more for the system to remove all objects, then delete the bucket.
>
> - You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#delete-bucket) for more options. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - name, method + regionId, bucket, name, method Creates a pre-signed URL to access a single object in a bucket. Use it to share, create, or delete objects by using the appropriate HTTP method in your request body's `method` parameter.

> 📘
>
> You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/) for more options. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -247,20 +298,30 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The bucket name. (example: {{bucket}}) + + + + string + Identifies a region where this bucket lives. > 📘 > > You can use a `clusterId` in place of `regionId` in requests for buckets that you created using the legacy version of the API. Run [List clusters](https://techdocs.akamai.com/linode-api/reference/get-object-storage-clusters) to see each cluster `id`. + ## `SELECT` examples - + Returns a single Object Storage bucket.

> 📘
>
> You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#get-bucket) for more options. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -276,33 +337,46 @@ region, s3_endpoint, size FROM linode.object_storage.buckets +WHERE regionId = '{{ regionId }}' -- required +AND bucket = '{{ bucket }}' -- required ; ```
- + Returns a list of buckets on your account, in the specified region.

> 📘
>
> You can use the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#get-bucket) for more options. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +cluster, +created, +endpoint_type, +hostname, +label, +objects, +region, +s3_endpoint, +size FROM linode.object_storage.buckets +WHERE regionId = '{{ regionId }}' -- required ; ```
- + Returns a paginated list of all Object Storage buckets available in your account.

> 📘
>
> You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/serviceops/#list-buckets) for more options. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +cluster, +created, +endpoint_type, +hostname, +label, +objects, +region, +s3_endpoint, +size FROM linode.object_storage.buckets ; ``` @@ -313,24 +387,24 @@ FROM linode.object_storage.buckets ## `INSERT` examples - + -Creates an Object Storage bucket in the specified data center ([region](https://techdocs.akamai.com/linode-api/reference/get-regions)). If the bucket already exists on your account, this operation returns a 200 response with that bucket as if the API just created it.

> 📘
>
> - Accounts with negative balances can't access this operation.
>
> - The API still supports the `clusterId` equivalent (`us-west-1`) when setting a `region` for a new bucket, but you should use the `regionId` (`us-west`) instead.
>
> - You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#put-bucket) for more options. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Creates an Object Storage bucket in the specified data center ([region](https://techdocs.akamai.com/linode-api/reference/get-regions)). If the bucket already exists on your account, this operation returns a 200 response with that bucket as if the API just created it.

> 📘
>
> - Accounts with negative balances can't access this operation.
>
> - The API still supports the `clusterId` equivalent (`us-west-1`) when setting a `region` for a new bucket, but you should use the `regionId` (`us-west`) instead.
>
> - This operation has specific [rate limits](https://techdocs.akamai.com/linode-api/reference/rate-limits#specific-operation-rate-limits).
>
> - You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#put-bucket) for more options. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.object_storage.buckets ( -data__acl, -data__cors_enabled, -data__endpoint_type, -data__label, -data__region, -data__s3_endpoint +acl, +cors_enabled, +endpoint_type, +label, +region, +s3_endpoint ) SELECT '{{ acl }}', @@ -354,53 +428,45 @@ size
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: buckets props: - name: acl - value: string - description: > + value: "{{ acl }}" + description: | The S3 predefined collection of grantees and permissions set for the bucket, also referred to as a [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl). - valid_values: ['private', 'public-read', 'authenticated-read', 'public-read-write'] default: private - name: cors_enabled - value: boolean - description: > - If set to `false`, cross-origin resource sharing (CORS) is disabled for all origins in the bucket. - + value: {{ cors_enabled }} + description: | + If set to \`false\`, cross-origin resource sharing (CORS) is disabled for all origins in the bucket. - name: endpoint_type - value: string - description: > - The type of `s3_endpoint` available to the active `user` in this `region`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) for more information. - + value: "{{ endpoint_type }}" + description: | + The type of \`s3_endpoint\` available to the active \`user\` in this \`region\`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) for more information. valid_values: ['E0', 'E1', 'E2', 'E3'] - name: label - value: string - description: > + value: "{{ label }}" + description: | The name for this bucket. - -* A bucket name can contain from 3 to 63 alphanumeric characters, dashes (`-`), or dots (`.`). -* A bucket name can't end in a dash and you can't use two consecutive dashes. -* A bucket name can't start or end in a dot, and you can't use two consecutive dots. As a best practice, only use dots if a certificate you're using with your bucket requires it. (For example, if you're using a custom TLS certificate.) -* A bucket name needs to be unique in the `region` where you're creating the bucket. The API only reserves labels for the `region` where active buckets are created and stored. If you want to reserve this bucket's label in another `region`, create a new bucket with the same label in the new `region`. - + * A bucket name can contain from 3 to 63 alphanumeric characters, dashes (\`-\`), or dots (\`.\`). + * A bucket name can't end in a dash and you can't use two consecutive dashes. + * A bucket name can't start or end in a dot, and you can't use two consecutive dots. As a best practice, only use dots if a certificate you're using with your bucket requires it. (For example, if you're using a custom TLS certificate.) + * A bucket name needs to be unique in the \`region\` where you're creating the bucket. The API only reserves labels for the \`region\` where active buckets are created and stored. If you want to reserve this bucket's label in another \`region\`, create a new bucket with the same label in the new \`region\`. - name: region - value: string - description: > - The `id` assigned to the data center ([region](https://techdocs.akamai.com/linode-api/reference/get-regions)) where this Object Storage bucket should be created. - -> 📘 -> -> This supports legacy `clusterId` values that represented a specific region. For example, `us-east-1` is the legacy reference for the `us-east` region. - + value: "{{ region }}" + description: | + The \`id\` assigned to the data center ([region](https://techdocs.akamai.com/linode-api/reference/get-regions)) where this Object Storage bucket should be created. + > 📘 + > + > This supports legacy \`clusterId\` values that represented a specific region. For example, \`us-east-1\` is the legacy reference for the \`us-east\` region. - name: s3_endpoint - value: string - description: > - The active user's S3-compatible endpoint URL, based on the `endpoint_type` and `region`. - -``` + value: "{{ s3_endpoint }}" + description: | + The active user's S3-compatible endpoint URL, based on the \`endpoint_type\` and \`region\`. +`} +
@@ -408,17 +474,19 @@ size ## `DELETE` examples - + Removes a single bucket.

> 📘
>
> - You need to remove all objects from a bucket before you can delete it. While you can delete a bucket using the [CLI](https://www.linode.com/docs/products/storage/object-storage/guides/s3cmd/#delete-a-bucket), this operation fails if the bucket contains too many objects. The best way to empty large buckets is to configure lifecycle policies with an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/bucketpolicy/#). Set a policy to remove all objects, wait a day or more for the system to remove all objects, then delete the bucket.
>
> - You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#delete-bucket) for more options. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.object_storage.buckets +WHERE regionId = '{{ regionId }}' --required +AND bucket = '{{ bucket }}' --required ; ```
@@ -428,17 +496,19 @@ DELETE FROM linode.object_storage.buckets ## Lifecycle Methods - + Creates a pre-signed URL to access a single object in a bucket. Use it to share, create, or delete objects by using the appropriate HTTP method in your request body's `method` parameter.

> 📘
>
> You can use an outside API, such as the [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/) for more options. __OAuth scopes__.

```
object_storage:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.object_storage.buckets.post_object_storage_object_url +EXEC linode.object_storage.buckets.create_object_url +@regionId='{{ regionId }}' --required, +@bucket='{{ bucket }}' --required @@json= '{ "content_type": "{{ content_type }}", diff --git a/website/docs/services/object_storage/clusters/index.md b/website/docs/services/object_storage/clusters/index.md index 04bdb95..4c9784f 100644 --- a/website/docs/services/object_storage/clusters/index.md +++ b/website/docs/services/object_storage/clusters/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a clusters resource. ## Overview - +
Nameclusters
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a clusters resource. The following fields are returned by `SELECT` queries: - + The requested Cluster. @@ -74,12 +75,12 @@ The requested Cluster. string - This cluster's status. (example: available) + This cluster's status. (available, unavailable) (example: available) - + A paginated list of available clusters. @@ -93,24 +94,29 @@ A paginated list of available clusters. - - array - + + string + The unique ID for this cluster. (example: us-east-1) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + The base URL for this cluster, used for connecting with third-party clients. (example: us-east-1.linodeobjects.com) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + The region where this cluster is located. (example: us-east) - - integer - __Read-only__ The total number of results. + + string + The base URL for this cluster used when hosting static sites. (example: website-us-east-1.linodeobjects.com) + + + + string + This cluster's status. (available, unavailable) (example: available) @@ -133,14 +139,14 @@ The following methods are available for this resource: - + - + clusterId __Deprecated__ Returns a single Object Storage cluster.

> 📘
>
> This displays deprecated `clusterId` values that represent regions used with older versions of the API. It's maintained for backward compatibility. Run [Get a region](https://techdocs.akamai.com/linode-api/reference/get-region) instead.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + @@ -162,19 +168,24 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + Identifies a cluster where this bucket lives. For backward compatibility with Object Storage in this API. > 📘 > > You can use the applicable `regionId`, for example `us-west`, in place of the `clusterId`, for example, `us-west-1`. Run [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) to see all regions. + ## `SELECT` examples - + __Deprecated__ Returns a single Object Storage cluster.

> 📘
>
> This displays deprecated `clusterId` values that represent regions used with older versions of the API. It's maintained for backward compatibility. Run [Get a region](https://techdocs.akamai.com/linode-api/reference/get-region) instead.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -186,19 +197,21 @@ region, static_site_domain, status FROM linode.object_storage.clusters +WHERE clusterId = '{{ clusterId }}' -- required ; ```
- + __Deprecated__ Returns a paginated list of available Object Storage legacy clusters.

> 📘
>
> This displays deprecated `clusterId` values that represent regions used with older versions of the API. It's maintained for backward compatibility. Run [Get a region](https://techdocs.akamai.com/linode-api/reference/get-region) instead.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +domain, +region, +static_site_domain, +status FROM linode.object_storage.clusters ; ``` diff --git a/website/docs/services/object_storage/endpoints/index.md b/website/docs/services/object_storage/endpoints/index.md index 7f02a78..65bb508 100644 --- a/website/docs/services/object_storage/endpoints/index.md +++ b/website/docs/services/object_storage/endpoints/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an endpoints resource. ## Overview - +
Nameendpoints
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an endpoints resource. The following fields are returned by `SELECT` queries: - + A paginated list of endpoints you can access. @@ -53,7 +54,7 @@ A paginated list of endpoints you can access. string - The type of `s3_endpoint` available to the active `user` in this `region`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) for more information. (example: E1) + The type of `s3_endpoint` available to the active `user` in this `region`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) for more information. (E0, E1, E2, E3) (example: E1) @@ -86,11 +87,11 @@ The following methods are available for this resource: - + - Returns a paginated list of all Object Storage endpoints available in your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a paginated list of all Object Storage [endpoints](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) available in your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -114,14 +115,14 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Returns a paginated list of all Object Storage endpoints available in your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of all Object Storage [endpoints](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) available in your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT diff --git a/website/docs/services/object_storage/keys/index.md b/website/docs/services/object_storage/keys/index.md index be4f27a..e10fe30 100644 --- a/website/docs/services/object_storage/keys/index.md +++ b/website/docs/services/object_storage/keys/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a keys resource. ## Overview - +
Namekeys
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a keys resource. The following fields are returned by `SELECT` queries: - + The key pair. @@ -89,7 +90,7 @@ The key pair. - + A paginated list of Object Storage Keys. @@ -103,24 +104,39 @@ A paginated list of Object Storage Keys. - + + integer + This Object Storage key's unique ID. + + + + string + A unique string chosen by the API to identify this key. Used as a username to identify this key when making requests to an S3 API, such as the Amazon S3 API or Ceph Object Gateway S3 API. (example: ABCDEFGHI1JKL2MNOP34) + + + array - + Settings that limit access to specific buckets, each with a specific permission level. See [Create a limited access key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys) for more information. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + The label given to this key. For display purposes only. (example: my-key) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + boolean + Whether this Object Storage key limits access to specific buckets and permissions. Returns `false` if this key grants full access. Specific limitations are set in `bucket_access`. - - integer - __Read-only__ The total number of results. + + array + The key can be used in these regions to manage buckets. + + + + string + This Object Storage key's secret key. Used as a password to validate this key when making requests to an S3 API, such as the Amazon S3 API or Ceph Object Gateway S3 API. > 📘 > > This value is listed as `[REDACTED]` for this operation, to protect it. It's only revealed in a response after [creating](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys) a key. @@ -143,39 +159,39 @@ The following methods are available for this resource: - + + keyId - - Returns a single Object Storage key provisioned for your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a single Object Storage access key.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - Returns a paginated list of Object Storage keys for authentication.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a paginated list of Object Storage access keys for authentication.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - Provisions a new Object Storage key for authentication. A successful request triggers an `obj_access_key_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

> 📘
>
> Accounts with negative balances can't access this operation.

**Create an unlimited access key**

This type of key grants full access to all of your buckets in each region you name, using the `regions` array. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation, verify that each desired region includes `"Object Storage"` among its `capabilities`, and store the `id` value for each. Leave the `bucket_access` array out to create an unlimited access key.

Check out this [example workflow](https://techdocs.akamai.com/linode-api/reference/create-an-unlimited-access-key) for an unlimited access key.

**Create a limited access key**

This type of key lets you name specific buckets where you need to manage content. In the `bucket_access` array, include individual objects for each bucket, comprised of the target `bucket_name`, the `permissions` level for access to the bucket, and the `region` where the bucket lives. Run the [List Object Storage buckets](https://techdocs.akamai.com/linode-api/reference/get-object-storage-buckets) operation and store the `label`, to use as the `bucket_name`, and the `region` for each. With a limited access key, the parent-level `regions` array isn't required.

Check out this [example workflow](https://techdocs.akamai.com/linode-api/reference/create-a-limited-access-key) for a limited access key.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Generates a new Object Storage access key and an associated secret key. The secret key is only displayed when the access key is generated and cannot be viewed again. A successful request triggers an `obj_access_key_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

> 📘
>
> - Accounts with negative balances can't access this operation.
>
> - This operation has specific [rate limits](https://techdocs.akamai.com/linode-api/reference/rate-limits#specific-operation-rate-limits).

**Unlimited vs. limited access keys**

An unlimited access key grants full access to all of your buckets in each region you name, using the `regions` array. A limited access key lets you name specific buckets where you need to manage content, using the `bucket_access` array.

> 👍 There's a tutorial
>
> We offer workflows for both an [unlimited access key](https://techdocs.akamai.com/linode-api/reference/create-an-unlimited-access-key) and a [limited access key](https://techdocs.akamai.com/linode-api/reference/create-a-limited-access-key).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + keyId - - Updates an Object Storage key on your account. A successful request triggers an `obj_access_key_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Updates an Object Storage access key on your account. A successful request triggers an `obj_access_key_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

> 📘
>
> This operation has specific [rate limits](https://techdocs.akamai.com/linode-api/reference/rate-limits#specific-operation-rate-limits).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + keyId - - Revokes an Object Storage Key. This key pair will no longer be usable by third-party clients. A successful request triggers an `obj_access_key_delete` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Revokes an Object Storage access key. Once revoked, the access key can no longer be used by third-party clients. A successful request triggers an `obj_access_key_delete` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

> 📘
>
> This operation has specific [rate limits](https://techdocs.akamai.com/linode-api/reference/rate-limits#specific-operation-rate-limits).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -193,21 +209,26 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The key to look up. + ## `SELECT` examples - + -Returns a single Object Storage key provisioned for your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a single Object Storage access key.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -219,19 +240,23 @@ limited, regions, secret_key FROM linode.object_storage.keys +WHERE keyId = '{{ keyId }}' -- required ; ```
- + -Returns a paginated list of Object Storage keys for authentication.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of Object Storage access keys for authentication.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +access_key, +bucket_access, +label, +limited, +regions, +secret_key FROM linode.object_storage.keys ; ``` @@ -242,22 +267,26 @@ FROM linode.object_storage.keys ## `INSERT` examples - + -Provisions a new Object Storage key for authentication. A successful request triggers an `obj_access_key_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

> 📘
>
> Accounts with negative balances can't access this operation.

**Create an unlimited access key**

This type of key grants full access to all of your buckets in each region you name, using the `regions` array. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation, verify that each desired region includes `"Object Storage"` among its `capabilities`, and store the `id` value for each. Leave the `bucket_access` array out to create an unlimited access key.

Check out this [example workflow](https://techdocs.akamai.com/linode-api/reference/create-an-unlimited-access-key) for an unlimited access key.

**Create a limited access key**

This type of key lets you name specific buckets where you need to manage content. In the `bucket_access` array, include individual objects for each bucket, comprised of the target `bucket_name`, the `permissions` level for access to the bucket, and the `region` where the bucket lives. Run the [List Object Storage buckets](https://techdocs.akamai.com/linode-api/reference/get-object-storage-buckets) operation and store the `label`, to use as the `bucket_name`, and the `region` for each. With a limited access key, the parent-level `regions` array isn't required.

Check out this [example workflow](https://techdocs.akamai.com/linode-api/reference/create-a-limited-access-key) for a limited access key.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Generates a new Object Storage access key and an associated secret key. The secret key is only displayed when the access key is generated and cannot be viewed again. A successful request triggers an `obj_access_key_create` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

> 📘
>
> - Accounts with negative balances can't access this operation.
>
> - This operation has specific [rate limits](https://techdocs.akamai.com/linode-api/reference/rate-limits#specific-operation-rate-limits).

**Unlimited vs. limited access keys**

An unlimited access key grants full access to all of your buckets in each region you name, using the `regions` array. A limited access key lets you name specific buckets where you need to manage content, using the `bucket_access` array.

> 👍 There's a tutorial
>
> We offer workflows for both an [unlimited access key](https://techdocs.akamai.com/linode-api/reference/create-an-unlimited-access-key) and a [limited access key](https://techdocs.akamai.com/linode-api/reference/create-a-limited-access-key).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.object_storage.keys ( - +bucket_access, +label, +regions ) SELECT - +'{{ bucket_access }}', +'{{ label }}', +'{{ regions }}' RETURNING id, access_key, @@ -271,11 +300,24 @@ secret_key
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: keys props: -``` + - name: bucket_access + value: "{{ bucket_access }}" + description: | + Settings that limit access to specific buckets, each with a specific permission level. See [Create a limited access key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys) for more information. + - name: label + value: "{{ label }}" + description: | + The name for the key. For display purposes only. + - name: regions + value: + - "{{ regions }}" + description: | + The key can be used in these regions to manage all buckets. See [Create an unlimited access key](https://techdocs.akamai.com/linode-api/reference/post-object-storage-keys) for more information. +`} +
@@ -283,20 +325,22 @@ secret_key ## `REPLACE` examples - + -Updates an Object Storage key on your account. A successful request triggers an `obj_access_key_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Updates an Object Storage access key on your account. A successful request triggers an `obj_access_key_update` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

> 📘
>
> This operation has specific [rate limits](https://techdocs.akamai.com/linode-api/reference/rate-limits#specific-operation-rate-limits).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.object_storage.keys SET -data__label = '{{ label }}', -data__regions = '{{ regions }}' +label = '{{ label }}', +regions = '{{ regions }}' +WHERE +keyId = '{{ keyId }}' --required RETURNING id, access_key, @@ -312,17 +356,18 @@ secret_key; ## `DELETE` examples - + -Revokes an Object Storage Key. This key pair will no longer be usable by third-party clients. A successful request triggers an `obj_access_key_delete` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Revokes an Object Storage access key. Once revoked, the access key can no longer be used by third-party clients. A successful request triggers an `obj_access_key_delete` [event](https://techdocs.akamai.com/linode-api/reference/get-events).

> 📘
>
> This operation has specific [rate limits](https://techdocs.akamai.com/linode-api/reference/rate-limits#specific-operation-rate-limits).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.object_storage.keys +WHERE keyId = '{{ keyId }}' --required ; ```
diff --git a/website/docs/services/object_storage/object_storage/index.md b/website/docs/services/object_storage/object_storage/index.md index b07dd3c..cb1addd 100644 --- a/website/docs/services/object_storage/object_storage/index.md +++ b/website/docs/services/object_storage/object_storage/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an object_storage resource ## Overview - +
Nameobject_storage
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an object_storage resource The following fields are returned by `SELECT` queries: - + Returns the amount of outbound data transfer used by your account's Object Storage buckets. @@ -76,14 +77,14 @@ The following methods are available for this resource: - + The amount of outbound data transfer used by your account's Object Storage buckets. Object Storage adds 1 terabyte of outbound data transfer to your data transfer pool. See the [Object Storage Overview](https://www.linode.com/docs/products/storage/object-storage/#pricing) guide for details on Object Storage transfer quotas. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + @@ -111,12 +112,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + The amount of outbound data transfer used by your account's Object Storage buckets. Object Storage adds 1 terabyte of outbound data transfer to your data transfer pool. See the [Object Storage Overview](https://www.linode.com/docs/products/storage/object-storage/#pricing) guide for details on Object Storage transfer quotas. __OAuth scopes__.

```
object_storage:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)

-

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -133,17 +134,17 @@ FROM linode.object_storage.object_storage ## Lifecycle Methods - + Cancel Object Storage on an Account.

> 🚧
>
> This removes all buckets and their contents from your Account. This data is irretrievable once removed.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.object_storage.object_storage.post_cancel_object_storage +EXEC linode.object_storage.object_storage.cancel ; ``` diff --git a/website/docs/services/object_storage/quota_usage/index.md b/website/docs/services/object_storage/quota_usage/index.md index 1e96e6a..07660b2 100644 --- a/website/docs/services/object_storage/quota_usage/index.md +++ b/website/docs/services/object_storage/quota_usage/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a quota_usage resource. ## Overview - +
Namequota_usage
Name
TypeResource
Id
@@ -32,14 +33,14 @@ Creates, updates, deletes, gets or lists a quota_usage resource. The following fields are returned by `SELECT` queries: - + -Usage data for the specified `object-storage-quotaId`. +Usage data for the specified `objQuotaId`. @@ -53,7 +54,7 @@ Usage data for the specified `object-storage-quotaId`. - + @@ -81,11 +82,11 @@ The following methods are available for this resource: - + + - - +
integerThe availability limit for a specific Object Storage resource (`object-storage-quotaId`) for a single endpoint.The availability limit for a specific Object Storage resource (`objQuotaId`) for a single endpoint.
objQuotaId Returns usage data for a specific `object-storage-quotaId`. This includes the maximum number of `object-storage-quotaId` resources you can have for a single endpoint and the current usage for that resource.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
Returns usage data for a specific `objQuotaId`. This includes the maximum number of `objQuotaId` resources you can have for a single endpoint and the current usage for that resource.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
@@ -103,26 +104,32 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The unique string that identifies the specific Object Storage-related quota to look up. This follows the pattern, `obj--`, for example, `obj-buckets-eu-central-1.linodeobjects.com`. + ## `SELECT` examples - + -Returns usage data for a specific `object-storage-quotaId`. This includes the maximum number of `object-storage-quotaId` resources you can have for a single endpoint and the current usage for that resource.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns usage data for a specific `objQuotaId`. This includes the maximum number of `objQuotaId` resources you can have for a single endpoint and the current usage for that resource.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT quota_limit, usage FROM linode.object_storage.quota_usage +WHERE objQuotaId = '{{ objQuotaId }}' -- required ; ```
diff --git a/website/docs/services/object_storage/quotas/index.md b/website/docs/services/object_storage/quotas/index.md index 45f7048..a946f91 100644 --- a/website/docs/services/object_storage/quotas/index.md +++ b/website/docs/services/object_storage/quotas/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a quotas resource. ## Overview - +
Namequotas
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a quotas resource. The following fields are returned by `SELECT` queries: - + A single Object Storage-related quota for your account. @@ -59,7 +60,7 @@ A single Object Storage-related quota for your account. string - __Filterable__ The name of the Object Storage-related quota. This is how the quota displays in Akamai Cloud Manager. This can be `Number of Buckets`, `Number of Objects`, or `Total Capacity`. (example: Number of Buckets) + __Filterable__ The name of the Object Storage-related quota. This is how the quota displays in Akamai Cloud Manager. This can be `Number of Buckets`, `Number of Objects`, or `Total Capacity`. (Number of Objects, Number of Buckets, Total Capacity) (example: Number of Buckets) @@ -69,7 +70,7 @@ A single Object Storage-related quota for your account. string - The type of `s3_endpoint`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) for more information. (example: E1) + The type of `s3_endpoint`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) for more information. (E0, E1, E2, E3) (example: E1) @@ -79,7 +80,7 @@ A single Object Storage-related quota for your account. string - The specific Object Storage-based resource for the quota. A quota maximum may apply as follows: - The Object Storage `bucket` quota for a single `s3_endpoint` - The `object` quota for a single `s3_endpoint` - The `byte` count quota for content in a single `s3_endpoint` (example: bucket) + The specific Object Storage-based resource for the quota. A quota maximum may apply as follows: - The Object Storage `bucket` quota for a single `s3_endpoint` - The `object` quota for a single `s3_endpoint` - The `byte` count quota for content in a single `s3_endpoint` (bucket, object, byte) (example: bucket) @@ -89,7 +90,7 @@ A single Object Storage-related quota for your account. - + A paginated list of Object Storage-related quotas applied to your account. @@ -110,7 +111,7 @@ A paginated list of Object Storage-related quotas applied to your account. string - __Filterable__ The name of the Object Storage-related quota. This is how the quota displays in Akamai Cloud Manager. This can be `Number of Buckets`, `Number of Objects`, or `Total Capacity`. (example: Number of Buckets) + __Filterable__ The name of the Object Storage-related quota. This is how the quota displays in Akamai Cloud Manager. This can be `Number of Buckets`, `Number of Objects`, or `Total Capacity`. (Number of Objects, Number of Buckets, Total Capacity) (example: Number of Buckets) @@ -120,7 +121,7 @@ A paginated list of Object Storage-related quotas applied to your account. string - The type of `s3_endpoint`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) for more information. (example: E1) + The type of `s3_endpoint`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-types) for more information. (E0, E1, E2, E3) (example: E1) @@ -130,7 +131,7 @@ A paginated list of Object Storage-related quotas applied to your account. string - The specific Object Storage-based resource for the quota. A quota maximum may apply as follows: - The Object Storage `bucket` quota for a single `s3_endpoint` - The `object` quota for a single `s3_endpoint` - The `byte` count quota for content in a single `s3_endpoint` (example: bucket) + The specific Object Storage-based resource for the quota. A quota maximum may apply as follows: - The Object Storage `bucket` quota for a single `s3_endpoint` - The `object` quota for a single `s3_endpoint` - The `byte` count quota for content in a single `s3_endpoint` (bucket, object, byte) (example: bucket) @@ -158,18 +159,18 @@ The following methods are available for this resource: - + - + objQuotaId Returns information about a specific Object Storage-related quota on your account. The operation includes any quota overrides in the response.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - Returns the active Object Storage-related quotas applied to your account. For example, you may have a quota maximum for the number of buckets you can have on a single endpoint. The operation includes any quota overrides in the response.

> 📘
>
> You can't combine parameters when [filtering](https://techdocs.akamai.com/linode-api/reference//filtering-and-sorting) with this operation. Only a single filterable parameter can be used.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns the active Object Storage-related quotas applied to your account. For example, you may have a quota maximum for the number of buckets you can have on a single endpoint. The operation includes any quota overrides in the response.

> 📘
>
> You can't combine parameters when [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) with this operation. Only a single filterable parameter can be used.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -187,19 +188,24 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The unique string that identifies the specific Object Storage-related quota to look up. This follows the pattern, `obj--`, for example, `obj-buckets-eu-central-1.linodeobjects.com`. + ## `SELECT` examples - + Returns information about a specific Object Storage-related quota on your account. The operation includes any quota overrides in the response.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -213,12 +219,13 @@ quota_limit, resource_metric, s3_endpoint FROM linode.object_storage.quotas +WHERE objQuotaId = '{{ objQuotaId }}' -- required ; ```
- + -Returns the active Object Storage-related quotas applied to your account. For example, you may have a quota maximum for the number of buckets you can have on a single endpoint. The operation includes any quota overrides in the response.

> 📘
>
> You can't combine parameters when [filtering](https://techdocs.akamai.com/linode-api/reference//filtering-and-sorting) with this operation. Only a single filterable parameter can be used.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns the active Object Storage-related quotas applied to your account. For example, you may have a quota maximum for the number of buckets you can have on a single endpoint. The operation includes any quota overrides in the response.

> 📘
>
> You can't combine parameters when [filtering](https://techdocs.akamai.com/linode-api/reference/filtering-and-sorting) with this operation. Only a single filterable parameter can be used.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT diff --git a/website/docs/services/object_storage/ssl_certificates/index.md b/website/docs/services/object_storage/ssl_certificates/index.md index 20d52ea..8144e4b 100644 --- a/website/docs/services/object_storage/ssl_certificates/index.md +++ b/website/docs/services/object_storage/ssl_certificates/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a ssl_certificates resourc ## Overview - +
Namessl_certificates
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a ssl_certificates resourc The following fields are returned by `SELECT` queries: - + Returns a boolean value indicating if this bucket has a corresponding TLS/SSL certificate that was uploaded by an Account user. @@ -76,23 +77,23 @@ The following methods are available for this resource: - + - + regionId, bucket Returns a boolean value indicating if this bucket has a corresponding TLS/SSL certificate that was uploaded by an Account user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__certificate, data__private_key + regionId, bucket, certificate, private_key Upload a TLS/SSL certificate and private key to be served when you visit your Object Storage bucket via HTTPS. Your TLS/SSL certificate and private key are stored encrypted at rest.

To replace an expired certificate, [delete your current certificates](https://techdocs.akamai.com/linode-api/reference/delete-object-storage-ssl) and upload a new one.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + regionId, bucket Deletes this Object Storage bucket's user uploaded TLS/SSL certificate and private key.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -112,18 +113,28 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The bucket name. (example: {{bucket}}) + + + + string + Identifies a region where this bucket lives. > 📘 > > You can use a `clusterId` in place of `regionId` in requests for buckets that you created using the legacy version of the API. Run [List clusters](https://techdocs.akamai.com/linode-api/reference/get-object-storage-clusters) to see each cluster `id`. + ## `SELECT` examples - + Returns a boolean value indicating if this bucket has a corresponding TLS/SSL certificate that was uploaded by an Account user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -131,6 +142,8 @@ Returns a boolean value indicating if this bucket has a corresponding TLS/SSL ce SELECT ssl FROM linode.object_storage.ssl_certificates +WHERE regionId = '{{ regionId }}' -- required +AND bucket = '{{ bucket }}' -- required ; ```
@@ -140,24 +153,28 @@ FROM linode.object_storage.ssl_certificates ## `INSERT` examples - + Upload a TLS/SSL certificate and private key to be served when you visit your Object Storage bucket via HTTPS. Your TLS/SSL certificate and private key are stored encrypted at rest.

To replace an expired certificate, [delete your current certificates](https://techdocs.akamai.com/linode-api/reference/delete-object-storage-ssl) and upload a new one.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.object_storage.ssl_certificates ( -data__certificate, -data__private_key +certificate, +private_key, +regionId, +bucket ) SELECT '{{ certificate }}' /* required */, -'{{ private_key }}' /* required */ +'{{ private_key }}' /* required */, +'{{ regionId }}', +'{{ bucket }}' RETURNING ssl ; @@ -165,25 +182,27 @@ ssl
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: ssl_certificates props: + - name: regionId + value: "{{ regionId }}" + description: Required parameter for the ssl_certificates resource. + - name: bucket + value: "{{ bucket }}" + description: Required parameter for the ssl_certificates resource. - name: certificate - value: string - description: > + value: "{{ certificate }}" + description: | Your Base64 encoded and PEM formatted SSL certificate. - -Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI) - + Line breaks must be represented as \`\n\` in the string for requests (but not when using the Linode CLI) - name: private_key - value: string - description: > + value: "{{ private_key }}" + description: | The private key associated with this TLS/SSL certificate. + Line breaks must be represented as \`\n\` in the string for requests (but not when using the Linode CLI) +`} -Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI) - -```
@@ -191,17 +210,19 @@ Line breaks must be represented as `\n` in the string for requests (but not when ## `DELETE` examples - + Deletes this Object Storage bucket's user uploaded TLS/SSL certificate and private key.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.object_storage.ssl_certificates +WHERE regionId = '{{ regionId }}' --required +AND bucket = '{{ bucket }}' --required ; ```
diff --git a/website/docs/services/object_storage/types/index.md b/website/docs/services/object_storage/types/index.md index b4586bb..c624ab2 100644 --- a/website/docs/services/object_storage/types/index.md +++ b/website/docs/services/object_storage/types/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a types resource. ## Overview - +
Nametypes
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a types resource. The following fields are returned by `SELECT` queries: - + A collection of Object Storage types. @@ -51,24 +52,29 @@ A collection of Object Storage types. - - array - The Object Storage types. + + string + __Read-only__ The ID representing the Object Storage type. (example: objectstorage) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__, __Read-only__ The Object Storage type label is for display purposes only. (example: Object Storage) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + __Read-only__ The default cost of this Object Storage type. Prices are in US dollars, broken down into hourly and monthly charges. Certain regions have different prices from the default. For region-specific prices, see `region_prices`. + + + + array + - + integer - __Read-only__ The total number of results. + __Filterable__, __Read-only__ The monthly outbound transfer amount, in MB. @@ -91,7 +97,7 @@ The following methods are available for this resource: - + @@ -119,21 +125,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns Object Storage types and prices, including any region-specific rates.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +label, +price, +region_prices, +transfer FROM linode.object_storage.types ; ``` diff --git a/website/docs/services/placement/placement_groups/index.md b/website/docs/services/placement/placement_groups/index.md index 58fdf00..18bfdd9 100644 --- a/website/docs/services/placement/placement_groups/index.md +++ b/website/docs/services/placement/placement_groups/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a placement_groups resourc ## Overview - +
Nameplacement_groups
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a placement_groups resourc The following fields are returned by `SELECT` queries: - + Returns a single placement group object. @@ -79,12 +80,12 @@ Returns a single placement group object. string - How requests to add future compute instances to your placement group are handled, and whether it remains compliant: - `strict`. Don't assign a new compute instance if it breaks the grouped-together or spread-apart model set by the `placement_group_type`. Use this to ensure the placement group stays compliant (`is_compliant: true`). - `flexible`. Assign a new compute instance, even if it breaks the grouped-together or spread-apart model set by the `placement_group_type`. This makes the group non-compliant (`is_compliant: false`). You need to wait for Akamai to move the offending compute instance to make it compliant again, once the necessary capacity is available in the region. Offers flexibility to add future compute instances if compliance isn't an immediate concern. <<LB>> > 📘 > > In rare cases, non-compliance can occur with a `strict` placement group if Akamai needs to failover or migrate your compute instances for maintenance. Fixing non-compliance for a `strict` placement group is prioritized over a `flexible` group. (example: strict) + How requests to add future compute instances to your placement group are handled, and whether it remains compliant: - `strict`. Don't assign a new compute instance if it breaks the grouped-together or spread-apart model set by the `placement_group_type`. Use this to ensure the placement group stays compliant (`is_compliant: true`). - `flexible`. Assign a new compute instance, even if it breaks the grouped-together or spread-apart model set by the `placement_group_type`. This makes the group non-compliant (`is_compliant: false`). You need to wait for Akamai to move the offending compute instance to make it compliant again, once the necessary capacity is available in the region. Offers flexibility to add future compute instances if compliance isn't an immediate concern. <<LB>> > 📘 > > In rare cases, non-compliance can occur with a `strict` placement group if Akamai needs to failover or migrate your compute instances for maintenance. Fixing non-compliance for a `strict` placement group is prioritized over a `flexible` group. (strict, flexible) (example: strict) string - __Filterable__, __Read-only__ How compute instances are distributed in your placement group. A `placement_group_type` using anti-affinity (`anti-affinity:local`) places compute instances in separate hosts, but still in the same region. This best supports the spread-apart model for high availability. A `placement_group_type` using affinity places compute instances physically close together, possibly on the same host. This supports the grouped-together model for low-latency. > 📘 > > Currently, only `anti_affinity:local` is available for `placement_group_type`. (example: anti-affinity:local) + __Filterable__, __Read-only__ How compute instances are distributed in your placement group. A `placement_group_type` using anti-affinity (`anti-affinity:local`) places compute instances in separate hosts, but still in the same region. This best supports the spread-apart model for high availability. A `placement_group_type` using affinity places compute instances physically close together, possibly on the same host. This supports the grouped-together model for low-latency. > 📘 > > Currently, only `anti_affinity:local` is available for `placement_group_type`. (anti_affinity:local) (example: anti-affinity:local) @@ -94,7 +95,7 @@ Returns a single placement group object. - + Returns an array of all placement groups on your Account. @@ -108,24 +109,44 @@ Returns an array of all placement groups on your Account. - + + integer + The placement group's ID. You need to provide it for all operations that affect it. + + + + boolean + Whether all of the compute instances in your placement group are compliant. If `true`, all compute instances meet either the grouped-together or spread-apart model, which you determine through your selected `placement_group_type`. If `false`, a compute instance is out of this compliance. For example, assume you've set `anti-affinity:local` as your `placement_group_type` and your group already has three qualifying compute instances on separate hosts, to support the spread-apart model. If a fourth compute instance is assigned that's on the same host as one of the existing three, the placement group is non-compliant. Enforce compliance in your group by setting a `placement_group_policy`. > 📘 > > Fixing compliance is not self-service. You need to wait for our assistance to physically move compute instances to make the group compliant again. + + + + string + __Filterable__ The unique name set for the placement group. A label has these constraints: - It needs to begin and end with an alphanumeric character. - It can only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`). (example: PG_Miami_failover) + + + array - + An array of compute instances included in the placement group. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + Any compute instances that are being migrated to or from the placement group. Returned as `null` if no migrations are taking place. - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + How requests to add future compute instances to your placement group are handled, and whether it remains compliant: - `strict`. Don't assign a new compute instance if it breaks the grouped-together or spread-apart model set by the `placement_group_type`. Use this to ensure the placement group stays compliant (`is_compliant: true`). - `flexible`. Assign a new compute instance, even if it breaks the grouped-together or spread-apart model set by the `placement_group_type`. This makes the group non-compliant (`is_compliant: false`). You need to wait for Akamai to move the offending compute instance to make it compliant again, once the necessary capacity is available in the region. Offers flexibility to add future compute instances if compliance isn't an immediate concern. <<LB>> > 📘 > > In rare cases, non-compliance can occur with a `strict` placement group if Akamai needs to failover or migrate your compute instances for maintenance. Fixing non-compliance for a `strict` placement group is prioritized over a `flexible` group. (strict, flexible) (example: strict) - - integer - __Read-only__ The total number of results. + + string + __Filterable__, __Read-only__ How compute instances are distributed in your placement group. A `placement_group_type` using anti-affinity (`anti-affinity:local`) places compute instances in separate hosts, but still in the same region. This best supports the spread-apart model for high availability. A `placement_group_type` using affinity places compute instances physically close together, possibly on the same host. This supports the grouped-together model for low-latency. > 📘 > > Currently, only `anti_affinity:local` is available for `placement_group_type`. (anti_affinity:local) (example: anti-affinity:local) + + + + string + __Filterable__, __Read-only__ The [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where the placement group was deployed. (example: us-mia) @@ -148,51 +169,51 @@ The following methods are available for this resource: - + - + groupId View a specific placement group by ID.

> 📘
>
> Your user needs at least `read-only` [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to all Linodes included in a placement group to view it. If you don't have this access and call this operation, the API returns a 403 error. Talk to your local account administrator about managing permissions.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Returns a paginated list of placement groups you have permission to view.

> 📘
>
> Your user needs at least `read-only` [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to all Linodes included in a placement group to view it. Placement groups that contain Linodes that you don't have this permission for are left out of the response. If all placement groups contain Linodes that lack this permission, the API returns a 403 error. Talk to your local account administrator about managing permissions.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__placement_group_type, data__placement_group_policy, data__label, data__region + placement_group_type, placement_group_policy, label, region - Creates a placement group on your account. Placement groups disperse your Linodes across physical machines (hosts) in one of our compute regions. Depending on your workload requirements, you may need your Linodes to follow specific strategies:

- __Grouped together__. You may want them placed close together to reduce latency between Linodes that are used for an application or workload.

- __Spread apart__. You may want to disperse them across several hosts to support high availability, for example when required for failover.

We offer an [example API workflow](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups#use-the-api) you can follow to create a placement group.

> 📘
>
> To run this operation, your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants). Talk to your local account administrator about grant management for your user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Creates a placement group on your account. Placement groups disperse your Linodes across physical machines (hosts) in one of our compute regions. Depending on your workload requirements, you may need your Linodes to follow specific strategies:

- __Grouped together__. You may want them placed close together to reduce latency between Linodes that are used for an application or workload.

- __Spread apart__. You may want to disperse them across several hosts to support high availability, for example when required for failover.

To run this operation, your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants). Talk to your local account administrator about grant management for your user.

> 👍 There's a tutorial
>
> We offer an example API [workflow](https://techdocs.akamai.com/linode-api/reference/create-a-placement-group) you can follow to create a placement group and add Linodes to it.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + groupId Change the `label` for a specific placement group. This is the only value you can update. However, you can [add](https://techdocs.akamai.com/linode-api/reference/post-group-add-linode) more Linodes or [remove](https://techdocs.akamai.com/linode-api/reference/post-group-unassign) existing ones.

> 📘
>
> To update a placement group, your [user grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) need to include `read_write` permission to all of the Linodes in the group. Talk to your local account administrator about grant management for your user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + groupId Deletes a placement group you have permission to `read_write`.

- Deleting a placement group can't be undone.

- All Linodes need to be [removed](https://techdocs.akamai.com/linode-api/reference/post-group-unassign) before you can delete a placement group.

- If your placement group is non-compliant, you can't delete it. You need to wait for our help to bring it [compliant](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/#non-compliance-precedence).

<<LB>>

> 📘
>
> To run this operation, your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants). Talk to your local account administrator about grant management for your user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + groupId - - Add a Linode to your placement group. Check out our [example API workflow](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups#use-the-api) to create a placement group and add Linodes.

> 📘
>
> To run this operation, your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) and `read-write` [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to the Linodes you want to add to the group. Talk to your local account administrator about grant and permissions management.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Add a Linode to your placement group. Check out our [example API workflow](https://techdocs.akamai.com/linode-api/reference/create-a-placement-group) to create a placement group and add Linodes.

> 📘
>
> Your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) and `read-write` [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to the Linodes you want to add to the group. Talk to your local account administrator about grant and permissions management.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + groupId Remove a Linode from your placement group.

> 📘
>
> To run this operation, your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) and `read-write` [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to the Linodes you want to remove from the group. Talk to your local account administrator about grant and permissions management.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -212,6 +233,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + ID of the placement group to look up. Run the [List placement groups](https://techdocs.akamai.com/linode-api/reference/get-placement-groups) operation and store the `id` for the applicable placement group. + integer @@ -228,13 +254,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + View a specific placement group by ID.

> 📘
>
> Your user needs at least `read-only` [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to all Linodes included in a placement group to view it. If you don't have this access and call this operation, the API returns a 403 error. Talk to your local account administrator about managing permissions.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -249,19 +275,24 @@ placement_group_policy, placement_group_type, region FROM linode.placement.placement_groups +WHERE groupId = '{{ groupId }}' -- required ; ```
- + Returns a paginated list of placement groups you have permission to view.

> 📘
>
> Your user needs at least `read-only` [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to all Linodes included in a placement group to view it. Placement groups that contain Linodes that you don't have this permission for are left out of the response. If all placement groups contain Linodes that lack this permission, the API returns a 403 error. Talk to your local account administrator about managing permissions.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +is_compliant, +label, +members, +migrations, +placement_group_policy, +placement_group_type, +region FROM linode.placement.placement_groups WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -274,22 +305,22 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + -Creates a placement group on your account. Placement groups disperse your Linodes across physical machines (hosts) in one of our compute regions. Depending on your workload requirements, you may need your Linodes to follow specific strategies:

- __Grouped together__. You may want them placed close together to reduce latency between Linodes that are used for an application or workload.

- __Spread apart__. You may want to disperse them across several hosts to support high availability, for example when required for failover.

We offer an [example API workflow](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups#use-the-api) you can follow to create a placement group.

> 📘
>
> To run this operation, your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants). Talk to your local account administrator about grant management for your user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Creates a placement group on your account. Placement groups disperse your Linodes across physical machines (hosts) in one of our compute regions. Depending on your workload requirements, you may need your Linodes to follow specific strategies:

- __Grouped together__. You may want them placed close together to reduce latency between Linodes that are used for an application or workload.

- __Spread apart__. You may want to disperse them across several hosts to support high availability, for example when required for failover.

To run this operation, your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants). Talk to your local account administrator about grant management for your user.

> 👍 There's a tutorial
>
> We offer an example API [workflow](https://techdocs.akamai.com/linode-api/reference/create-a-placement-group) you can follow to create a placement group and add Linodes to it.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.placement.placement_groups ( -data__label, -data__placement_group_policy, -data__placement_group_type, -data__region +label, +placement_group_policy, +placement_group_type, +region ) SELECT '{{ label }}' /* required */, @@ -309,47 +340,39 @@ region
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: placement_groups props: - name: label - value: string - description: > - A unique name for the placement group. A placement group `label` has the following constraints: - -- It needs to begin and end with an alphanumeric character. -- It can only consist of alphanumeric characters, hyphens (`-`), underscores (`_`), or periods (`.`). - + value: "{{ label }}" + description: | + A unique name for the placement group. A placement group \`label\` has the following constraints: + - It needs to begin and end with an alphanumeric character. + - It can only consist of alphanumeric characters, hyphens (\`-\`), underscores (\`_\`), or periods (\`.\`). - name: placement_group_policy - value: string - description: > + value: "{{ placement_group_policy }}" + description: | How requests to add future compute instances to your placement group are handled: - -- `strict`. Don't add a compute instance if it breaks the grouped-together or spread-apart model set by your `placement_group_type`. For example, with `anti-affinity:local` as your `placement_group_type`, assume it already has three qualifying compute instances on separate hosts, to support the spread-apart model. If a fourth compute instance is assigned that's on the same host as one of the existing three, an error is thrown and the system won't add it. Ensures the placement group stays compliant with your selected model. -- `flexible`. Add a new compute instance, even if it breaks the grouped-together or spread-apart model set by your `placement_group_type`. Breaking the model makes the placement group non-compliant. You need to wait for Akamai to move the offending compute instances to make the group compliant again, once the necessary capacity is available in the region. Offers flexibility to add future compute instances if compliance isn't an immediate concern. - -> 📘 -> -> Once you create a placement group, you can't change its `placement_group_policy` setting. - + - \`strict\`. Don't add a compute instance if it breaks the grouped-together or spread-apart model set by your \`placement_group_type\`. For example, with \`anti-affinity:local\` as your \`placement_group_type\`, assume it already has three qualifying compute instances on separate hosts, to support the spread-apart model. If a fourth compute instance is assigned that's on the same host as one of the existing three, an error is thrown and the system won't add it. Ensures the placement group stays compliant with your selected model. + - \`flexible\`. Add a new compute instance, even if it breaks the grouped-together or spread-apart model set by your \`placement_group_type\`. Breaking the model makes the placement group non-compliant. You need to wait for Akamai to move the offending compute instances to make the group compliant again, once the necessary capacity is available in the region. Offers flexibility to add future compute instances if compliance isn't an immediate concern. + > 📘 + > + > Once you create a placement group, you can't change its \`placement_group_policy\` setting. valid_values: ['strict', 'flexible'] - name: placement_group_type - value: string - description: > - How compute instances are distributed in your placement group. A `placement_group_type` using anti-affinity (`anti-affinity:local`) places compute instances in separate hosts, but still in the same region. This best supports the spread-apart model for high availability. A `placement_group_type` using affinity places compute instances physically close together, possibly on the same host. This supports the grouped-together model for low-latency. - -> 📘 -> -> Currently, only `anti_affinity:local` is available for `placement_group_type`. - + value: "{{ placement_group_type }}" + description: | + How compute instances are distributed in your placement group. A \`placement_group_type\` using anti-affinity (\`anti-affinity:local\`) places compute instances in separate hosts, but still in the same region. This best supports the spread-apart model for high availability. A \`placement_group_type\` using affinity places compute instances physically close together, possibly on the same host. This supports the grouped-together model for low-latency. + > 📘 + > + > Currently, only \`anti_affinity:local\` is available for \`placement_group_type\`. valid_values: ['anti_affinity:local'] - name: region - value: string - description: > - The data center that houses the compute instances you want to add to your placement group. Run the [List Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances) operation to view your compute instances and store the `region` identifier. - -``` + value: "{{ region }}" + description: | + The data center that houses the compute instances you want to add to your placement group. Run the [List Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances) operation to view your compute instances and store the \`region\` identifier. +`} +
@@ -357,19 +380,21 @@ region ## `REPLACE` examples - + Change the `label` for a specific placement group. This is the only value you can update. However, you can [add](https://techdocs.akamai.com/linode-api/reference/post-group-add-linode) more Linodes or [remove](https://techdocs.akamai.com/linode-api/reference/post-group-unassign) existing ones.

> 📘
>
> To update a placement group, your [user grants](https://techdocs.akamai.com/linode-api/reference/get-user-grants) need to include `read_write` permission to all of the Linodes in the group. Talk to your local account administrator about grant management for your user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.placement.placement_groups SET -data__label = '{{ label }}' +label = '{{ label }}' +WHERE +groupId = '{{ groupId }}' --required RETURNING id, is_compliant, @@ -386,17 +411,18 @@ region; ## `DELETE` examples - + Deletes a placement group you have permission to `read_write`.

- Deleting a placement group can't be undone.

- All Linodes need to be [removed](https://techdocs.akamai.com/linode-api/reference/post-group-unassign) before you can delete a placement group.

- If your placement group is non-compliant, you can't delete it. You need to wait for our help to bring it [compliant](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/#non-compliance-precedence).

<<LB>>

> 📘
>
> To run this operation, your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants). Talk to your local account administrator about grant management for your user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.placement.placement_groups +WHERE groupId = '{{ groupId }}' --required ; ```
@@ -406,18 +432,19 @@ DELETE FROM linode.placement.placement_groups ## Lifecycle Methods - + -Add a Linode to your placement group. Check out our [example API workflow](https://techdocs.akamai.com/cloud-computing/docs/work-with-placement-groups#use-the-api) to create a placement group and add Linodes.

> 📘
>
> To run this operation, your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) and `read-write` [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to the Linodes you want to add to the group. Talk to your local account administrator about grant and permissions management.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Add a Linode to your placement group. Check out our [example API workflow](https://techdocs.akamai.com/linode-api/reference/create-a-placement-group) to create a placement group and add Linodes.

> 📘
>
> Your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) and `read-write` [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to the Linodes you want to add to the group. Talk to your local account administrator about grant and permissions management.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.placement.placement_groups.post_group_add_linode +EXEC linode.placement.placement_groups.assign +@groupId='{{ groupId }}' --required @@json= '{ "linodes": "{{ linodes }}" @@ -425,12 +452,13 @@ EXEC linode.placement.placement_groups.post_group_add_linode ; ```
- + Remove a Linode from your placement group.

> 📘
>
> To run this operation, your user needs the `add_linodes` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) and `read-write` [permission](https://techdocs.akamai.com/linode-api/reference/get-user-grants) to the Linodes you want to remove from the group. Talk to your local account administrator about grant and permissions management.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.placement.placement_groups.post_group_unassign +EXEC linode.placement.placement_groups.unassign +@groupId='{{ groupId }}' --required @@json= '{ "linodes": "{{ linodes }}" diff --git a/website/docs/services/profile/apps/index.md b/website/docs/services/profile/apps/index.md index 175fe08..60cafd9 100644 --- a/website/docs/services/profile/apps/index.md +++ b/website/docs/services/profile/apps/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an apps resource. ## Overview - +
Nameapps
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an apps resource. The following fields are returned by `SELECT` queries: - + The app requested. @@ -89,7 +90,7 @@ The app requested. - + A paginated list of apps you've authorized. @@ -103,24 +104,39 @@ A paginated list of apps you've authorized. - - array - + + integer + __Read-only__ This authorization's ID, used for revoking access. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Filterable__, __Read-only__ When this app was authorized. (example: 2018-01-01T00:01:01) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Filterable__, __Read-only__ When the app's access to your account expires. If `null`, the app's access must be revoked manually. (example: 2018-01-15T00:01:01) - - integer - __Read-only__ The total number of results. + + string + __Filterable__, __Read-only__ The name of the application you've authorized. (example: example-app) + + + + string (oauth-scopes) + __Read-only__ The OAuth scopes this app was authorized with. This defines what parts of your Account the app is allowed to access. (example: linodes:read_only) + + + + string (url) + __Read-only__ The URL at which this app's thumbnail may be accessed. + + + + string (url) + __Read-only__ The website where you can get more information about this app. (example: example.org) @@ -143,25 +159,25 @@ The following methods are available for this resource: - + + appId - - Returns information about a single app you've authorized to access your Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns information about a single app you've authorized to access your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size - This is a collection of OAuth apps that you've given access to your Account, and includes the level of access granted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + This is a collection of OAuth apps that you've given access to your account, and includes the level of access granted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + appId - - Expires this app token. This token may no longer be used to access your Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Expires this app token. This token can no longer be used to access your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -179,6 +195,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The authorized app ID to manage. + integer @@ -195,15 +216,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Returns information about a single app you've authorized to access your Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns information about a single app you've authorized to access your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -215,19 +236,23 @@ scopes, thumbnail_url, website FROM linode.profile.apps +WHERE appId = '{{ appId }}' -- required ; ```
- + -This is a collection of OAuth apps that you've given access to your Account, and includes the level of access granted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +This is a collection of OAuth apps that you've given access to your account, and includes the level of access granted.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +created, +expiry, +label, +scopes, +thumbnail_url, +website FROM linode.profile.apps WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -240,17 +265,18 @@ AND page_size = '{{ page_size }}' ## `DELETE` examples - + -Expires this app token. This token may no longer be used to access your Account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Expires this app token. This token can no longer be used to access your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.profile.apps +WHERE appId = '{{ appId }}' --required ; ```
diff --git a/website/docs/services/profile/grants/index.md b/website/docs/services/profile/grants/index.md index be0bbce..83c7130 100644 --- a/website/docs/services/profile/grants/index.md +++ b/website/docs/services/profile/grants/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a grants resource. ## Overview - +
Namegrants
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a grants resource. The following fields are returned by `SELECT` queries: - + GrantsResponse. @@ -126,7 +127,7 @@ The following methods are available for this resource: - + @@ -154,12 +155,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + This returns a GrantsResponse describing what the acting User has been granted access to. For unrestricted users, this will return a 204 and no body because unrestricted users have access to everything without grants. This will not return information about entities you do not have access to. This operation is useful when writing third-party OAuth applications to see what options you should present to the acting User.

For example, if they do not have `global.add_linodes`, you might not display a button to deploy a new Linode.

Any client may run this operation; no OAuth scopes are required. diff --git a/website/docs/services/profile/logins/index.md b/website/docs/services/profile/logins/index.md index 5c170c0..a3ca112 100644 --- a/website/docs/services/profile/logins/index.md +++ b/website/docs/services/profile/logins/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a logins resource. ## Overview - +
Namelogins
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a logins resource. The following fields are returned by `SELECT` queries: - + The requested login object. @@ -74,7 +75,7 @@ The requested login object. string - __Read-only__ Whether the login attempt succeeded or failed. (example: successful) + __Read-only__ Whether the login attempt succeeded or failed. (successful, failed) (example: successful) @@ -84,7 +85,7 @@ The requested login object. - + An array of successful account logins from this user during the last 90 days. @@ -98,24 +99,34 @@ An array of successful account logins from this user during the last 90 days. - - array - + + integer + __Read-only__ The unique ID of this login object. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ When the login was initiated. (example: 2018-01-01T00:01:01) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (ip) + __Read-only__ The remote IP address that requested the login. (example: 192.0.2.0) - - integer - __Read-only__ The total number of results. + + boolean + __Read-only__ True if the User that attempted the login was a restricted User, false otherwise. + + + + string + __Read-only__ Whether the login attempt succeeded or failed. (successful, failed) (example: successful) + + + + string + __Read-only__ The username of the User that attempted the login. (example: example_user) @@ -138,14 +149,14 @@ The following methods are available for this resource: - + - + loginId Returns a login object displaying information about a successful account login from this user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + @@ -167,19 +178,24 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the login object to access. + ## `SELECT` examples - + Returns a login object displaying information about a successful account login from this user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -192,19 +208,22 @@ restricted, status, username FROM linode.profile.logins +WHERE loginId = '{{ loginId }}' -- required ; ```
- + Returns a collection of successful account logins from this user during the last 90 days.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +datetime, +ip, +restricted, +status, +username FROM linode.profile.logins ; ``` diff --git a/website/docs/services/profile/personal_access_tokens/index.md b/website/docs/services/profile/personal_access_tokens/index.md index 8e27d4a..a0455cb 100644 --- a/website/docs/services/profile/personal_access_tokens/index.md +++ b/website/docs/services/profile/personal_access_tokens/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a personal_access_tokens r ## Overview - +
Namepersonal_access_tokens
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a personal_access_tokens r The following fields are returned by `SELECT` queries: - + The requested token. @@ -84,7 +85,7 @@ The requested token. - + A paginated list of active tokens. @@ -98,24 +99,34 @@ A paginated list of active tokens. - - array - + + integer + __Read-only__ This token's unique ID, which can be used to revoke it. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Filterable__, __Read-only__ The date and time this token was created. (example: 2018-01-01T00:01:01) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ When this token will expire. Personal Access Tokens cannot be renewed, so after this time the token will be completely unusable and a new token will need to be generated. Tokens may be created with `null` as their expiry and will never expire unless revoked. (example: 2018-01-01T13:46:32) - - integer - __Read-only__ The total number of results. + + string + __Filterable__ This token's label. This is for display purposes only, but can be used to more easily track what you're using each token for. (example: linode-cli) + + + + string (oauth-scopes) + __Read-only__ The scopes this token was created with. These define what parts of the Account the token can be used to access. Many command-line tools, such as the [Linode CLI](https://github.com/linode/linode-cli), require tokens with access to `*`. Tokens with more restrictive scopes are generally more secure. (example: *) + + + + string + __Read-only__ The token used to access the API. When the token is created, the full token is returned here. Otherwise, only the first 16 characters are returned. (example: abcdefghijklmnop) @@ -138,37 +149,37 @@ The following methods are available for this resource: - + - + tokenId Returns a single Personal Access Token.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + Returns a paginated list of Personal Access Tokens currently active for your User.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + Creates a Personal Access Token for your User. The raw token will be returned in the response, but will never be returned again afterward so be sure to take note of it. You may create a token with _at most_ the scopes of your current token. The created token will be able to access your Account until the given expiry, or until it is revoked. __Parent and child accounts__ In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- If you're using a child account parent user (proxy user), you can't create this form of token. The only token available to a proxy user is one that lets you run operations in a child account. These are created with the [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + tokenId Updates a Personal Access Token.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + tokenId Revokes a Personal Access Token. The token will be invalidated immediately, and requests using that token will fail with a 401. It is possible to revoke access to the token making the request to revoke a token, but keep in mind that doing so could lose you access to the api and require you to create a new token through some other means.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -188,19 +199,24 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the token to access. + ## `SELECT` examples - + Returns a single Personal Access Token.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -213,19 +229,22 @@ label, scopes, token FROM linode.profile.personal_access_tokens +WHERE tokenId = '{{ tokenId }}' -- required ; ```
- + Returns a paginated list of Personal Access Tokens currently active for your User.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +created, +expiry, +label, +scopes, +token FROM linode.profile.personal_access_tokens ; ``` @@ -236,21 +255,21 @@ FROM linode.profile.personal_access_tokens ## `INSERT` examples - + Creates a Personal Access Token for your User. The raw token will be returned in the response, but will never be returned again afterward so be sure to take note of it. You may create a token with _at most_ the scopes of your current token. The created token will be able to access your Account until the given expiry, or until it is revoked. __Parent and child accounts__ In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, the following apply:

- If you're using a child account parent user (proxy user), you can't create this form of token. The only token available to a proxy user is one that lets you run operations in a child account. These are created with the [Create a proxy user token](https://techdocs.akamai.com/linode-api/reference/post-child-account-token) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.profile.personal_access_tokens ( -data__expiry, -data__label, -data__scopes +expiry, +label, +scopes ) SELECT '{{ expiry }}', @@ -268,32 +287,26 @@ token
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: personal_access_tokens props: - name: expiry - value: string - description: > + value: "{{ expiry }}" + description: | When this token should be valid until. If omitted, the new token will be valid until it is manually revoked. - - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ This token's label. This is for display purposes only, but can be used to more easily track what you're using each token for. - - name: scopes - value: string - description: > + value: "{{ scopes }}" + description: | The access [scopes](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) to grant to the created token. These cannot be changed after creation, and may not exceed the scopes of the acting token. + If omitted or entered with a wildcard character (\`*\`), the new token will have the same scopes as the acting token. + Multiple scopes are separated by a space character (\` \`). + For example, \`linodes:read_write account:read_only\`. +`} -If omitted or entered with a wildcard character (`*`), the new token will have the same scopes as the acting token. - -Multiple scopes are separated by a space character (` `). - -For example, `linodes:read_write account:read_only`. - -```
@@ -301,19 +314,21 @@ For example, `linodes:read_write account:read_only`. ## `REPLACE` examples - + Updates a Personal Access Token.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.profile.personal_access_tokens SET -data__label = '{{ label }}' +label = '{{ label }}' +WHERE +tokenId = '{{ tokenId }}' --required RETURNING id, created, @@ -329,17 +344,18 @@ token; ## `DELETE` examples - + Revokes a Personal Access Token. The token will be invalidated immediately, and requests using that token will fail with a 401. It is possible to revoke access to the token making the request to revoke a token, but keep in mind that doing so could lose you access to the api and require you to create a new token through some other means.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.profile.personal_access_tokens +WHERE tokenId = '{{ tokenId }}' --required ; ```
diff --git a/website/docs/services/profile/phone_number/index.md b/website/docs/services/profile/phone_number/index.md index fabde00..265ee51 100644 --- a/website/docs/services/profile/phone_number/index.md +++ b/website/docs/services/profile/phone_number/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a phone_number resource. ## Overview - +
Namephone_number
Name
TypeResource
Id
@@ -50,21 +51,21 @@ The following methods are available for this resource: - + Delete the verified phone number for the User making this request.

Use this operation to opt out of SMS messages for the requesting User after a phone number has been verified with the [Verify a phone number](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + iso_code, phone_number Send a one-time verification code via SMS message to the submitted phone number. Providing your phone number helps ensure you can securely access your Account in case other ways to connect are lost. Your phone number is only used to verify your identity by sending an SMS message. Standard carrier messaging fees may apply.

- By accessing this operation you are opting in to receive SMS messages. You can opt out of SMS messages by running the [Delete a phone number](https://techdocs.akamai.com/linode-api/reference/delete-profile-phone-number) operation after your phone number is verified.

- Verification codes are valid for 10 minutes after they are sent.

- Subsequent requests made prior to code expiration result in sending the same code.

Once a verification code is received, verify your phone number with the [Verify a phone number](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + otp_code @@ -92,12 +93,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `DELETE` examples - + Delete the verified phone number for the User making this request.

Use this operation to opt out of SMS messages for the requesting User after a phone number has been verified with the [Verify a phone number](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -112,18 +113,18 @@ DELETE FROM linode.profile.phone_number ## Lifecycle Methods - + Send a one-time verification code via SMS message to the submitted phone number. Providing your phone number helps ensure you can securely access your Account in case other ways to connect are lost. Your phone number is only used to verify your identity by sending an SMS message. Standard carrier messaging fees may apply.

- By accessing this operation you are opting in to receive SMS messages. You can opt out of SMS messages by running the [Delete a phone number](https://techdocs.akamai.com/linode-api/reference/delete-profile-phone-number) operation after your phone number is verified.

- Verification codes are valid for 10 minutes after they are sent.

- Subsequent requests made prior to code expiration result in sending the same code.

Once a verification code is received, verify your phone number with the [Verify a phone number](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.profile.phone_number.post_profile_phone_number +EXEC linode.profile.phone_number.send_verification_code @@json= '{ "iso_code": "{{ iso_code }}", @@ -132,12 +133,12 @@ EXEC linode.profile.phone_number.post_profile_phone_number ; ```
- + Verify a phone number by confirming the one-time code received via SMS message after running the [Send a phone number verification code](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number) operation.

- Verification codes are valid for 10 minutes after they are sent.

- Only the same User that made the verification code request can use that code with this operation.

Once completed, the verified phone number is assigned to the User making the request. To change the verified phone number for a User, first run the [Delete a phone number](https://techdocs.akamai.com/linode-api/reference/delete-profile-phone-number) operation, then begin the verification process again with the [Send a phone number verification code](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.profile.phone_number.post_profile_phone_number_verify +EXEC linode.profile.phone_number.verify @@json= '{ "otp_code": "{{ otp_code }}" diff --git a/website/docs/services/profile/profile/index.md b/website/docs/services/profile/profile/index.md index d2fe4b0..5156b77 100644 --- a/website/docs/services/profile/profile/index.md +++ b/website/docs/services/profile/profile/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a profile resource. ## Overview - +
Nameprofile
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a profile resource. The following fields are returned by `SELECT` queries: - + Profile response. @@ -53,7 +54,7 @@ Profile response. string - __Read-only__ This account's Cloud Manager authentication type. You choose an authentication type in Cloud Manager and Akamai authorizes it when you log into your account. Authentication types include your user's password (in conjunction with your username), or the name of your identity provider, such as GitHub. Here are some examples: - If a user has never used third-party authentication, the authentication type will be `password`. - If a user is using third-party authentication, the name of their identity provider is used for the authentication type, for example, `github`. - If a user has used third-party authentication and has since revoked it, the authentication type is `password`. (example: password) + __Read-only__ This account's Cloud Manager authentication type. You choose an authentication type in Cloud Manager and Akamai authorizes it when you log into your account. Authentication types include your user's password (in conjunction with your username), or the name of your identity provider, such as GitHub. Here are some examples: - If a user has never used third-party authentication, the authentication type will be `password`. - If a user is using third-party authentication, the name of their identity provider is used for the authentication type, for example, `github`. - If a user has used third-party authentication and has since revoked it, the authentication type is `password`. (password, github) (example: password) @@ -78,7 +79,7 @@ Profile response. string - The authentication methods that you can use when connecting to the [Linode Shell (Lish)](https://www.linode.com/docs/guides/lish/). - `keys_only` is the most secure if you intend to use Lish. - `disabled` is recommended if you don't want to use Lish. - If this account's Cloud Manager authentication type is set to a third-party authentication method, you can't use `password_keys` as your Lish authentication method. Run the [Get a profile](https://techdocs.akamai.com/linode-api/reference/get-profile) operation to view your account's Cloud Manager `authentication_type` field. (example: keys_only) + The authentication methods that you can use when connecting to the [Linode Shell (Lish)](https://www.linode.com/docs/guides/lish/). - `keys_only` is the most secure if you intend to use Lish. - `disabled` is recommended if you don't want to use Lish. - If this account's Cloud Manager authentication type is set to a third-party authentication method, you can't use `password_keys` as your Lish authentication method. Run the [Get a profile](https://techdocs.akamai.com/linode-api/reference/get-profile) operation to view your account's Cloud Manager `authentication_type` field. (password_keys, keys_only, disabled) (example: keys_only) @@ -136,28 +137,28 @@ The following methods are available for this resource: - + Returns information about the current user. Use this to see who is acting in applications where more than one token is managed, such as a third-party OAuth application.

> 📘
>
> A third-party OAuth application accessing a profile with this operation has full access to all aspects of that profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + Update information in your profile. You need the `account:read_write` [OAuth scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) to use this operation.

**Parent and child accounts**

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, you can't edit the `email` for a child account parent user (proxy user). This value is fixed and set when you provision this environment.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + View a list of user preferences tied to the OAuth client that generated the token making the request. The user preferences endpoints allow consumers of the API to store arbitrary JSON data, such as a user's font size preference or preferred display name. User preferences are available for each OAuth client registered to your account, and as such an account can have multiple user preferences. __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + @@ -185,12 +186,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns information about the current user. Use this to see who is acting in applications where more than one token is managed, such as a third-party OAuth application.

> 📘
>
> A third-party OAuth application accessing a profile with this operation has full access to all aspects of that profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -219,26 +220,26 @@ FROM linode.profile.profile ## `REPLACE` examples - + Update information in your profile. You need the `account:read_write` [OAuth scope](https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference) to use this operation.

**Parent and child accounts**

In a [parent and child account](https://www.linode.com/docs/guides/parent-child-accounts/) environment, you can't edit the `email` for a child account parent user (proxy user). This value is fixed and set when you provision this environment.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.profile.profile SET -data__authorized_keys = '{{ authorized_keys }}', -data__email = '{{ email }}', -data__email_notifications = {{ email_notifications }}, -data__ip_whitelist_enabled = {{ ip_whitelist_enabled }}, -data__lish_auth_method = '{{ lish_auth_method }}', -data__restricted = {{ restricted }}, -data__timezone = '{{ timezone }}', -data__two_factor_auth = {{ two_factor_auth }} +authorized_keys = '{{ authorized_keys }}', +email = '{{ email }}', +email_notifications = {{ email_notifications }}, +ip_whitelist_enabled = {{ ip_whitelist_enabled }}, +lish_auth_method = '{{ lish_auth_method }}', +restricted = {{ restricted }}, +timezone = '{{ timezone }}', +two_factor_auth = {{ two_factor_auth }} RETURNING authentication_type, authorized_keys, @@ -261,28 +262,28 @@ verified_phone_number; ## Lifecycle Methods - + View a list of user preferences tied to the OAuth client that generated the token making the request. The user preferences endpoints allow consumers of the API to store arbitrary JSON data, such as a user's font size preference or preferred display name. User preferences are available for each OAuth client registered to your account, and as such an account can have multiple user preferences. __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.profile.profile.get_user_preferences +EXEC linode.profile.profile.get_preferences ; ```
- + Updates a user's preferences. These preferences are tied to the OAuth client that generated the token making the request. The user preferences endpoints allow consumers of the API to store arbitrary JSON data, such as a user's font size preference or preferred display name. An account may have multiple preferences. Preferences, and the pertaining request body, may contain any arbitrary JSON data that the user would like to store. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.profile.profile.put_user_preferences +EXEC linode.profile.profile.update_preferences ; ``` diff --git a/website/docs/services/profile/security_questions/index.md b/website/docs/services/profile/security_questions/index.md index 60090a3..6d6cf36 100644 --- a/website/docs/services/profile/security_questions/index.md +++ b/website/docs/services/profile/security_questions/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a security_questions resou ## Overview - +
Namesecurity_questions
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a security_questions resou The following fields are returned by `SELECT` queries: - + Returns a list of security questions. @@ -86,14 +87,14 @@ The following methods are available for this resource: - + Returns a collection of security questions and their responses, if any, for your User Profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + @@ -121,12 +122,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a collection of security questions and their responses, if any, for your User Profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -145,17 +146,17 @@ FROM linode.profile.security_questions ## Lifecycle Methods - + Adds security question responses for your user. You need to use exactly three unique questions. Previous responses are overwritten if answered, or they're reset to `null` if unanswered.

> 📘
>
> You need to answer these security questions before you can access the [Create a two factor secret](https://techdocs.akamai.com/linode-api/reference/post-tfa-enable) operation. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.profile.security_questions.post_security_questions +EXEC linode.profile.security_questions.answer @@json= '{ "security_questions": "{{ security_questions }}" diff --git a/website/docs/services/profile/ssh_keys/index.md b/website/docs/services/profile/ssh_keys/index.md index 0927808..46a126e 100644 --- a/website/docs/services/profile/ssh_keys/index.md +++ b/website/docs/services/profile/ssh_keys/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a ssh_keys resource. ## Overview - +
Namessh_keys
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a ssh_keys resource. The following fields are returned by `SELECT` queries: - + An SSH Key object. @@ -74,7 +75,7 @@ An SSH Key object. - + Returns a paginated list of SSH Key objects. @@ -88,24 +89,24 @@ Returns a paginated list of SSH Key objects. - - array - + + integer + __Read-only__ The unique identifier of an SSH Key object. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ The date this key was added. (example: 2018-01-01T00:01:01) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + A label for the SSH Key. (example: My SSH Key) - - integer - __Read-only__ The total number of results. + + string (ssh-key) + The public SSH Key, which is used to authenticate to the root user of the Linodes you deploy. Accepted formats: - ssh-dss - ssh-rsa - ecdsa-sha2-nistp - ssh-ed25519 - sk-ecdsa-sha2-nistp256 (Akamai-specific) (example: ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer) @@ -128,37 +129,37 @@ The following methods are available for this resource: - + - + sshKeyId Returns a single SSH Key object identified by `id` that you have access to view.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Returns a collection of SSH Keys you've added to your Profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + Adds an SSH Key to your Account profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + sshKeyId Updates an SSH Key that you have permission to `read_write`.

Only SSH key labels can be updated.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + sshKeyId Deletes an SSH Key you have access to.

> 📘
>
> This operation only deletes a key's association from your profile. It doesn't remove it from any Linode or disk that was deployed with `authorized_keys`. You need to manually delete the key on the Linode or disk.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -178,6 +179,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the SSHKey. + integer @@ -194,13 +200,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a single SSH Key object identified by `id` that you have access to view.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -211,19 +217,20 @@ created, label, ssh_key FROM linode.profile.ssh_keys +WHERE sshKeyId = '{{ sshKeyId }}' -- required ; ```
- + Returns a collection of SSH Keys you've added to your Profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +created, +label, +ssh_key FROM linode.profile.ssh_keys WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -236,20 +243,20 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Adds an SSH Key to your Account profile.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.profile.ssh_keys ( -data__label, -data__ssh_key +label, +ssh_key ) SELECT '{{ label }}', @@ -264,29 +271,25 @@ ssh_key
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: ssh_keys props: - name: label - value: string - description: > + value: "{{ label }}" + description: | A label for the SSH Key. - - name: ssh_key - value: string - description: > + value: "{{ ssh_key }}" + description: | The public SSH Key, which is used to authenticate to the root user of the Linodes you deploy. + Accepted formats: + - ssh-dss + - ssh-rsa + - ecdsa-sha2-nistp + - ssh-ed25519 + - sk-ecdsa-sha2-nistp256 (Akamai-specific) +`} -Accepted formats: - -- ssh-dss -- ssh-rsa -- ecdsa-sha2-nistp -- ssh-ed25519 -- sk-ecdsa-sha2-nistp256 (Akamai-specific) - -```
@@ -294,19 +297,21 @@ Accepted formats: ## `REPLACE` examples - + Updates an SSH Key that you have permission to `read_write`.

Only SSH key labels can be updated.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.profile.ssh_keys SET -data__label = '{{ label }}' +label = '{{ label }}' +WHERE +sshKeyId = '{{ sshKeyId }}' --required RETURNING id, created, @@ -320,17 +325,18 @@ ssh_key; ## `DELETE` examples - + Deletes an SSH Key you have access to.

> 📘
>
> This operation only deletes a key's association from your profile. It doesn't remove it from any Linode or disk that was deployed with `authorized_keys`. You need to manually delete the key on the Linode or disk.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.profile.ssh_keys +WHERE sshKeyId = '{{ sshKeyId }}' --required ; ```
diff --git a/website/docs/services/profile/trusted_devices/index.md b/website/docs/services/profile/trusted_devices/index.md index 951d27f..2e7e3d4 100644 --- a/website/docs/services/profile/trusted_devices/index.md +++ b/website/docs/services/profile/trusted_devices/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a trusted_devices resource ## Overview - +
Nametrusted_devices
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a trusted_devices resource The following fields are returned by `SELECT` queries: - + The requested TrustedDevice object. @@ -84,7 +85,7 @@ The requested TrustedDevice object. - + Returns a paginated list of TrustedDevice objects. @@ -98,24 +99,34 @@ Returns a paginated list of TrustedDevice objects. - - array - + + integer + __Read-only__ The unique ID for this TrustedDevice. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ When this Remember Me session was started. This corresponds to the time of login with the "Remember Me" box checked. (example: 2018-01-01T01:01:01) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ When this TrustedDevice session expires. Sessions typically last 30 days. (example: 2018-01-31T01:01:01) - - integer - __Read-only__ The total number of results. + + string (date-time) + __Read-only__ The last time this TrustedDevice was successfully used to authenticate to [login.linode.com](https://login.linode.com). (example: 2018-01-05T12:57:12) + + + + string + __Read-only__ The last IP Address to successfully authenticate with this TrustedDevice. (example: 203.0.113.1) + + + + string + __Read-only__ The User Agent of the browser that created this TrustedDevice session. (example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36 Vivaldi/2.1.1337.36) @@ -138,25 +149,25 @@ The following methods are available for this resource: - + + deviceId - - Returns a single active TrustedDevice for your User.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a single active trusted device for your user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - Returns a paginated list of active TrustedDevices for your User. Browsers with an active Remember Me Session are logged into your account until the session expires or is revoked.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a paginated list of active trusted devices for your user. Browsers with an active Remember Me Session are logged into your account until the session expires or is revoked.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + deviceId - - Revoke an active TrustedDevice for your User. Once a TrustedDevice is revoked, this device will have to log in again before accessing your Linode account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Revoke an active trusted device for your user. Once a trusted device is revoked, this device will have to log in again before accessing your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -174,21 +185,26 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the TrustedDevice. + ## `SELECT` examples - + -Returns a single active TrustedDevice for your User.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a single active trusted device for your user.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -199,19 +215,22 @@ last_authenticated, last_remote_addr, user_agent FROM linode.profile.trusted_devices +WHERE deviceId = '{{ deviceId }}' -- required ; ```
- + -Returns a paginated list of active TrustedDevices for your User. Browsers with an active Remember Me Session are logged into your account until the session expires or is revoked.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of active trusted devices for your user. Browsers with an active Remember Me Session are logged into your account until the session expires or is revoked.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +created, +expiry, +last_authenticated, +last_remote_addr, +user_agent FROM linode.profile.trusted_devices ; ``` @@ -222,17 +241,18 @@ FROM linode.profile.trusted_devices ## `DELETE` examples - + -Revoke an active TrustedDevice for your User. Once a TrustedDevice is revoked, this device will have to log in again before accessing your Linode account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Revoke an active trusted device for your user. Once a trusted device is revoked, this device will have to log in again before accessing your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.profile.trusted_devices +WHERE deviceId = '{{ deviceId }}' --required ; ```
diff --git a/website/docs/services/profile/two_factor_authentication/index.md b/website/docs/services/profile/two_factor_authentication/index.md index 3349431..bf2bede 100644 --- a/website/docs/services/profile/two_factor_authentication/index.md +++ b/website/docs/services/profile/two_factor_authentication/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a two_factor_authentication -Nametwo_factor_authentication +Name TypeResource Id @@ -50,25 +51,25 @@ The following methods are available for this resource: - + - Disables Two Factor Authentication for your User. Once successful, login attempts from untrusted computers will only require a password before being successful. This is less secure, and is discouraged.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Disables two-factor authentication (2FA) for your user. Once successful, login attempts from untrusted computers will only require a password. Keep 2FA enabled to protect your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - Generates a Two Factor secret for your User. To enable TFA for your User, enter the secret obtained from this operation with the [Enable two factor authentication](https://techdocs.akamai.com/linode-api/reference/post-tfa-confirm) operation. Once enabled, logins from untrusted computers are required to provide a TFA code before they are successful.

Run the [Answer security questions](https://techdocs.akamai.com/linode-api/reference/post-security-questions) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Generates a secret key for your user. To enable two-factor authentication (2FA), enter this secret into your third-party authenticator application. To complete the 2FA setup, use the [Enable two-factor authentication](https://techdocs.akamai.com/linode-api/reference/post-tfa-confirm) operation to enter a one-time passcode (OTP) from your authenticator app. Once enabled, logins from untrusted computers are required to provide an OTP before they are successful.

Run the [Answer security questions](https://techdocs.akamai.com/linode-api/reference/post-security-questions) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - Confirms that you can successfully generate Two Factor codes and enables TFA on your Account. Once this is complete, login attempts from untrusted computers will be required to provide a Two Factor code before they are successful.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Confirms that you can successfully generate one-time codes. Once confirmed, 2FA is enabled on your account. Login attempts from untrusted computers will be required to provide a one-time code before they are successful.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -92,39 +93,39 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## Lifecycle Methods - + -Disables Two Factor Authentication for your User. Once successful, login attempts from untrusted computers will only require a password before being successful. This is less secure, and is discouraged.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Disables two-factor authentication (2FA) for your user. Once successful, login attempts from untrusted computers will only require a password. Keep 2FA enabled to protect your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.profile.two_factor_authentication.post_tfa_disable +EXEC linode.profile.two_factor_authentication.disable ; ```
- + -Generates a Two Factor secret for your User. To enable TFA for your User, enter the secret obtained from this operation with the [Enable two factor authentication](https://techdocs.akamai.com/linode-api/reference/post-tfa-confirm) operation. Once enabled, logins from untrusted computers are required to provide a TFA code before they are successful.

Run the [Answer security questions](https://techdocs.akamai.com/linode-api/reference/post-security-questions) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Generates a secret key for your user. To enable two-factor authentication (2FA), enter this secret into your third-party authenticator application. To complete the 2FA setup, use the [Enable two-factor authentication](https://techdocs.akamai.com/linode-api/reference/post-tfa-confirm) operation to enter a one-time passcode (OTP) from your authenticator app. Once enabled, logins from untrusted computers are required to provide an OTP before they are successful.

Run the [Answer security questions](https://techdocs.akamai.com/linode-api/reference/post-security-questions) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.profile.two_factor_authentication.post_tfa_enable +EXEC linode.profile.two_factor_authentication.enable ; ```
- + -Confirms that you can successfully generate Two Factor codes and enables TFA on your Account. Once this is complete, login attempts from untrusted computers will be required to provide a Two Factor code before they are successful.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Confirms that you can successfully generate one-time codes. Once confirmed, 2FA is enabled on your account. Login attempts from untrusted computers will be required to provide a one-time code before they are successful.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.profile.two_factor_authentication.post_tfa_confirm +EXEC linode.profile.two_factor_authentication.confirm @@json= '{ "tfa_code": "{{ tfa_code }}" diff --git a/website/docs/services/regions/availability/index.md b/website/docs/services/regions/availability/index.md index e5ac9c2..75d3958 100644 --- a/website/docs/services/regions/availability/index.md +++ b/website/docs/services/regions/availability/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an availability resource. ## Overview - +
Nameavailability
Name
TypeResource
Id
@@ -32,15 +33,15 @@ Creates, updates, deletes, gets or lists an availability resource. The following fields are returned by `SELECT` queries: - + -The availability data for a single Region. +Compute instance availability information by [Type](https://techdocs.akamai.com/linode-api/reference/get-linode-types) and [Region](https://techdocs.akamai.com/linode-api/reference/get-regions). @@ -69,7 +70,7 @@ The availability data for a single Region.
- + Returns a Region Availability object. @@ -118,14 +119,14 @@ The following methods are available for this resource: - + - + regionId Returns availability data for a single Region.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + @@ -147,19 +148,24 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The abbreviated value ("slug") for the applicable data center. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the slug for each data center. + ## `SELECT` examples - + Returns availability data for a single Region.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -169,10 +175,11 @@ available, plan, region FROM linode.regions.availability +WHERE regionId = '{{ regionId }}' -- required ; ```
- + Returns availability data for all regions.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) diff --git a/website/docs/services/regions/regions/index.md b/website/docs/services/regions/regions/index.md index df1d4ba..bf28afa 100644 --- a/website/docs/services/regions/regions/index.md +++ b/website/docs/services/regions/regions/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a regions resource. ## Overview - +
Nameregions
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a regions resource. The following fields are returned by `SELECT` queries: - + A single Region object. @@ -89,17 +90,17 @@ A single Region object. string - __Filterable__ This region's site type. A `core` region indicates a traditional cloud computing [region](https://www.linode.com/docs/products/platform/get-started/guides/choose-a-data-center/#product-availability) that offers all compute services. A `distributed` region indicates sites that are globally dispersed to be closer to end users and workloads. These regions offer limited services. (example: core) + __Filterable__ This region's site type. A `core` region indicates a traditional cloud computing [region](https://www.linode.com/docs/products/platform/get-started/guides/choose-a-data-center/#product-availability) that offers all compute services. A `distributed` region indicates sites that are globally dispersed to be closer to end users and workloads. These regions offer limited services. (core, distributed) (example: core) string - This region's current operational status. (example: ok) + This region's current operational status. (ok, outage) (example: ok) - + Returns an array of regions. @@ -113,24 +114,49 @@ Returns an array of regions. - + + string + The unique ID of this Region. (example: us-east) + + + array - + A list of capabilities of this region. + + + + string + __Filterable__ The country where this region resides. (example: us) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + Detailed location information for this region, including city, state or region, and country. (example: Newark, NJ, USA) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + __Beta__ Lists the services in this region that support metrics and alerts use with Akamai Cloud Pulse (ACLP). > 📘 > > The ACLP service is currently beta. This object is only returned in a response if you're participating in the ACLP beta. Contact your account team for more information. - - integer - __Read-only__ The total number of results. + + object + The limits for [placement groups](https://www.linode.com/docs/products/compute/compute-instances/guides/placement-groups/) in this region. + + + + object + + + + + string + __Filterable__ This region's site type. A `core` region indicates a traditional cloud computing [region](https://www.linode.com/docs/products/platform/get-started/guides/choose-a-data-center/#product-availability) that offers all compute services. A `distributed` region indicates sites that are globally dispersed to be closer to end users and workloads. These regions offer limited services. (core, distributed) (example: core) + + + + string + This region's current operational status. (ok, outage) (example: ok) @@ -153,14 +179,14 @@ The following methods are available for this resource: - + - + regionId Returns a single Region.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + @@ -182,19 +208,24 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The abbreviated value ("slug") for the applicable data center. Run the [List regions](https://techdocs.akamai.com/linode-api/reference/get-regions) operation to view the slug for each data center. + ## `SELECT` examples - + Returns a single Region.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -210,19 +241,25 @@ resolvers, site_type, status FROM linode.regions.regions +WHERE regionId = '{{ regionId }}' -- required ; ```
- + Lists the regions available for Linode services. Not all services are guaranteed to be available in all regions.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +capabilities, +country, +label, +monitors, +placement_group_limits, +resolvers, +site_type, +status FROM linode.regions.regions ; ``` diff --git a/website/docs/services/support/ticket_replies/index.md b/website/docs/services/support/ticket_replies/index.md index 06ce4d3..f74cb83 100644 --- a/website/docs/services/support/ticket_replies/index.md +++ b/website/docs/services/support/ticket_replies/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a ticket_replies resource. ## Overview - +
Nameticket_replies
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a ticket_replies resource. The following fields are returned by `SELECT` queries: - + Returns a paginated list of support ticket replies. @@ -51,24 +52,34 @@ Returns a paginated list of support ticket replies. - - array - + + integer + __Read-only__ The unique ID of this support ticket reply. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Read-only__ The Gravatar ID of the user who created this reply. (example: 474a1b7373ae0be4132649e69c36ce30) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Read-only__ When this ticket reply was created. (example: 2015-06-02T14:31:41) - - integer - __Read-only__ The total number of results. + + string + __Read-only__ The user who submitted this reply. (example: John Q. Linode) + + + + string + __Read-only__ The body of this support ticket reply. (example: Hello,\nI'm sorry to hear that you're having trouble resetting the root password of your Linode. Just to be sure, have you tried to follow the instructions here: https://techdocs.akamai.com/cloud-computing/docs/reset-the-root-password-on-a-compute-instance? If you have, please reply with any additional steps you've also taken.\nRegards,\nLinode Support Team) + + + + boolean + __Read-only__ If `true`, this reply came from a Linode employee. @@ -91,16 +102,16 @@ The following methods are available for this resource: - + - + ticketId page, page_size Returns a collection of replies to a support ticket on your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__description + ticketId, description Adds a reply to an existing support ticket.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -120,6 +131,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the support ticket. + integer @@ -136,23 +152,26 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a collection of replies to a support ticket on your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +gravatar_id, +created, +created_by, +description, +from_linode FROM linode.support.ticket_replies -WHERE page = '{{ page }}' +WHERE ticketId = '{{ ticketId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` @@ -163,22 +182,24 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Adds a reply to an existing support ticket.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.support.ticket_replies ( -data__description +description, +ticketId ) SELECT -'{{ description }}' /* required */ +'{{ description }}' /* required */, +'{{ ticketId }}' RETURNING id, gravatar_id, @@ -191,15 +212,17 @@ from_linode
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: ticket_replies props: + - name: ticketId + value: "{{ ticketId }}" + description: Required parameter for the ticket_replies resource. - name: description - value: string - description: > + value: "{{ description }}" + description: | The content of your reply. - -``` +`} +
diff --git a/website/docs/services/support/tickets/index.md b/website/docs/services/support/tickets/index.md index f0723db..6f372e8 100644 --- a/website/docs/services/support/tickets/index.md +++ b/website/docs/services/support/tickets/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a tickets resource. ## Overview - +
Nametickets
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a tickets resource. The following fields are returned by `SELECT` queries: - + Returns a single support ticket. @@ -94,12 +95,17 @@ Returns a single support ticket. string - __Read-only__ The user who opened this ticket. (example: some_user) + __Filterable__, __Read-only__ The user who opened this ticket. (example: some_user) + + + + string + __Read-only__ The severity of this ticket. (low, moderate, major) (example: low) string - __Read-only__ The current status of this ticket. (example: open) + __Filterable__, __Read-only__ The current status of this ticket. (closed, new, open) (example: open) @@ -119,7 +125,7 @@ Returns a single support ticket. - + Returns a paginated list of support tickets. @@ -133,24 +139,74 @@ Returns a paginated list of support tickets. - + + integer + __Read-only__ The ID of the support ticket. + + + + string + __Read-only__ The Gravatar ID of the user who opened this ticket. (example: 474a1b7373ae0be4132649e69c36ce30) + + + array - + __Read-only__ A list of filenames representing attached files associated with this ticket. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + boolean + Whether the ticket can be closed. - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + string (date-time) + __Filterable__, __Read-only__ When this ticket was closed. (example: 2024-06-04T16:07:03) - - integer - __Read-only__ The total number of results. + + string + __Read-only__ The full details of the issue or question. (example: I'm having trouble setting the root password on my Linode. I tried following the instructions, but something isn't working. Can you please help me figure out how I can reset it?) + + + + object + __Read-only__ The ticket was opened for this entity. An entity represents a specific object you've created, such as a Linode or a Managed Database. + + + + string (date-time) + __Filterable__, __Read-only__ When this ticket was created. (example: 2024-06-04T14:16:44) + + + + string + __Filterable__, __Read-only__ The user who opened this ticket. (example: some_user) + + + + string + __Read-only__ The severity of this ticket. (low, moderate, major) (example: low) + + + + string + __Filterable__, __Read-only__ The current status of this ticket. (closed, new, open) (example: open) + + + + string + __Read-only__ The summary or title for this ticket. (example: Having trouble resetting Linode root password.) + + + + string (date-time) + __Filterable__, __Read-only__ When this ticket was last updated. (example: 2024-06-04T16:07:03) + + + + string + __Read-only__ The user who last updated this ticket. (example: some_other_user) @@ -173,37 +229,37 @@ The following methods are available for this resource: - + - + ticketId Returns a specific support ticket under your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size Returns a collection of all support tickets opened from your account. This includes tickets you've opened and tickets generated by Linode customer support regarding your account. Open tickets are returned first in the response.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__summary, data__description + summary, description Open a support ticket. A ticket can only target a single, specific entity. For example, for an issue with a specific Linode, open a ticket and target it using its `linode_id`. Leave all other entities out of the request or set them to `null`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + ticketId Closes a support ticket you have access to modify.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - file + ticketId, file Adds a file attachment to an open support ticket on your account. Use an attachment to help customer support resolve your ticket. The file attachment is submitted in the request as `multipart/form-data` type. Accepted file extensions include: `.gif`, `.jpg`, `.jpeg`, `.pjpg`, `.pjpeg`, `.tif`, `.tiff`, `.png`, `.pdf`, or `.txt`. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -223,6 +279,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The ID of the support ticket. + integer @@ -239,13 +300,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a specific support ticket under your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -260,24 +321,36 @@ description, entity, opened, opened_by, +severity, status, summary, updated, updated_by FROM linode.support.tickets +WHERE ticketId = '{{ ticketId }}' -- required ; ```
- + Returns a collection of all support tickets opened from your account. This includes tickets you've opened and tickets generated by Linode customer support regarding your account. Open tickets are returned first in the response.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +gravatar_id, +attachments, +closable, +closed, +description, +entity, +opened, +opened_by, +severity, +status, +summary, +updated, +updated_by FROM linode.support.tickets WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -290,33 +363,34 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Open a support ticket. A ticket can only target a single, specific entity. For example, for an issue with a specific Linode, open a ticket and target it using its `linode_id`. Leave all other entities out of the request or set them to `null`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.support.tickets ( -data__bucket, -data__database_id, -data__description, -data__domain_id, -data__firewall_id, -data__linode_id, -data__lkecluster_id, -data__longviewclient_id, -data__managed_issue, -data__nodebalancer_id, -data__region, -data__summary, -data__vlan, -data__volume_id, -data__vpc_id +bucket, +database_id, +description, +domain_id, +firewall_id, +linode_id, +lkecluster_id, +longviewclient_id, +managed_issue, +nodebalancer_id, +region, +severity, +summary, +vlan, +volume_id, +vpc_id ) SELECT '{{ bucket }}', @@ -330,6 +404,7 @@ SELECT {{ managed_issue }}, {{ nodebalancer_id }}, '{{ region }}', +{{ severity }}, '{{ summary }}' /* required */, '{{ vlan }}', {{ volume_id }}, @@ -344,6 +419,7 @@ description, entity, opened, opened_by, +severity, status, summary, updated, @@ -353,95 +429,83 @@ updated_by
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: tickets props: - name: bucket - value: string - description: > - The name of an Object Storage bucket entity for this ticket. Run the [List Object Storage buckets](https://techdocs.akamai.com/linode-api/reference/get-object-storage-buckets) operation and store the `label` for the target bucket. You also need to provide the specific `region` where the bucket is located. - + value: "{{ bucket }}" + description: | + The name of an Object Storage bucket entity for this ticket. Run the [List Object Storage buckets](https://techdocs.akamai.com/linode-api/reference/get-object-storage-buckets) operation and store the \`label\` for the target bucket. You also need to provide the specific \`region\` where the bucket is located. - name: database_id - value: integer - description: > - The ID of the Managed Database entity for the ticket. Run the [List Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-instances) operation and store the `id` for the target database. - + value: {{ database_id }} + description: | + The ID of the Managed Database entity for the ticket. Run the [List Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-instances) operation and store the \`id\` for the target database. - name: description - value: string - description: > + value: "{{ description }}" + description: | The full details of the issue or question. - - name: domain_id - value: integer - description: > - The ID of the domain entity for the ticket. Run the [List domains](https://techdocs.akamai.com/linode-api/reference/get-domains) operation and store the `id` for the target domain. - + value: {{ domain_id }} + description: | + The ID of the domain entity for the ticket. Run the [List domains](https://techdocs.akamai.com/linode-api/reference/get-domains) operation and store the \`id\` for the target domain. - name: firewall_id - value: integer - description: > - The ID of the Firewall entity for the ticket. Run the [List a Linode's firewalls](https://techdocs.akamai.com/linode-api/reference/get-linode-firewalls) operation and store the `id` for the target Linode firewall. - + value: {{ firewall_id }} + description: | + The ID of the Firewall entity for the ticket. Run the [List a Linode's firewalls](https://techdocs.akamai.com/linode-api/reference/get-linode-firewalls) operation and store the \`id\` for the target Linode firewall. - name: linode_id - value: integer - description: > - The ID of the Linode entity for the ticket. Run the [List Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances) operation and store the `id` for the target Linode. - + value: {{ linode_id }} + description: | + The ID of the Linode entity for the ticket. Run the [List Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances) operation and store the \`id\` for the target Linode. - name: lkecluster_id - value: integer - description: > - The ID of the Linode Kubernetes Engine (LKE) cluster entity for the ticket. Run the [List Kubernetes clusters](https://techdocs.akamai.com/linode-api/reference/get-lke-clusters) operation and store the `id` for the target LKE cluster. - + value: {{ lkecluster_id }} + description: | + The ID of the Linode Kubernetes Engine (LKE) cluster entity for the ticket. Run the [List Kubernetes clusters](https://techdocs.akamai.com/linode-api/reference/get-lke-clusters) operation and store the \`id\` for the target LKE cluster. - name: longviewclient_id - value: integer - description: > - The ID of the Longview client entity for the ticket. Run the [List Longview clients](https://techdocs.akamai.com/linode-api/reference/get-longview-clients) operation and store the `id` for the target client. - + value: {{ longviewclient_id }} + description: | + The ID of the Longview client entity for the ticket. Run the [List Longview clients](https://techdocs.akamai.com/linode-api/reference/get-longview-clients) operation and store the \`id\` for the target client. - name: managed_issue - value: boolean - description: > - Whether this ticket is related to a [managed service](https://www.linode.com/products/managed/). If `true`, the following constraints apply: - -- You can't provide an entity, such as a `linode_id` or `bucket` with this request. - -- Your account needs a managed service [enabled](https://techdocs.akamai.com/linode-api/reference/post-enable-managed-service). - + value: {{ managed_issue }} + description: | + Whether this ticket is related to a [managed service](https://www.linode.com/products/managed/). If \`true\`, the following constraints apply: + - You can't provide an entity, such as a \`linode_id\` or \`bucket\` with this request. + - Your account needs a managed service [enabled](https://techdocs.akamai.com/linode-api/reference/post-enable-managed-service). default: false - name: nodebalancer_id - value: integer - description: > - The ID of the NodeBalancer entity for the ticket. Run the [List NodeBalancers](https://techdocs.akamai.com/linode-api/reference/get-node-balancers) operation and store the `id` for the target NodeBalancer. - + value: {{ nodebalancer_id }} + description: | + The ID of the NodeBalancer entity for the ticket. Run the [List NodeBalancers](https://techdocs.akamai.com/linode-api/reference/get-node-balancers) operation and store the \`id\` for the target NodeBalancer. - name: region - value: string - description: > - The ID of the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where this ticket's target entity resides. This only applies to tickets for a `vlan` or an Object Storage `bucket`. - -> 📘 -> -> Set this to the `clusterId` for a legacy Object Storage `bucket`. - + value: "{{ region }}" + description: | + The ID of the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where this ticket's target entity resides. This only applies to tickets for a \`vlan\` or an Object Storage \`bucket\`. + > 📘 + > + > Set this to the \`clusterId\` for a legacy Object Storage \`bucket\`. + - name: severity + value: {{ severity }} + description: | + The severity of the issue. A value of \`1\` indicates a major issue, \`2\` indicates a moderate priority issue, and \`3\` is a low priority issue. Your account may not have access to set this value. Talk to your Akamai account team for more details. + valid_values: ['1', '2', '3'] + default: null - name: summary - value: string - description: > + value: "{{ summary }}" + description: | The summary or title for this support ticket. - - name: vlan - value: string - description: > - The label of the VLAN entity for the ticket. Run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans) operation and store the `id` for the target VLAN. You also need to provide the specific `region` where the VLAN is located. - + value: "{{ vlan }}" + description: | + The label of the VLAN entity for the ticket. Run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans) operation and store the \`id\` for the target VLAN. You also need to provide the specific \`region\` where the VLAN is located. - name: volume_id - value: integer - description: > - The ID of the volume entity for the ticket. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation and store the `id` for the target volume. - + value: {{ volume_id }} + description: | + The ID of the volume entity for the ticket. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation and store the \`id\` for the target volume. - name: vpc_id - value: integer - description: > - The ID of the VPC entity for the ticket. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the target VPC. - -``` + value: {{ vpc_id }} + description: | + The ID of the VPC entity for the ticket. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the \`id\` for the target VPC. +`} +
@@ -449,17 +513,18 @@ updated_by ## `DELETE` examples - + Closes a support ticket you have access to modify.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.support.tickets +WHERE ticketId = '{{ ticketId }}' --required ; ```
@@ -469,17 +534,18 @@ DELETE FROM linode.support.tickets ## Lifecycle Methods - + Adds a file attachment to an open support ticket on your account. Use an attachment to help customer support resolve your ticket. The file attachment is submitted in the request as `multipart/form-data` type. Accepted file extensions include: `.gif`, `.jpg`, `.jpeg`, `.pjpg`, `.pjpeg`, `.tif`, `.tiff`, `.png`, `.pdf`, or `.txt`. __OAuth scopes__.

```
account:read_write
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.support.tickets.post_ticket_attachment +EXEC linode.support.tickets.upload_attachment +@ticketId='{{ ticketId }}' --required @@json= '{ "file": "{{ file }}" diff --git a/website/docs/services/tags/tagged_objects/index.md b/website/docs/services/tags/tagged_objects/index.md index 1a33db1..18235ad 100644 --- a/website/docs/services/tags/tagged_objects/index.md +++ b/website/docs/services/tags/tagged_objects/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a tagged_objects resource. ## Overview - +
Nametagged_objects
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a tagged_objects resource. The following fields are returned by `SELECT` queries: - + A paginated list of objects, organized by type, that have been tagged with the requested tag. @@ -52,23 +53,13 @@ A paginated list of objects, organized by type, that have been tagged with the r - array - + + Details on the the specific object `type` the tag is assigned to. - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - __Read-only__ The total number of results. + + string + The type of object the tag is applied to. (domain, linode, nodebalancer, volume) (example: linode) @@ -91,11 +82,11 @@ The following methods are available for this resource: - + - + tagLabel page, page_size - Returns a paginated list of all objects you've tagged with the specified tag. The response includes a mixed collection of all object types.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a paginated list of all objects you've tagged with the specified tag. The response includes a mixed collection of all object types.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management. __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -113,6 +104,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The `label` of the tag to access. (example: {{tagLabel}}) + integer @@ -129,23 +125,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Returns a paginated list of all objects you've tagged with the specified tag. The response includes a mixed collection of all object types.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of all objects you've tagged with the specified tag. The response includes a mixed collection of all object types.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management. __OAuth scopes__.

```
account:read_only
```

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT data, -page, -pages, -results +type FROM linode.tags.tagged_objects -WHERE page = '{{ page }}' +WHERE tagLabel = '{{ tagLabel }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` diff --git a/website/docs/services/tags/tags/index.md b/website/docs/services/tags/tags/index.md index 6835d8b..8f5e431 100644 --- a/website/docs/services/tags/tags/index.md +++ b/website/docs/services/tags/tags/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a tags resource. ## Overview - +
Nametags
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a tags resource. The following fields are returned by `SELECT` queries: - + A paginated list of tags. @@ -51,24 +52,9 @@ A paginated list of tags. - - array - - - - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). - - - - integer - __Read-only__ The total number of results. + + string + The name of the tag used for organization of objects on your account. (example: example tag) @@ -91,25 +77,25 @@ The following methods are available for this resource: - + page, page_size - Returns a paginated list of tags you've [created](https://techdocs.akamai.com/linode-api/reference/post-tag) on your account.
> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a paginated list of tags you've [created](https://techdocs.akamai.com/linode-api/reference/post-tag) on your account.
> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__label + label - Creates a new tag and lets you optionally add it to specific objects. Tags are labels you can attach to objects in your account. Use them to specify and group attributes of objects that are relevant to you. Currently, you can add a tag to your `linodes`, your `nodebalancers`, the `domains` for your Linodes, and the `volumes` on your Linodes.

> 📘
>
> - This operation can only be accessed by account users with _unrestricted_ access.
>
> - If you don't add a tag to a supported object with this operation, you can use that object's update operation to later add the tag you created.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Creates a new tag and lets you optionally add it to specific objects. Tags are labels you can attach to objects in your account. Use them to specify and group attributes of objects that are relevant to you. Currently, you can add a tag to your `linodes`, your `nodebalancers`, the `domains` for your Linodes, and the `volumes` on your Linodes.

> 📘
>
> - This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.
>
> - If you don't add a tag to a supported object with this operation, you can use that object's update operation to later add the tag you created.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + tagLabel - - Removes a tag from all objects and deletes it.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Removes a tag from all objects and deletes it.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -127,6 +113,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The `label` of the tag to access. (example: {{tagLabel}}) + integer @@ -143,21 +134,18 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Returns a paginated list of tags you've [created](https://techdocs.akamai.com/linode-api/reference/post-tag) on your account.
> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of tags you've [created](https://techdocs.akamai.com/linode-api/reference/post-tag) on your account.
> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +label FROM linode.tags.tags WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -170,23 +158,23 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + -Creates a new tag and lets you optionally add it to specific objects. Tags are labels you can attach to objects in your account. Use them to specify and group attributes of objects that are relevant to you. Currently, you can add a tag to your `linodes`, your `nodebalancers`, the `domains` for your Linodes, and the `volumes` on your Linodes.

> 📘
>
> - This operation can only be accessed by account users with _unrestricted_ access.
>
> - If you don't add a tag to a supported object with this operation, you can use that object's update operation to later add the tag you created.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Creates a new tag and lets you optionally add it to specific objects. Tags are labels you can attach to objects in your account. Use them to specify and group attributes of objects that are relevant to you. Currently, you can add a tag to your `linodes`, your `nodebalancers`, the `domains` for your Linodes, and the `volumes` on your Linodes.

> 📘
>
> - This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.
>
> - If you don't add a tag to a supported object with this operation, you can use that object's update operation to later add the tag you created.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.tags.tags ( -data__domains, -data__label, -data__linodes, -data__nodebalancers, -data__volumes +domains, +label, +linodes, +nodebalancers, +volumes ) SELECT '{{ domains }}', @@ -201,36 +189,35 @@ label
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: tags props: - name: domains - value: array - description: > - The `id` values for the domains where you want to apply the tag. You need `read_write` access to each domain. If you don't, the API won't create the tag and you'll receive an error. You can run the [List domains](https://techdocs.akamai.com/linode-api/reference/get-domains) operation to store the `id` for desired domains and to review any `tags` currently applied. - + value: + - {{ domains }} + description: | + The \`id\` values for the domains where you want to apply the tag. You need \`read_write\` access to each domain. If you don't, the API won't create the tag and you'll receive an error. You can run the [List domains](https://techdocs.akamai.com/linode-api/reference/get-domains) operation to store the \`id\` for desired domains and to review any \`tags\` currently applied. - name: label - value: string - description: > + value: "{{ label }}" + description: | The name of your tag. This is used for display purposes. - - name: linodes - value: array - description: > - The `id` values for the Linodes where you want to apply the tag. You need `read_write` access to each Linode. If you don't, the API won't create the tag and you'll receive an error. You can run the [List Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances) operation to store the `id` for desired Linodes and to review any `tags` currently applied. - + value: + - {{ linodes }} + description: | + The \`id\` values for the Linodes where you want to apply the tag. You need \`read_write\` access to each Linode. If you don't, the API won't create the tag and you'll receive an error. You can run the [List Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances) operation to store the \`id\` for desired Linodes and to review any \`tags\` currently applied. - name: nodebalancers - value: array - description: > - The `id` values for the NodeBalancers where you want to apply the tag. You need `read_write` access to each NodeBalancer. If you don't, the API won't create the tag and you'll receive an error. You can run the [List NodeBalancers](https://techdocs.akamai.com/linode-api/reference/get-node-balancers) operation to store the `id` for desired NodeBalancers and to review any `tags` currently applied. - + value: + - {{ nodebalancers }} + description: | + The \`id\` values for the NodeBalancers where you want to apply the tag. You need \`read_write\` access to each NodeBalancer. If you don't, the API won't create the tag and you'll receive an error. You can run the [List NodeBalancers](https://techdocs.akamai.com/linode-api/reference/get-node-balancers) operation to store the \`id\` for desired NodeBalancers and to review any \`tags\` currently applied. - name: volumes - value: array - description: > - The `id` values for the Linode volumes where you want to apply the tag. You need `read_write` access to each volume. If you don't, the API won't create the tag and you'll receive an error. You can run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation to store the `id` for desired Linode volumes and to review any `tags` currently applied. - -``` + value: + - {{ volumes }} + description: | + The \`id\` values for the Linode volumes where you want to apply the tag. You need \`read_write\` access to each volume. If you don't, the API won't create the tag and you'll receive an error. You can run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation to store the \`id\` for desired Linode volumes and to review any \`tags\` currently applied. +`} +
@@ -238,17 +225,18 @@ label ## `DELETE` examples - + -Removes a tag from all objects and deletes it.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Removes a tag from all objects and deletes it.

> 📘
>
> This operation can only be accessed by account users with _unrestricted_ access. Talk to your local account administrator about access management.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.tags.tags +WHERE tagLabel = '{{ tagLabel }}' --required ; ```
diff --git a/website/docs/services/volumes/types/index.md b/website/docs/services/volumes/types/index.md index a4aa2ae..5355e18 100644 --- a/website/docs/services/volumes/types/index.md +++ b/website/docs/services/volumes/types/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a types resource. ## Overview - +
Nametypes
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a types resource. The following fields are returned by `SELECT` queries: - + A collection of volume types. @@ -51,24 +52,29 @@ A collection of volume types. - - array - The volume types. + + string + __Read-only__ The ID representing the volume type. (example: volume) - - integer - __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + + string + __Filterable__, __Read-only__ The volume type label is for display purposes only. (example: Storage Volume) - - integer - __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + + object + __Read-only__ The default cost of this volume type. Prices are in US dollars, broken down into hourly and monthly charges. Certain regions have different prices from the default. For region-specific prices, see `region_prices`. + + + + array + - + integer - __Read-only__ The total number of results. + __Filterable__, __Read-only__ The monthly outbound transfer amount, in MB. @@ -91,11 +97,11 @@ The following methods are available for this resource: - + - Returns volume types and prices, including any region-specific rates.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + Returns Block Storage volume types and prices, including any region-specific rates.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -119,21 +125,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Returns volume types and prices, including any region-specific rates.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) +Returns Block Storage volume types and prices, including any region-specific rates.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) ```sql SELECT -data, -page, -pages, -results +id, +label, +price, +region_prices, +transfer FROM linode.volumes.types ; ``` diff --git a/website/docs/services/volumes/volumes/index.md b/website/docs/services/volumes/volumes/index.md index 1d4a069..40bb6d6 100644 --- a/website/docs/services/volumes/volumes/index.md +++ b/website/docs/services/volumes/volumes/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a volumes resource. ## Overview - +
Namevolumes
Name
TypeResource
Id
@@ -32,15 +33,15 @@ Creates, updates, deletes, gets or lists a volumes resource. The following fields are returned by `SELECT` queries: - + -Returns a single Volume object. +Returns a single volume object. @@ -64,12 +65,12 @@ Returns a single Volume object. - + - + @@ -79,12 +80,17 @@ Returns a single Volume object. - + + + + + + - + @@ -94,17 +100,17 @@ Returns a single Volume object. - + - + - + @@ -114,14 +120,14 @@ Returns a single Volume object. - +
string (date-time)__Read-only__ When this volume was created. (example: 2018-01-01T00:01:01)__Read-only__ When this volume was created. (example: 2025-01-01T00:01:01)
string__Read-only__ Whether encryption is enabled on this volume. (example: enabled)__Read-only__ Whether encryption is enabled on this volume. (enabled, disabled) (example: enabled)
string__Read-only__ The storage type of this volume. This can be either `hdd` to emulate a hard disk drive for the volume, or `nvme` to emulate a non-volatile memory express solid state drive. (example: nvme)__Read-only__ The storage type of this volume. This can be either `hdd` to emulate a hard disk drive for the volume, or `nvme` to emulate a non-volatile memory express solid state drive. (hdd, nvme) (example: nvme)
boolean__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.
string__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`. (example: my-volume, pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$)__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`. (example: my-volume, pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$)
stringThe unique ID of this Region. (example: us-east)The unique identifier for the region where the volume lives. (example: us-iad)
integerThe Volume's size, in GiB.The volume's size, in gigabytes.
string__Read-only__ The current status of the volume. This can be one of: - `creating`. The API is creating the volume and it's not ready for use. - `active`. The volume is online and ready for use. - `resizing`. The volume's capacity is being upgraded. - `key_rotating`. The volume's encryption keys are being rotated to new values. Requests to resize, delete, or clone a volume fail during encryption key rotation. (example: active)__Read-only__ The current status of the volume. This can be one of: - `creating`. The API is creating the volume and it's not ready for use. - `active`. The volume is online and ready for use. - `resizing`. The volume's capacity is being upgraded. - `key_rotating`. The volume's encryption keys are being rotated to new values. Requests to resize, delete, or clone a volume fail during encryption key rotation. (creating, active, resizing, key_rotating) (example: active)
string (date-time)__Read-only__ When this volume was last updated. (example: 2018-01-01T00:01:01)__Read-only__ When this volume was last updated. (example: 2025-01-01T00:01:01)
- + -Returns an array of all Volumes on your Account. +The Block Storage volumes on your account are returned. @@ -133,24 +139,74 @@ Returns an array of all Volumes on your Account. - - - + + + - + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + + +
arrayinteger__Read-only__ The unique identifier for the volume.
integer__Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination).The unique identifier of the Linode this volume is attached to, if applicable.
integer__Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination).string (date-time)__Read-only__ When this volume was created. (example: 2025-01-01T00:01:01)
string__Read-only__ Whether encryption is enabled on this volume. (enabled, disabled) (example: enabled)
string__Read-only__ The full file system path for the volume, based on its `label`. The path is `/dev/disk/by-id/scsi-0Linode_Volume_label`. (example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume)
string__Read-only__ The storage type of this volume. This can be either `hdd` to emulate a hard disk drive for the volume, or `nvme` to emulate a non-volatile memory express solid state drive. (hdd, nvme) (example: nvme)
boolean__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.
string__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`. (example: my-volume, pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$)
string__Read-only__ The name of the Linode this volume is attached to, if applicable. (example: linode123)
stringThe unique identifier for the region where the volume lives. (example: us-iad)
integer__Read-only__ The total number of results.The volume's size, in gigabytes.
string__Read-only__ The current status of the volume. This can be one of: - `creating`. The API is creating the volume and it's not ready for use. - `active`. The volume is online and ready for use. - `resizing`. The volume's capacity is being upgraded. - `key_rotating`. The volume's encryption keys are being rotated to new values. Requests to resize, delete, or clone a volume fail during encryption key rotation. (creating, active, resizing, key_rotating) (example: active)
array__Filterable__ Any tags applied to this object. Use [tags](https://techdocs.akamai.com/linode-api/reference/post-tag) to label and organize your cloud computing resources.
string (date-time)__Read-only__ When this volume was last updated. (example: 2025-01-01T00:01:01)
@@ -173,67 +229,67 @@ The following methods are available for this resource: - + - + volumeId page, page_size - Get information about a single Volume.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Get information about a specific Block Storage volume.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size - Returns a paginated list of Volumes you have permission to view.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Returns a paginated list of the Block Storage volumes that you have permission to view.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - data__label + label - Creates a volume on your account. For this to complete, you need the `add_volumes` grant. Creating a new volume accrues additional charges on your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Creates a [Block Storage](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-block-storage) volume on your account. Creating a new volume accrues additional charges on your account.

> 📘
>
> To run this operation, your user needs the `add_volume` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + volumeId - - Updates a Volume that you have permission to `read_write`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Update a Block Storage volume that you have permission to `read_write`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + volumeId - - Deletes a Volume you have permission to `read_write`.

- __Deleting a Volume is a destructive action and cannot be undone.__

- Deleting stops billing for the Volume. You will be billed for time used within the billing period the Volume was active.

- Volumes that are migrating cannot be deleted until the migration is finished.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Deletes a specified Block Storage volume that you have permission to `read_write`.

- Deleting a volume can't be undone.

- Deleting stops billing for the volume. You'll be billed for the time the volume was active during the current billing period.

- You can't delete a volume that's currently being migrated. You need to wait for the migration to complete.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - linode_id + volumeId, linode_id - Attaches a Volume on your Account to an existing Linode on your Account. In order for this request to complete successfully, your User must have `read_write` permission to the Volume and `read_write` permission to the Linode. Additionally, the Volume and Linode must be located in the same Region.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Attach a Block Storage volume to an existing Linode.

> 📘
>
> - To run this operation, your user needs the `read-write` permission to both the volume and the Linode you want to add it to.
>
> - The volume and its target Linode need to exist in the same `region`. You can run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) and [List Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances) operations and review the `region` for each.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - label + volumeId, label - Creates a Volume on your Account. In order for this request to complete successfully, your User must have the `add_volumes` grant. The new Volume will have the same size and data as the source Volume. Creating a new Volume will incur a charge on your Account.

- Only Volumes with a `status` of `active` can be cloned.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Target an existing Block Storage volume to create a new one, that's the same size and includes the same data. A new volume will incur a charge on your account.

> 📘
>
> - To run this operation, your user needs the `add_volume` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).
>
> - Only a volume with a `status` of `active` can be cloned. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation to view the `status` of each of your volumes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + + volumeId - - Detaches a Volume on your Account from a Linode on your Account. In order for this request to complete successfully, your User must have `read_write` access to the Volume and `read_write` access to the Linode.

Volumes are automatically detached from deleted Linodes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Detach a Block Storage volume from a Linode. When you [delete](https://techdocs.akamai.com/linode-api/reference/delete-linode-instance) a Linode, any volumes attached to it are automatically detached.

> 📘
>
> To run this operation, your user needs the `read-write` permission to both the volume and the Linode you want to detach it from.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - size + volumeId, size - Resize an existing Volume on your Account. In order for this request to complete successfully, your User must have the `read_write` permissions to the Volume.

- Volumes can only be resized up.
- Only Volumes with a `status` of "active" can be resized.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + Increase the size of an existing Block Storage volume on your account.

> 📘
>
> - To run this operation, your user needs the `add_volume` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).
>
> - You can't decrease the size of an existing volume.
>
> - Only a volume with a `status` of `active` can be resized. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation to view the `status` of each of your volumes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -251,6 +307,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The unique identifier for the target volume. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation and store the `id` for the target volume as your `volumeId`. + integer @@ -267,15 +328,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Get information about a single Volume.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Get information about a specific Block Storage volume.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT @@ -285,6 +346,7 @@ created, encryption, filesystem_path, hardware_type, +io_ready, label, linode_label, region, @@ -293,21 +355,32 @@ status, tags, updated FROM linode.volumes.volumes -WHERE page = '{{ page }}' +WHERE volumeId = '{{ volumeId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ```
- + -Returns a paginated list of Volumes you have permission to view.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Returns a paginated list of the Block Storage volumes that you have permission to view.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql SELECT -data, -page, -pages, -results +id, +linode_id, +created, +encryption, +filesystem_path, +hardware_type, +io_ready, +label, +linode_label, +region, +size, +status, +tags, +updated FROM linode.volumes.volumes WHERE page = '{{ page }}' AND page_size = '{{ page_size }}' @@ -320,25 +393,25 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + -Creates a volume on your account. For this to complete, you need the `add_volumes` grant. Creating a new volume accrues additional charges on your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Creates a [Block Storage](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-block-storage) volume on your account. Creating a new volume accrues additional charges on your account.

> 📘
>
> To run this operation, your user needs the `add_volume` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.volumes.volumes ( -data__config_id, -data__encryption, -data__label, -data__linode_id, -data__region, -data__size, -data__tags +config_id, +encryption, +label, +linode_id, +region, +size, +tags ) SELECT {{ config_id }}, @@ -355,6 +428,7 @@ created, encryption, filesystem_path, hardware_type, +io_ready, label, linode_label, region, @@ -367,61 +441,50 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: volumes props: - name: config_id - value: integer - description: > - When creating a volume attached to a Linode, this is the identifier of the Linode configuration profile (config) where the volume will live. Run the [List configuration profiles](https://techdocs.akamai.com/linode-api/reference/get-linode-configs) operation and store the `id` for the applicable config. The following apply when adding a `config_id`: - -- The selected config needs to belong to the Linode referenced by `linode_id` in this request. - -- You can't provide a `config_id` if you don't also provide a `linode_id` in the request. - -- If you send a `linode_id` without a `config_id` in the request, the API attaches the volume to that Linode's last used config, or to the only config in that Linode. If there isn't a config available for attachment, the API returns an error. - + value: {{ config_id }} + description: | + When creating a volume attached to a Linode, this is the identifier of the Linode configuration profile (config) where the volume will live. Run the [List configuration profiles](https://techdocs.akamai.com/linode-api/reference/get-linode-configs) operation and store the \`id\` for the applicable config. The following apply when adding a \`config_id\`: + - The selected config needs to belong to the Linode referenced by \`linode_id\` in this request. + - You can't provide a \`config_id\` if you don't also provide a \`linode_id\` in the request. + - If you send a \`linode_id\` without a \`config_id\` in the request, the API attaches the volume to that Linode's last used config, or to the only config in that Linode. If there isn't a config available for attachment, the API returns an error. - name: encryption - value: string - description: > + value: "{{ encryption }}" + description: | Enables encryption on the volume. Full disk encryption ensures the data stored on a block storage volume drive is secure. It protects against unauthorized access by keeping the data encrypted if the volume drive is removed from the data center, decommissioned, or disposed of. - -The platform automatically manages the encryption and decryption process for you. You can use an encrypted volume the same way you use a non-encrypted volume. - -> 📘 -> -> You can enable or disable disk encryption only when creating new block storage volumes. After a volume is created, the encryption setting can't be changed. - + The platform automatically manages the encryption and decryption process for you. You can use an encrypted volume the same way you use a non-encrypted volume. + > 📘 + > + > You can enable or disable disk encryption only when creating new block storage volumes. After a volume is created, the encryption setting can't be changed. valid_values: ['enabled', 'disabled'] default: disabled - name: label - value: string - description: > - The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`. - + value: "{{ label }}" + description: | + The name of the volume. A \`label\` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's \`filesystem_path\`. - name: linode_id - value: integer - description: > + value: {{ linode_id }} + description: | The Linode this volume should be attached to after it's created. If not given, the volume will be created without an attachment. - - name: region - value: string - description: > - The region where the API deploys the volume. This is only required if you didn't provide a `linode_id` for the volume. - + value: "{{ region }}" + description: | + The region where the API deploys the volume. This is only required if you didn't provide a \`linode_id\` for the volume. - name: size - value: integer - description: > + value: {{ size }} + description: | The initial size of this volume, in GB. Volumes can only be resized after the creation completes. - default: 20 - name: tags - value: array - description: > + value: + - "{{ tags }}" + description: | __Filterable__ Any tags applied to this object. Use [tags](https://techdocs.akamai.com/linode-api/reference/post-tag) to label and organize your cloud computing resources. - -``` +`} +
@@ -429,21 +492,25 @@ The platform automatically manages the encryption and decryption process for you ## `REPLACE` examples - + -Updates a Volume that you have permission to `read_write`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Update a Block Storage volume that you have permission to `read_write`.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.volumes.volumes SET -data__label = '{{ label }}', -data__region = '{{ region }}', -data__tags = '{{ tags }}' +label = '{{ label }}', +linode_id = {{ linode_id }}, +region = '{{ region }}', +size = {{ size }}, +tags = '{{ tags }}' +WHERE +volumeId = '{{ volumeId }}' --required RETURNING id, linode_id, @@ -451,6 +518,7 @@ created, encryption, filesystem_path, hardware_type, +io_ready, label, linode_label, region, @@ -466,17 +534,18 @@ updated; ## `DELETE` examples - + -Deletes a Volume you have permission to `read_write`.

- __Deleting a Volume is a destructive action and cannot be undone.__

- Deleting stops billing for the Volume. You will be billed for time used within the billing period the Volume was active.

- Volumes that are migrating cannot be deleted until the migration is finished.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Deletes a specified Block Storage volume that you have permission to `read_write`.

- Deleting a volume can't be undone.

- Deleting stops billing for the volume. You'll be billed for the time the volume was active during the current billing period.

- You can't delete a volume that's currently being migrated. You need to wait for the migration to complete.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.volumes.volumes +WHERE volumeId = '{{ volumeId }}' --required ; ```
@@ -486,20 +555,21 @@ DELETE FROM linode.volumes.volumes ## Lifecycle Methods - + -Attaches a Volume on your Account to an existing Linode on your Account. In order for this request to complete successfully, your User must have `read_write` permission to the Volume and `read_write` permission to the Linode. Additionally, the Volume and Linode must be located in the same Region.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Attach a Block Storage volume to an existing Linode.

> 📘
>
> - To run this operation, your user needs the `read-write` permission to both the volume and the Linode you want to add it to.
>
> - The volume and its target Linode need to exist in the same `region`. You can run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) and [List Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances) operations and review the `region` for each.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.volumes.volumes.post_attach_volume +EXEC linode.volumes.volumes.attach +@volumeId='{{ volumeId }}' --required @@json= '{ "config_id": {{ config_id }}, @@ -509,12 +579,13 @@ EXEC linode.volumes.volumes.post_attach_volume ; ```
- + -Creates a Volume on your Account. In order for this request to complete successfully, your User must have the `add_volumes` grant. The new Volume will have the same size and data as the source Volume. Creating a new Volume will incur a charge on your Account.

- Only Volumes with a `status` of `active` can be cloned.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Target an existing Block Storage volume to create a new one, that's the same size and includes the same data. A new volume will incur a charge on your account.

> 📘
>
> - To run this operation, your user needs the `add_volume` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).
>
> - Only a volume with a `status` of `active` can be cloned. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation to view the `status` of each of your volumes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.volumes.volumes.post_clone_volume +EXEC linode.volumes.volumes.clone +@volumeId='{{ volumeId }}' --required @@json= '{ "label": "{{ label }}" @@ -522,22 +593,23 @@ EXEC linode.volumes.volumes.post_clone_volume ; ```
- + -Detaches a Volume on your Account from a Linode on your Account. In order for this request to complete successfully, your User must have `read_write` access to the Volume and `read_write` access to the Linode.

Volumes are automatically detached from deleted Linodes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Detach a Block Storage volume from a Linode. When you [delete](https://techdocs.akamai.com/linode-api/reference/delete-linode-instance) a Linode, any volumes attached to it are automatically detached.

> 📘
>
> To run this operation, your user needs the `read-write` permission to both the volume and the Linode you want to detach it from.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.volumes.volumes.post_detach_volume - +EXEC linode.volumes.volumes.detach +@volumeId='{{ volumeId }}' --required ; ```
- + -Resize an existing Volume on your Account. In order for this request to complete successfully, your User must have the `read_write` permissions to the Volume.

- Volumes can only be resized up.
- Only Volumes with a `status` of "active" can be resized.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) +Increase the size of an existing Block Storage volume on your account.

> 📘
>
> - To run this operation, your user needs the `add_volume` [grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).
>
> - You can't decrease the size of an existing volume.
>
> - Only a volume with a `status` of `active` can be resized. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation to view the `status` of each of your volumes.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql -EXEC linode.volumes.volumes.post_resize_volume +EXEC linode.volumes.volumes.resize +@volumeId='{{ volumeId }}' --required @@json= '{ "size": {{ size }} diff --git a/website/docs/services/vpcs/ip_addresses/index.md b/website/docs/services/vpcs/ip_addresses/index.md index aac9e76..29daf69 100644 --- a/website/docs/services/vpcs/ip_addresses/index.md +++ b/website/docs/services/vpcs/ip_addresses/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an ip_addresses resource. ## Overview - +
Nameip_addresses
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an ip_addresses resource. The following fields are returned by `SELECT` queries: - + The IP addresses for the requested VPC. @@ -119,7 +120,7 @@ The IP addresses for the requested VPC. - + A paginated list of VPC interface IP addresses. @@ -218,14 +219,14 @@ The following methods are available for this resource: - + - + vpcId page, page_size Returns a paginated list of IP addresses for a single VPC.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + page, page_size @@ -247,6 +248,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The `id` of the VPC. + integer @@ -263,13 +269,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a paginated list of IP addresses for a single VPC.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -289,12 +295,13 @@ prefix, region, subnet_mask FROM linode.vpcs.ip_addresses -WHERE page = '{{ page }}' +WHERE vpcId = '{{ vpcId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ```
- + Returns a paginated list of all VPC IP addresses and address ranges on your account.

> 📘
>
> If a Linode has several configuration profiles that include a VPC interface, address information for all of them is listed in the response. Since VPCs can use the same address space, you may see duplicate IP addresses.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) diff --git a/website/docs/services/vpcs/subnets/index.md b/website/docs/services/vpcs/subnets/index.md index f422bca..1db4d46 100644 --- a/website/docs/services/vpcs/subnets/index.md +++ b/website/docs/services/vpcs/subnets/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a subnets resource. ## Overview - +
Namesubnets
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a subnets resource. The following fields are returned by `SELECT` queries: - + A VPC Subnet object. @@ -84,7 +85,7 @@ A VPC Subnet object. - + A paginated list of VPC Subnet objects. @@ -148,37 +149,37 @@ The following methods are available for this resource: - + - + vpcId, vpcSubnetId Get information about a single VPC Subnet.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + - + vpcId page, page_size Get information about all VPC Subnets associated with a VPC.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + - data__ipv4, data__label + vpcId, ipv4, label Create a VPC Subnet.

- The User accessing this operation must have `read_write` grants to the VPC.
- A successful request triggers a `subnet_create` event.

Once a VPC Subnet is created, it can be attached to a Linode by assigning the Subnet to one of the Linode's Configuration Profile Interfaces. This step can be accomplished with the following operations:

- [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
- [Create a config profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config)
- [Update a config profile](https://techdocs.akamai.com/linode-api/reference/put-linode-config)
- [Add a configuration profile interface](https://techdocs.akamai.com/linode-api/reference/post-linode-config-interface)

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + vpcId, vpcSubnetId Update a VPC Subnet.

- The User accessing this operation must have `read_write` grants to the VPC.
- A successful request triggers a `subnet_update` event.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + vpcId, vpcSubnetId Delete a single VPC subnet.

The user accessing this operation must have `read_write` grants to the VPC. A successful request triggers a `subnet_delete` event.

> 📘
>
> You need to delete all the Configuration Profile Interfaces that this subnet is assigned to before you can delete it. If those interfaces are active, the associated Linode needs to be shut down before they can be removed.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -198,6 +199,16 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The `id` of the VPC. + + + + string + The `id` of the VPC Subnet. + integer @@ -214,13 +225,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get information about a single VPC Subnet.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -233,10 +244,12 @@ label, linodes, updated FROM linode.vpcs.subnets +WHERE vpcId = '{{ vpcId }}' -- required +AND vpcSubnetId = '{{ vpcSubnetId }}' -- required ; ```
- + Get information about all VPC Subnets associated with a VPC.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -249,7 +262,8 @@ label, linodes, updated FROM linode.vpcs.subnets -WHERE page = '{{ page }}' +WHERE vpcId = '{{ vpcId }}' -- required +AND page = '{{ page }}' AND page_size = '{{ page_size }}' ; ``` @@ -260,24 +274,26 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Create a VPC Subnet.

- The User accessing this operation must have `read_write` grants to the VPC.
- A successful request triggers a `subnet_create` event.

Once a VPC Subnet is created, it can be attached to a Linode by assigning the Subnet to one of the Linode's Configuration Profile Interfaces. This step can be accomplished with the following operations:

- [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
- [Create a config profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config)
- [Update a config profile](https://techdocs.akamai.com/linode-api/reference/put-linode-config)
- [Add a configuration profile interface](https://techdocs.akamai.com/linode-api/reference/post-linode-config-interface)

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.vpcs.subnets ( -data__ipv4, -data__label +ipv4, +label, +vpcId ) SELECT '{{ ipv4 }}' /* required */, -'{{ label }}' /* required */ +'{{ label }}' /* required */, +'{{ vpcId }}' RETURNING id, created, @@ -290,29 +306,28 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: subnets props: + - name: vpcId + value: "{{ vpcId }}" + description: Required parameter for the subnets resource. - name: ipv4 - value: string - description: > + value: "{{ ipv4 }}" + description: | IPv4 range in CIDR canonical form. - -- The range must belong to a private address space as defined in [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918). -- Allowed prefix lengths: 1-29. -- The range must not overlap with 192.168.128.0/17. -- The range must not overlap with other Subnets on the same VPC. - + - The range must belong to a private address space as defined in [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918). + - Allowed prefix lengths: 1-29. + - The range must not overlap with 192.168.128.0/17. + - The range must not overlap with other Subnets on the same VPC. - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ The VPC Subnet's label, for display purposes only. + - Must be unique among the VPC's Subnets. + - Can only contain ASCII letters, numbers, and hyphens (\`-\`). You can't use two consecutive hyphens (\`--\`). +`} -- Must be unique among the VPC's Subnets. -- Can only contain ASCII letters, numbers, and hyphens (`-`). You can't use two consecutive hyphens (`--`). - -```
@@ -320,19 +335,22 @@ updated ## `REPLACE` examples - + Update a VPC Subnet.

- The User accessing this operation must have `read_write` grants to the VPC.
- A successful request triggers a `subnet_update` event.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.vpcs.subnets SET -data__label = '{{ label }}' +label = '{{ label }}' +WHERE +vpcId = '{{ vpcId }}' --required +AND vpcSubnetId = '{{ vpcSubnetId }}' --required RETURNING id, created, @@ -348,17 +366,19 @@ updated; ## `DELETE` examples - + Delete a single VPC subnet.

The user accessing this operation must have `read_write` grants to the VPC. A successful request triggers a `subnet_delete` event.

> 📘
>
> You need to delete all the Configuration Profile Interfaces that this subnet is assigned to before you can delete it. If those interfaces are active, the associated Linode needs to be shut down before they can be removed.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.vpcs.subnets +WHERE vpcId = '{{ vpcId }}' --required +AND vpcSubnetId = '{{ vpcSubnetId }}' --required ; ```
diff --git a/website/docs/services/vpcs/vpcs/index.md b/website/docs/services/vpcs/vpcs/index.md index 900c3b4..d53f97e 100644 --- a/website/docs/services/vpcs/vpcs/index.md +++ b/website/docs/services/vpcs/vpcs/index.md @@ -15,6 +15,7 @@ image: /img/stackql-linode-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'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a vpcs resource. ## Overview - +
Namevpcs
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a vpcs resource. The following fields are returned by `SELECT` queries: - + A VPC object. @@ -89,7 +90,7 @@ A VPC object. - + A paginated list of VPC objects. @@ -158,37 +159,37 @@ The following methods are available for this resource: - + - + vpcId Get information about a single VPC.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + page, page_size Display all VPCs on your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - + - data__label, data__region + label, region Create a new VPC and optionally associated VPC Subnets.

- Users must have the `add_vpc` grant to access this operation.
- A successful request triggers a `vpc_create` event and `subnet_create` events for any created VPC Subnets.

Once a VPC is created, it can be attached to a Linode by assigning a VPC Subnet to one of the Linode's Configuration Profile Interfaces. This step can be accomplished with the following operations:

- [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
- [Create a config profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config)
- [Update a config profile](https://techdocs.akamai.com/linode-api/reference/put-linode-config)
- [Add a configuration profile interface](https://techdocs.akamai.com/linode-api/reference/post-linode-config-interface)

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + vpcId Update an existing VPC.

- The User accessing this operation must have `read_write` grants to the VPC.
- A successful request triggers a `vpc_update` event.

To update a VPC's Subnet, run the [Update a VPC subnet](https://techdocs.akamai.com/linode-api/reference/put-vpc-subnet) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - + - + vpcId Delete a single VPC and all of its Subnets.

- The User accessing this operation must have `read_write` grants to the VPC.
- A successful request triggers a `vpc_delete` event and `subnet_delete` events for each deleted VPC Subnet.
- All of the VPC's Subnets must be eligible for deletion. Accordingly, all Configuration Profile Interfaces that each Subnet is assigned to must first be deleted. If those Interfaces are active, the associated Linodes must first be shut down before they can be removed. If any Subnet cannot be deleted, then neither the VPC nor any of its Subnets are deleted.
- You can't delete a VPC if a NodeBalancer is attached to one of its subnets.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) @@ -208,6 +209,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The `id` of the VPC. + integer @@ -224,13 +230,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get information about a single VPC.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -244,10 +250,11 @@ region, subnets, updated FROM linode.vpcs.vpcs +WHERE vpcId = '{{ vpcId }}' -- required ; ```
- + Display all VPCs on your account.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -272,22 +279,22 @@ AND page_size = '{{ page_size }}' ## `INSERT` examples - + Create a new VPC and optionally associated VPC Subnets.

- Users must have the `add_vpc` grant to access this operation.
- A successful request triggers a `vpc_create` event and `subnet_create` events for any created VPC Subnets.

Once a VPC is created, it can be attached to a Linode by assigning a VPC Subnet to one of the Linode's Configuration Profile Interfaces. This step can be accomplished with the following operations:

- [Create a Linode](https://techdocs.akamai.com/linode-api/reference/post-linode-instance)
- [Create a config profile](https://techdocs.akamai.com/linode-api/reference/post-add-linode-config)
- [Update a config profile](https://techdocs.akamai.com/linode-api/reference/put-linode-config)
- [Add a configuration profile interface](https://techdocs.akamai.com/linode-api/reference/post-linode-config-interface)

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql INSERT INTO linode.vpcs.vpcs ( -data__subnets, -data__description, -data__label, -data__region +subnets, +description, +label, +region ) SELECT '{{ subnets }}', @@ -307,35 +314,28 @@ updated
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: vpcs props: - name: subnets - value: array - description: > - A list of subnets associated with the VPC. - + value: "{{ subnets }}" - name: description - value: string - description: > + value: "{{ description }}" + description: | A written description to help distinguish the VPC. - default: - name: label - value: string - description: > + value: "{{ label }}" + description: | __Filterable__ The VPC's label, for display purposes only. - -- Needs to be unique among the Account's VPCs. -- Can only contain ASCII letters, numbers, and hyphens (`-`). You can't use two consecutive hyphens (`--`). - + - Needs to be unique among the Account's VPCs. + - Can only contain ASCII letters, numbers, and hyphens (\`-\`). You can't use two consecutive hyphens (\`--\`). - name: region - value: string - description: > + value: "{{ region }}" + description: | __Filterable__ The Region for the VPC. - -``` +`} +
@@ -343,20 +343,22 @@ updated ## `REPLACE` examples - + Update an existing VPC.

- The User accessing this operation must have `read_write` grants to the VPC.
- A successful request triggers a `vpc_update` event.

To update a VPC's Subnet, run the [Update a VPC subnet](https://techdocs.akamai.com/linode-api/reference/put-vpc-subnet) operation.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql REPLACE linode.vpcs.vpcs SET -data__description = '{{ description }}', -data__label = '{{ label }}' +description = '{{ description }}', +label = '{{ label }}' +WHERE +vpcId = '{{ vpcId }}' --required RETURNING id, created, @@ -373,17 +375,18 @@ updated; ## `DELETE` examples - + Delete a single VPC and all of its Subnets.

- The User accessing this operation must have `read_write` grants to the VPC.
- A successful request triggers a `vpc_delete` event and `subnet_delete` events for each deleted VPC Subnet.
- All of the VPC's Subnets must be eligible for deletion. Accordingly, all Configuration Profile Interfaces that each Subnet is assigned to must first be deleted. If those Interfaces are active, the associated Linodes must first be shut down before they can be removed. If any Subnet cannot be deleted, then neither the VPC nor any of its Subnets are deleted.
- You can't delete a VPC if a NodeBalancer is attached to one of its subnets.

[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) ```sql DELETE FROM linode.vpcs.vpcs +WHERE vpcId = '{{ vpcId }}' --required ; ```
diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 0066237..4fe52b7 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -1,232 +1,36 @@ -// @ts-check -// `@type` JSDoc annotations allow editor autocompletion and type checking -// (when paired with `@ts-check`). -// There are various equivalent ways to declare your Docusaurus config. -// See: https://docusaurus.io/docs/api/docusaurus-config - import {themes as prismThemes} from 'prism-react-renderer'; - -// Provider configuration - change these for different providers -const providerName = "linode"; -const providerTitle = "Linode"; - -const providerDropDownListItems = [ - { - label: 'AWS', - to: '/providers/aws', - }, - { - label: 'Azure', - to: '/providers/azure', - }, - { - label: 'Google', - to: '/providers/google', - }, - { - label: 'Databricks', - to: '/providers/databricks', - }, - { - label: 'Snowflake', - to: '/providers/snowflake', - }, - { - label: 'Confluent', - to: '/providers/confluent', - }, - { - label: 'Okta', - to: '/providers/okta', - }, - { - label: 'GitHub', - to: '/providers/github', - }, - { - label: 'OpenAI', - to: '/providers/openai', - }, - { - label: '... More', - to: '/providers', - }, -]; - -const footerStackQLItems = [ - { - label: 'Documentation', - to: '/stackqldocs', - }, - { - label: 'Install', - to: '/install', - }, - { - label: 'Contact us', - to: '/contact-us', - }, -]; - -const footerMoreItems = [ - { - label: 'Providers', - to: '/providers', - }, - { - label: 'stackql-deploy', - to: '/stackql-deploy', - }, - { - label: 'Blog', - to: '/blog', - }, - { - label: 'Tutorials', - to: '/tutorials', - }, -]; - -// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) - -/** @type {import('@docusaurus/types').Config} */ -const config = { - title: `StackQL ${providerTitle} Provider`, - tagline: `Query and Provision ${providerTitle} Resources using StackQL`, - favicon: 'img/favicon.ico', - staticDirectories: ['static'], - // Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future - future: { - v4: true, // Improve compatibility with the upcoming Docusaurus v4 - }, - - // Set the production url of your site here - url: `https://${providerName}-provider.stackql.io`, - // Set the // pathname under which your site is served - // For GitHub pages deployment, it is often '//' - baseUrl: '/', - - // GitHub pages deployment config. - // If you aren't using GitHub pages, you don't need these. - organizationName: 'stackql', // Usually your GitHub org/user name. - projectName: `stackql-provider-${providerName}`, // Usually your repo name. - - onBrokenLinks: 'warn', - onBrokenMarkdownLinks: 'warn', - - // Even if you don't use internationalization, you can use this field to set - // useful metadata like html lang. For example, if your site is Chinese, you - // may want to replace "en" with "zh-Hans". - i18n: { - defaultLocale: 'en', - locales: ['en'], - }, - - presets: [ - [ - 'classic', - /** @type {import('@docusaurus/preset-classic').Options} */ - ({ - docs: { - sidebarPath: './sidebars.js', - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - // editUrl: 'https://github.com/stackql/stackql-deploy/tree/main/website/', - routeBasePath: '/', // Set the docs to be the root of the site - }, - theme: { - customCss: './src/css/custom.css', - }, - }), - ], - ], - - themeConfig: - /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ - ({ - // Replace with your project's social card - image: 'img/stackql-cover.png', - navbar: { - logo: { - alt: 'StackQL Registry', - href: '/providers', - src: 'img/stackql-registry-logo.svg', - srcDark: 'img/stackql-registry-logo-white.svg', - }, - items: [ - { - to: '/install', - position: 'left', - label: 'Install', - }, - { - to: '/stackql-deploy', - position: 'left', - label: 'stackql-deploy', - }, - { - to: '/providers', - type: 'dropdown', - label: 'Providers', - position: 'left', - items: providerDropDownListItems, - }, - { - type: 'dropdown', - label: 'More', - position: 'left', - items: [ - { - to: '/stackqldocs', - label: 'StackQL Docs', - }, - { - to: '/blog', - label: 'Blog', - }, - { - to: '/tutorials', - label: 'Tutorials', - }, - ], - }, - { - href: 'https://github.com/stackql/stackql', - position: 'right', - className: 'header-github-link', - 'aria-label': 'GitHub repository', - }, - ], - }, - footer: { - style: 'dark', - logo: { - alt: 'StackQL', - href: '/providers', - src: 'img/stackql-registry-logo.svg', - srcDark: 'img/stackql-registry-logo-white.svg', - }, - links: [ - { - title: 'StackQL', - items: footerStackQLItems, - }, - { - title: 'More', - items: footerMoreItems, - }, - ], - copyright: `© ${new Date().getFullYear()} StackQL Studios`, - }, - colorMode: { - // using user system preferences, instead of the hardcoded defaultMode - respectPrefersColorScheme: true, - }, - prism: { - theme: prismThemes.nightOwl, - darkTheme: prismThemes.dracula, - }, - }), +import { createConfig } from './.shared-config/index.js'; +import { providerName, providerTitle } from './provider.js'; + +const config = createConfig({ + providerName, + providerTitle, + prismThemes, + overrides: { + future: { + v4: true, + faster: true, + }, + }, +}); + +// This provider's website lives at website/ within the canonical +// stackql-registry/stackql-provider-linode repo, so the "Edit this page" links +// point at that subdirectory (the shared config default omits the website/ path). +config.projectName = 'stackql-provider-linode'; +config.presets[0][1].docs.editUrl = + 'https://github.com/stackql-registry/stackql-provider-linode/edit/main/website/'; + +// 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 }; export default config; diff --git a/website/package.json b/website/package.json index 8f57f6c..923281d 100644 --- a/website/package.json +++ b/website/package.json @@ -4,6 +4,9 @@ "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", "start": "docusaurus start", "build": "docusaurus build", "swizzle": "docusaurus swizzle", @@ -14,8 +17,11 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/preset-classic": "3.8.1", + "@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", @@ -29,8 +35,25 @@ "react-dom": "^19.0.0" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/types": "3.8.1" + "@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", + "sharp": "^0.33.0" + }, + "resolutions": { + "rimraf": "^6.0.1", + "glob": "^13.0.0", + "memfs": "^4.17.0", + "uuid": "^11.0.0", + "@ungap/structured-clone": "^1.3.1", + "sharp": "^0.33.0" }, "browserslist": { "production": [ @@ -45,7 +68,7 @@ ] }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "license": "MIT" } diff --git a/website/provider.js b/website/provider.js new file mode 100644 index 0000000..01b84ac --- /dev/null +++ b/website/provider.js @@ -0,0 +1,2 @@ +export const providerName = 'linode'; +export const providerTitle = 'Linode'; diff --git a/website/sidebars.js b/website/sidebars.js index 72e3166..f719984 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -1,42 +1,14 @@ -// @ts-check +import { providerTitle } from './provider.js'; -// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) - -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - - @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} - */ - -import config from './docusaurus.config'; - -const providerTitle = config.title.replace(/^StackQL /, '').replace(/ Provider$/, ''); - - const sidebars = { +const sidebars = { mainSidebar: [ - { - type: 'link', - label: 'All Providers', - href: '/providers', - }, + { type: 'link', label: 'All Providers', href: '/providers' }, { type: 'category', label: `${providerTitle} Provider`, - link: {type: 'doc', id: 'provider-intro'}, - items: [ - { - type: 'autogenerated', - dirName: 'services', - } - ] - }, + link: { type: 'doc', id: 'provider-intro' }, + items: [{ type: 'autogenerated', dirName: 'services' }], + }, ], }; diff --git a/website/src/components/SchemaTable/SchemaTable.js b/website/src/components/SchemaTable/SchemaTable.js new file mode 100644 index 0000000..fa75677 --- /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 ( + <> + + + {hasChildren && ( + setExpanded(!expanded)} + > + {expanded ? '▼' : '▶'} + + )} + {name} + + {type} + + + {expanded && children?.map((child, idx) => ( + + ))} + + ); +} + +export default function SchemaTable({ fields }) { + return ( + + + + + + + + + + {fields.map((field, idx) => ( + + ))} + +
NameDatatypeDescription
+ ); +} \ 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..9b88751 --- /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..f616a0c --- /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

. + */ +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 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 ( +
+ + + + + + + + Download + + + + + + + + {copied ? 'Copied!' : 'Copy'} + + + +
+ ); +} diff --git a/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.module.css b/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.module.css new file mode 100644 index 0000000..c63460e --- /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/custom.css b/website/src/css/global.css similarity index 89% rename from website/src/css/custom.css rename to website/src/css/global.css index ce0b531..3e50218 100644 --- a/website/src/css/custom.css +++ b/website/src/css/global.css @@ -256,4 +256,32 @@ div:has(> .vhsImage) { .providerDocColumn { width: 100%; } - } \ No newline at end of file + } + +/* +* 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'); + } +} \ No newline at end of file diff --git a/website/src/pages/blog.js b/website/src/pages/blog.js deleted file mode 100644 index e435012..0000000 --- a/website/src/pages/blog.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Blog() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/contact-us.js b/website/src/pages/contact-us.js deleted file mode 100644 index b6850d8..0000000 --- a/website/src/pages/contact-us.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function ConactUs() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/install.js b/website/src/pages/install.js deleted file mode 100644 index 341a4bb..0000000 --- a/website/src/pages/install.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Install() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/aws.js b/website/src/pages/providers/aws.js deleted file mode 100644 index 780099a..0000000 --- a/website/src/pages/providers/aws.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/azure.js b/website/src/pages/providers/azure.js deleted file mode 100644 index 467f77a..0000000 --- a/website/src/pages/providers/azure.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/confluent.js b/website/src/pages/providers/confluent.js deleted file mode 100644 index e886aaf..0000000 --- a/website/src/pages/providers/confluent.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/databricks.js b/website/src/pages/providers/databricks.js deleted file mode 100644 index a04b603..0000000 --- a/website/src/pages/providers/databricks.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/github.js b/website/src/pages/providers/github.js deleted file mode 100644 index b425c6c..0000000 --- a/website/src/pages/providers/github.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/google.js b/website/src/pages/providers/google.js deleted file mode 100644 index 01fe8b7..0000000 --- a/website/src/pages/providers/google.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/index.js b/website/src/pages/providers/index.js deleted file mode 100644 index 9afaa02..0000000 --- a/website/src/pages/providers/index.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Providers() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/okta.js b/website/src/pages/providers/okta.js deleted file mode 100644 index cdddc72..0000000 --- a/website/src/pages/providers/okta.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/openai.js b/website/src/pages/providers/openai.js deleted file mode 100644 index 9884c84..0000000 --- a/website/src/pages/providers/openai.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/snowflake.js b/website/src/pages/providers/snowflake.js deleted file mode 100644 index 7b3ec43..0000000 --- a/website/src/pages/providers/snowflake.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/stackql-deploy.js b/website/src/pages/stackql-deploy.js deleted file mode 100644 index 95e18b3..0000000 --- a/website/src/pages/stackql-deploy.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Deploy() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/stackqldocs.js b/website/src/pages/stackqldocs.js deleted file mode 100644 index 7182d93..0000000 --- a/website/src/pages/stackqldocs.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function StackQLDocs() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/tutorials.js b/website/src/pages/tutorials.js deleted file mode 100644 index 2bb5f07..0000000 --- a/website/src/pages/tutorials.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Tutorials() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/theme/DocBreadcrumbs/index.js b/website/src/theme/DocBreadcrumbs/index.js new file mode 100644 index 0000000..7f0bb4b --- /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 ( +
+ + +
+ ); +} diff --git a/website/static/CNAME b/website/static/CNAME index 1f7a4f5..6420c0a 100644 --- a/website/static/CNAME +++ b/website/static/CNAME @@ -1 +1 @@ -snowflake-provider.stackql.io +linode-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/docusaurus-social-card.jpg b/website/static/img/docusaurus-social-card.jpg new file mode 100644 index 0000000..ffcb448 Binary files /dev/null and b/website/static/img/docusaurus-social-card.jpg differ diff --git a/website/static/img/stackql-digitalocean-provider-featured-image.png b/website/static/img/stackql-digitalocean-provider-featured-image.png deleted file mode 100644 index b141ec7..0000000 Binary files a/website/static/img/stackql-digitalocean-provider-featured-image.png and /dev/null differ diff --git a/website/static/img/stackql-linode-provider-featured-image.png b/website/static/img/stackql-linode-provider-featured-image.png new file mode 100644 index 0000000..9c5a355 Binary files /dev/null and b/website/static/img/stackql-linode-provider-featured-image.png differ 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 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + diff --git a/website/static/site.webmanifest b/website/static/site.webmanifest new file mode 100644 index 0000000..df45a25 --- /dev/null +++ b/website/static/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "StackQL Linode Provider", + "short_name": "StackQL Linode", + "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" +} \ No newline at end of file diff --git a/website/yarn.lock b/website/yarn.lock index de0efba..285c35b 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -2,192 +2,223 @@ # yarn lockfile v1 -"@algolia/abtesting@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@algolia/abtesting/-/abtesting-1.3.0.tgz#3fade769bf5b03244baaee8034b83e2b49f8e86c" - integrity sha512-KqPVLdVNfoJzX5BKNGM9bsW8saHeyax8kmPFXul5gejrSPN3qss7PgsFH5mMem7oR8tvjvNkia97ljEYPYCN8Q== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" - -"@algolia/autocomplete-core@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz#83374c47dc72482aa45d6b953e89377047f0dcdc" - integrity sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ== - dependencies: - "@algolia/autocomplete-plugin-algolia-insights" "1.17.9" - "@algolia/autocomplete-shared" "1.17.9" - -"@algolia/autocomplete-plugin-algolia-insights@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz#74c86024d09d09e8bfa3dd90b844b77d9f9947b6" - integrity sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ== - dependencies: - "@algolia/autocomplete-shared" "1.17.9" - -"@algolia/autocomplete-preset-algolia@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz#911f3250544eb8ea4096fcfb268f156b085321b5" - integrity sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ== - dependencies: - "@algolia/autocomplete-shared" "1.17.9" - -"@algolia/autocomplete-shared@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz#5f38868f7cb1d54b014b17a10fc4f7e79d427fa8" - integrity sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ== - -"@algolia/client-abtesting@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.37.0.tgz#37df3674ccc37dfb0aa4cbfea42002bb136fb909" - integrity sha512-Dp2Zq+x9qQFnuiQhVe91EeaaPxWBhzwQ6QnznZQnH9C1/ei3dvtmAFfFeaTxM6FzfJXDLvVnaQagTYFTQz3R5g== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" - -"@algolia/client-analytics@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.37.0.tgz#6fb4d748e1af43d8bc9f955d73d98205ce1c1ee5" - integrity sha512-wyXODDOluKogTuZxRII6mtqhAq4+qUR3zIUJEKTiHLe8HMZFxfUEI4NO2qSu04noXZHbv/sRVdQQqzKh12SZuQ== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" - -"@algolia/client-common@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.37.0.tgz#f7ca097c4bae44e4ea365ee8f420693d0005c98e" - integrity sha512-GylIFlPvLy9OMgFG8JkonIagv3zF+Dx3H401Uo2KpmfMVBBJiGfAb9oYfXtplpRMZnZPxF5FnkWaI/NpVJMC+g== - -"@algolia/client-insights@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.37.0.tgz#f4f4011fc89bc0b2dfc384acc3c6fb38f633f4ec" - integrity sha512-T63afO2O69XHKw2+F7mfRoIbmXWGzgpZxgOFAdP3fR4laid7pWBt20P4eJ+Zn23wXS5kC9P2K7Bo3+rVjqnYiw== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" - -"@algolia/client-personalization@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.37.0.tgz#c1688db681623b189f353599815a118033ceebb5" - integrity sha512-1zOIXM98O9zD8bYDCJiUJRC/qNUydGHK/zRK+WbLXrW1SqLFRXECsKZa5KoG166+o5q5upk96qguOtE8FTXDWQ== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" - -"@algolia/client-query-suggestions@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.37.0.tgz#fa514df8d36fb548258c712f3ba6f97eb84ebb87" - integrity sha512-31Nr2xOLBCYVal+OMZn1rp1H4lPs1914Tfr3a34wU/nsWJ+TB3vWjfkUUuuYhWoWBEArwuRzt3YNLn0F/KRVkg== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" - -"@algolia/client-search@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.37.0.tgz#38c7110d96fbbbda7b7fb0578a18b8cad3c25af2" - integrity sha512-DAFVUvEg+u7jUs6BZiVz9zdaUebYULPiQ4LM2R4n8Nujzyj7BZzGr2DCd85ip4p/cx7nAZWKM8pLcGtkTRTdsg== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" +"@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.21.2": + version "1.21.2" + resolved "https://registry.yarnpkg.com/@algolia/abtesting/-/abtesting-1.21.2.tgz#798e51b0226b6ed303a7d891235606b674a87857" + integrity sha512-uXj0rgk30EpsKvOpuS+R+1XFDrnm56hED1Lz56e8uBkZdKCxw99LS2U8eXBqAHYU8kpkbsnV1GC8velBG070Hg== + dependencies: + "@algolia/client-common" "5.55.2" + "@algolia/requester-browser-xhr" "5.55.2" + "@algolia/requester-fetch" "5.55.2" + "@algolia/requester-node-http" "5.55.2" + +"@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.9" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.19.9.tgz#bbed371e56aeea4a31a3af239f16733e1b8aedca" + integrity sha512-4U2JKLMWlDu0CotYyUkWakDxr8AIav3QtIUXXRpfavYN29aVWfzlwJp9T0rPKEf/dO2QCPAUc0Kq1Tj1GJxo2A== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.19.9" + "@algolia/autocomplete-shared" "1.19.9" + +"@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-plugin-algolia-insights@1.19.9": + version "1.19.9" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.9.tgz#f799737d13bf0c4ec8421619c7107fa05c836535" + integrity sha512-6mExC6X7762s2SV3eJy3QOkB8bdMmnUhQ2agvGVDuzwoGyr3PquGSY/0vPQXCfiAiCaXUz1rXn+lwghgSi0l0w== + dependencies: + "@algolia/autocomplete-shared" "1.19.9" + +"@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/autocomplete-shared@1.19.9": + version "1.19.9" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.9.tgz#c5b05e23c71027e4e45a301f286593dffdcdfbdf" + integrity sha512-YosP9Uoek6y/Ur1r1qeogk4biMe/hzkyNcgMCciw0//3XpCM7VlYLSHnyt/vOnEOGhCCc0+3v+unEiH6zz+Z1A== + +"@algolia/client-abtesting@5.55.2": + version "5.55.2" + resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.55.2.tgz#5c7d1632051b05ef155a6ea7e4a9454d5c6d5a08" + integrity sha512-y7Epol8HcjlBxKXHhyhfFPFhm78B3P6x9cCbCyGTdxjsdVCptXCy5hpkZWxjGpnaLHvWsHS4QRF0TiBOLst2xg== + dependencies: + "@algolia/client-common" "5.55.2" + "@algolia/requester-browser-xhr" "5.55.2" + "@algolia/requester-fetch" "5.55.2" + "@algolia/requester-node-http" "5.55.2" + +"@algolia/client-analytics@5.55.2": + version "5.55.2" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.55.2.tgz#770694ceef05213a2dc1c64bf3cb9c0b33a16b71" + integrity sha512-8Pxj2VVmpM2d+UZufnlTq7T1QIcYPVugLV5XC50PnHsV5uRM9CSoYkg2Y+CwqwRk2La0xK5QsfZ0obIU+9XftQ== + dependencies: + "@algolia/client-common" "5.55.2" + "@algolia/requester-browser-xhr" "5.55.2" + "@algolia/requester-fetch" "5.55.2" + "@algolia/requester-node-http" "5.55.2" + +"@algolia/client-common@5.55.2": + version "5.55.2" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.55.2.tgz#17347bdd5a118b7966231a73c59cac44d256071c" + integrity sha512-9L4IpIYUqA63a7sw1trnHQGUvwiAjKz67nsgDnal98JGAc7wyposRb0Iag+eiMuyzFFaSHLe2/rGyIo+PafRBA== + +"@algolia/client-insights@5.55.2": + version "5.55.2" + resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.55.2.tgz#3e575307d01d2e6ccd7394b7428edd22ec68057c" + integrity sha512-ZBm2ytY5EHFcj+kjNsXxMNO/TGlOHe2fBFXGKHJOM1bk1rAy4o2YI+d9oV/w/jrqx44pvJMJlc8X6vKnCuDgUQ== + dependencies: + "@algolia/client-common" "5.55.2" + "@algolia/requester-browser-xhr" "5.55.2" + "@algolia/requester-fetch" "5.55.2" + "@algolia/requester-node-http" "5.55.2" + +"@algolia/client-personalization@5.55.2": + version "5.55.2" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.55.2.tgz#1c5458095fdfdd2dd0ed8dcd5b94962db2852400" + integrity sha512-3FGVW/jDk7sdYwqa2NKnF/qXWcttc4bvGrwNbvqz3VoWSRv42CNvRk+3Y9QJFIUf1vY50hAuVWUoFKdyc8vaXA== + dependencies: + "@algolia/client-common" "5.55.2" + "@algolia/requester-browser-xhr" "5.55.2" + "@algolia/requester-fetch" "5.55.2" + "@algolia/requester-node-http" "5.55.2" + +"@algolia/client-query-suggestions@5.55.2": + version "5.55.2" + resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.55.2.tgz#7bf49bf6f7832943646dcaa1ffc2873e54bb783e" + integrity sha512-JsG8LovDAYul5t8e533tZ3O1uZILxso5zsTtB7ONc5RJ8ACdTxAAC/jaOnsBNYb+x+STP7fzx/Iro55v5DNgoQ== + dependencies: + "@algolia/client-common" "5.55.2" + "@algolia/requester-browser-xhr" "5.55.2" + "@algolia/requester-fetch" "5.55.2" + "@algolia/requester-node-http" "5.55.2" + +"@algolia/client-search@5.55.2": + version "5.55.2" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.55.2.tgz#8cd3d994598210e5428ca9a64dd3f17620bfbf08" + integrity sha512-5wDnoIfC75zJ2MSHv5SSzTlRL2z7jQMbqQ5jrzottuq2p3oBObv8pD/JpXWu8pRaimaxNr3/Bs/KZIGVXxJ7hg== + dependencies: + "@algolia/client-common" "5.55.2" + "@algolia/requester-browser-xhr" "5.55.2" + "@algolia/requester-fetch" "5.55.2" + "@algolia/requester-node-http" "5.55.2" "@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.37.0": - version "1.37.0" - resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.37.0.tgz#bb6016e656c68014050814abf130e103f977794e" - integrity sha512-pkCepBRRdcdd7dTLbFddnu886NyyxmhgqiRcHHaDunvX03Ij4WzvouWrQq7B7iYBjkMQrLS8wQqSP0REfA4W8g== +"@algolia/ingestion@1.55.2": + version "1.55.2" + resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.55.2.tgz#e247f70c5055569af70e3c676853bad4c422ab6c" + integrity sha512-da+SC6ikpza98W7C5ChsKEQDvZc8PQLQ0sxmQ5yMRsHpdD3iPKnclJA6ViB5Nr5T9qOX+IDswC6AyqY4V3rtug== + dependencies: + "@algolia/client-common" "5.55.2" + "@algolia/requester-browser-xhr" "5.55.2" + "@algolia/requester-fetch" "5.55.2" + "@algolia/requester-node-http" "5.55.2" + +"@algolia/monitoring@1.55.2": + version "1.55.2" + resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.55.2.tgz#56c8b9e5b8e64d5f8fd41a37854eb5559cb798d4" + integrity sha512-Y8kEcPqCiIEeaGv83l9RRA09mfYECqAJHNnOyEtZc9UirI6XBMUyFVss/sSeYUiV/Lf30hkbWcl00V1uXsf86Q== dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" + "@algolia/client-common" "5.55.2" + "@algolia/requester-browser-xhr" "5.55.2" + "@algolia/requester-fetch" "5.55.2" + "@algolia/requester-node-http" "5.55.2" -"@algolia/monitoring@1.37.0": - version "1.37.0" - resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.37.0.tgz#6d20c220d648db8faea45679350f1516917cc13d" - integrity sha512-fNw7pVdyZAAQQCJf1cc/ih4fwrRdQSgKwgor4gchsI/Q/ss9inmC6bl/69jvoRSzgZS9BX4elwHKdo0EfTli3w== +"@algolia/recommend@5.55.2": + version "5.55.2" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.55.2.tgz#9549d2fe261dca9ac94c144131ea980c56a6442b" + integrity sha512-5zmobuCQqFZkx+84Nt+suL7vo6jTh2CfAs2ndDSeTS2QHvnzP8YEEGWtWftjyACI0cK/FuH8urWwCHP+d2j8TA== dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" + "@algolia/client-common" "5.55.2" + "@algolia/requester-browser-xhr" "5.55.2" + "@algolia/requester-fetch" "5.55.2" + "@algolia/requester-node-http" "5.55.2" -"@algolia/recommend@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.37.0.tgz#dd5e814f30bbb92395902e120fdb28a120b91341" - integrity sha512-U+FL5gzN2ldx3TYfQO5OAta2TBuIdabEdFwD5UVfWPsZE5nvOKkc/6BBqP54Z/adW/34c5ZrvvZhlhNTZujJXQ== +"@algolia/requester-browser-xhr@5.55.2": + version "5.55.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.55.2.tgz#087322fcdfb35fdf8226d2ca966628c49f711d74" + integrity sha512-qnGUUuWG66dRMnr33owLsrYIh9fHVxtU4R2rd3SpneAHuoAUcGbDOWNrj05glVU6M8yOqo9gQ22K8zpz0I8Xpg== dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" + "@algolia/client-common" "5.55.2" -"@algolia/requester-browser-xhr@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.37.0.tgz#8851ab846d8005055c36a59422161ebe1594ae48" - integrity sha512-Ao8GZo8WgWFABrU7iq+JAftXV0t+UcOtCDL4mzHHZ+rQeTTf1TZssr4d0vIuoqkVNnKt9iyZ7T4lQff4ydcTrw== +"@algolia/requester-fetch@5.55.2": + version "5.55.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.55.2.tgz#a01695738861a80181f231ce7e8fca6f7a6e4072" + integrity sha512-lKZ5uhafMvR7dWCJEyuaeyZitid1I3ICx+k0vGf5x/ktdIQvc7bndCiOPpmIDqUmN26FE3jTehkAzSqee95G2Q== dependencies: - "@algolia/client-common" "5.37.0" + "@algolia/client-common" "5.55.2" -"@algolia/requester-fetch@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.37.0.tgz#93602fdc9a59b41ecd53768c53c11cddb0db846a" - integrity sha512-H7OJOXrFg5dLcGJ22uxx8eiFId0aB9b0UBhoOi4SMSuDBe6vjJJ/LeZyY25zPaSvkXNBN3vAM+ad6M0h6ha3AA== +"@algolia/requester-node-http@5.55.2": + version "5.55.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.55.2.tgz#5ceae3de5e223366fc5b3e643fcc0542909b87e8" + integrity sha512-Zc90xvKWUvxcNicvvTO9Pr/hT2TAnkixOIzJm/KMj5Ptm2pKjk71ngTsdkbRtJQvhZ2Kr9N1YdIjLrNHB5P2xw== dependencies: - "@algolia/client-common" "5.37.0" + "@algolia/client-common" "5.55.2" -"@algolia/requester-node-http@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.37.0.tgz#83da1b52f3ee86f262a5d4b2a88a74db665211c2" - integrity sha512-npZ9aeag4SGTx677eqPL3rkSPlQrnzx/8wNrl1P7GpWq9w/eTmRbOq+wKrJ2r78idlY0MMgmY/mld2tq6dc44g== +"@antfu/install-pkg@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-1.1.0.tgz#78fa036be1a6081b5a77a5cf59f50c7752b6ba26" + integrity sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ== dependencies: - "@algolia/client-common" "5.37.0" + package-manager-detector "^1.3.0" + tinyexec "^1.0.1" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" - integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== +"@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.27.1" + "@babel/helper-validator-identifier" "^7.29.7" js-tokens "^4.0.0" picocolors "^1.1.1" -"@babel/compat-data@^7.27.2", "@babel/compat-data@^7.27.7", "@babel/compat-data@^7.28.0": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.4.tgz#96fdf1af1b8859c8474ab39c295312bfb7c24b04" - integrity sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw== +"@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.28.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.4.tgz#12a550b8794452df4c8b084f95003bce1742d496" - integrity sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.3" - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-module-transforms" "^7.28.3" - "@babel/helpers" "^7.28.4" - "@babel/parser" "^7.28.4" - "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.4" - "@babel/types" "^7.28.4" + 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" @@ -195,213 +226,221 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.25.9", "@babel/generator@^7.28.3": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.3.tgz#9626c1741c650cbac39121694a0f2d7451b8ef3e" - integrity sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw== +"@babel/generator@^7.25.9", "@babel/generator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.7.tgz#cca0b8827e6bcf3ba176788e7f3b180ad6db2fa3" + integrity sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ== dependencies: - "@babel/parser" "^7.28.3" - "@babel/types" "^7.28.2" + "@babel/parser" "^7.29.7" + "@babel/types" "^7.29.7" "@jridgewell/gen-mapping" "^0.3.12" "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" -"@babel/helper-annotate-as-pure@^7.27.1", "@babel/helper-annotate-as-pure@^7.27.3": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz#f31fd86b915fc4daf1f3ac6976c59be7084ed9c5" - integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== +"@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.27.3" + "@babel/types" "^7.29.7" -"@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": - version "7.27.2" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" - integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== +"@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.27.2" - "@babel/helper-validator-option" "^7.27.1" + "@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.27.1", "@babel/helper-create-class-features-plugin@^7.28.3": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz#3e747434ea007910c320c4d39a6b46f20f371d46" - integrity sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.3" - "@babel/helper-member-expression-to-functions" "^7.27.1" - "@babel/helper-optimise-call-expression" "^7.27.1" - "@babel/helper-replace-supers" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/traverse" "^7.28.3" +"@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.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz#05b0882d97ba1d4d03519e4bce615d70afa18c53" - integrity sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ== +"@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.27.1" - regexpu-core "^6.2.0" + "@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": - version "0.6.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz#742ccf1cb003c07b48859fc9fa2c1bbe40e5f753" - integrity sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg== +"@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.27.2" - "@babel/helper-plugin-utils" "^7.27.1" - debug "^4.4.1" + "@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.10" - -"@babel/helper-globals@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" - integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== - -"@babel/helper-member-expression-to-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz#ea1211276be93e798ce19037da6f06fbb994fa44" - integrity sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA== - dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" - integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== - dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.28.3": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz#a2b37d3da3b2344fe085dab234426f2b9a2fa5f6" - integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== - dependencies: - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.28.3" - -"@babel/helper-optimise-call-expression@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz#c65221b61a643f3e62705e5dd2b5f115e35f9200" - integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== - dependencies: - "@babel/types" "^7.27.1" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.8.0": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" - integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== - -"@babel/helper-remap-async-to-generator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz#4601d5c7ce2eb2aea58328d43725523fcd362ce6" - integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-wrap-function" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/helper-replace-supers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz#b1ed2d634ce3bdb730e4b52de30f8cccfd692bc0" - integrity sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.27.1" - "@babel/helper-optimise-call-expression" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/helper-skip-transparent-expression-wrappers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz#62bb91b3abba8c7f1fec0252d9dbea11b3ee7a56" - integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== - dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helper-string-parser@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" - integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== - -"@babel/helper-validator-identifier@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" - integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== - -"@babel/helper-validator-option@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" - integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== - -"@babel/helper-wrap-function@^7.27.1": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz#fe4872092bc1438ffd0ce579e6f699609f9d0a7a" - integrity sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g== - dependencies: - "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.3" - "@babel/types" "^7.28.2" - -"@babel/helpers@^7.28.4": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.4.tgz#fe07274742e95bdf7cf1443593eeb8926ab63827" - integrity sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w== - dependencies: - "@babel/template" "^7.27.2" - "@babel/types" "^7.28.4" + 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.27.2", "@babel/parser@^7.28.3", "@babel/parser@^7.28.4": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.4.tgz#da25d4643532890932cc03f7705fe19637e03fa8" - integrity sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg== +"@babel/parser@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.7.tgz#837b87387cbf5ec5530cb634b3c622f68edb9334" + integrity sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg== dependencies: - "@babel/types" "^7.28.4" - -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz#61dd8a8e61f7eb568268d1b5f129da3eee364bf9" - integrity sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA== + "@babel/types" "^7.29.7" + +"@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.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz#43f70a6d7efd52370eefbdf55ae03d91b293856d" - integrity sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA== + "@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.27.1" - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.27.1": - version "7.27.1" - 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.27.1.tgz#beb623bd573b8b6f3047bd04c32506adc3e58a72" - integrity sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@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-spread-parameters-in-optional-chaining@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz#e134a5479eb2ba9c02714e8c1ebf1ec9076124fd" - integrity sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw== +"@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.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/plugin-transform-optional-chaining" "^7.27.1" - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.28.3": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz#373f6e2de0016f73caf8f27004f61d167743742a" - integrity sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.28.3" + "@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" @@ -415,33 +454,33 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-import-assertions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz#88894aefd2b03b5ee6ad1562a7c8e1587496aecd" - integrity sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-syntax-import-attributes@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" - integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-syntax-jsx@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c" - integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-syntax-typescript@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz#5147d29066a793450f220c63fa3a9431b7e6dd18" - integrity sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" @@ -451,540 +490,541 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz#6e2061067ba3ab0266d834a9f94811196f2aba9a" - integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-async-generator-functions@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz#1276e6c7285ab2cd1eccb0bc7356b7a69ff842c2" - integrity sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q== +"@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.27.1" - "@babel/helper-remap-async-to-generator" "^7.27.1" - "@babel/traverse" "^7.28.0" + "@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.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz#9a93893b9379b39466c74474f55af03de78c66e7" - integrity sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-remap-async-to-generator" "^7.27.1" + "@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.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz#558a9d6e24cf72802dd3b62a4b51e0d62c0f57f9" - integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-block-scoping@^7.28.0": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.4.tgz#e19ac4ddb8b7858bac1fd5c1be98a994d9726410" - integrity sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-class-properties@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz#dd40a6a370dfd49d32362ae206ddaf2bb082a925" - integrity sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-class-static-block@^7.28.3": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz#d1b8e69b54c9993bc558203e1f49bfc979bfd852" - integrity sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg== +"@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.28.3" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-classes@^7.28.3": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz#75d66175486788c56728a73424d67cbc7473495c" - integrity sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA== +"@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.27.3" - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-globals" "^7.28.0" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-replace-supers" "^7.27.1" - "@babel/traverse" "^7.28.4" + "@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.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz#81662e78bf5e734a97982c2b7f0a793288ef3caa" - integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== +"@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.27.1" - "@babel/template" "^7.27.1" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/template" "^7.29.7" -"@babel/plugin-transform-destructuring@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz#0f156588f69c596089b7d5b06f5af83d9aa7f97a" - integrity sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A== +"@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.27.1" - "@babel/traverse" "^7.28.0" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/traverse" "^7.29.7" -"@babel/plugin-transform-dotall-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz#aa6821de864c528b1fecf286f0a174e38e826f4d" - integrity sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-duplicate-keys@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz#f1fbf628ece18e12e7b32b175940e68358f546d1" - integrity sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz#5043854ca620a94149372e69030ff8cb6a9eb0ec" - integrity sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-dynamic-import@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz#4c78f35552ac0e06aa1f6e3c573d67695e8af5a4" - integrity sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-explicit-resource-management@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz#45be6211b778dbf4b9d54c4e8a2b42fa72e09a1a" - integrity sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ== +"@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.27.1" - "@babel/plugin-transform-destructuring" "^7.28.0" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/plugin-transform-destructuring" "^7.29.7" -"@babel/plugin-transform-exponentiation-operator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz#fc497b12d8277e559747f5a3ed868dd8064f83e1" - integrity sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-export-namespace-from@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz#71ca69d3471edd6daa711cf4dfc3400415df9c23" - integrity sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-for-of@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz#bc24f7080e9ff721b63a70ac7b2564ca15b6c40a" - integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== +"@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.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" -"@babel/plugin-transform-function-name@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz#4d0bf307720e4dce6d7c30fcb1fd6ca77bdeb3a7" - integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@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.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz#a2e0ce6ef256376bd527f290da023983527a4f4c" - integrity sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz#baaefa4d10a1d4206f9dcdda50d7d5827bb70b24" - integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-logical-assignment-operators@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz#890cb20e0270e0e5bebe3f025b434841c32d5baa" - integrity sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-member-expression-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz#37b88ba594d852418e99536f5612f795f23aeaf9" - integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-modules-amd@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz#a4145f9d87c2291fe2d05f994b65dba4e3e7196f" - integrity sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-modules-commonjs@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz#8e44ed37c2787ecc23bdc367f49977476614e832" - integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-modules-systemjs@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz#00e05b61863070d0f3292a00126c16c0e024c4ed" - integrity sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA== +"@babel/plugin-transform-modules-systemjs@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz#e575dd2ab9882906de120ff7dc9dee9914d8b6f3" + integrity sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ== dependencies: - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@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.7" -"@babel/plugin-transform-modules-umd@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz#63f2cf4f6dc15debc12f694e44714863d34cd334" - integrity sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz#f32b8f7818d8fc0cc46ee20a8ef75f071af976e1" - integrity sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-new-target@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz#259c43939728cad1706ac17351b7e6a7bea1abeb" - integrity sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz#4f9d3153bf6782d73dd42785a9d22d03197bc91d" - integrity sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-numeric-separator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz#614e0b15cc800e5997dadd9bd6ea524ed6c819c6" - integrity sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-object-rest-spread@^7.28.0": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz#9ee1ceca80b3e6c4bac9247b2149e36958f7f98d" - integrity sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew== +"@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.27.2" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/plugin-transform-destructuring" "^7.28.0" - "@babel/plugin-transform-parameters" "^7.27.7" - "@babel/traverse" "^7.28.4" + "@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.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz#1c932cd27bf3874c43a5cac4f43ebf970c9871b5" - integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== +"@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.27.1" - "@babel/helper-replace-supers" "^7.27.1" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-replace-supers" "^7.29.7" -"@babel/plugin-transform-optional-catch-binding@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz#84c7341ebde35ccd36b137e9e45866825072a30c" - integrity sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-optional-chaining@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz#874ce3c4f06b7780592e946026eb76a32830454f" - integrity sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg== +"@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.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" -"@babel/plugin-transform-parameters@^7.27.7": - version "7.27.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz#1fd2febb7c74e7d21cf3b05f7aebc907940af53a" - integrity sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-private-methods@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz#fdacbab1c5ed81ec70dfdbb8b213d65da148b6af" - integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-private-property-in-object@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz#4dbbef283b5b2f01a21e81e299f76e35f900fb11" - integrity sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ== +"@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.27.1" - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@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.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz#07eafd618800591e88073a0af1b940d9a42c6424" - integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" "@babel/plugin-transform-react-constant-elements@^7.21.3": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz#6c6b50424e749a6e48afd14cf7b92f98cb9383f9" - integrity sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug== + 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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-react-display-name@^7.27.1": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz#6f20a7295fea7df42eb42fed8f896813f5b934de" - integrity sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-react-jsx-development@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz#47ff95940e20a3a70e68ad3d4fcb657b647f6c98" - integrity sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q== +"@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.27.1" + "@babel/plugin-transform-react-jsx" "^7.29.7" -"@babel/plugin-transform-react-jsx@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz#1023bc94b78b0a2d68c82b5e96aed573bcfb9db0" - integrity sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw== +"@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.27.1" - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/plugin-syntax-jsx" "^7.27.1" - "@babel/types" "^7.27.1" + "@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.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz#339f1ce355eae242e0649f232b1c68907c02e879" - integrity sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-regenerator@^7.28.3": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz#9d3fa3bebb48ddd0091ce5729139cd99c67cea51" - integrity sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA== +"@babel/plugin-transform-regenerator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.7.tgz#0f42626a7dbb0e7a7f52e036d3e43deebdc3ea4e" + integrity sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-regexp-modifiers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz#df9ba5577c974e3f1449888b70b76169998a6d09" - integrity sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-reserved-words@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz#40fba4878ccbd1c56605a4479a3a891ac0274bb4" - integrity sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" "@babel/plugin-transform-runtime@^7.25.9": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.3.tgz#f5990a1b2d2bde950ed493915e0719841c8d0eaa" - integrity sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg== + 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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@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.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz#532abdacdec87bfee1e0ef8e2fcdee543fe32b90" - integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-spread@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz#1a264d5fc12750918f50e3fe3e24e437178abb08" - integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== +"@babel/plugin-transform-spread@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.7.tgz#a128bcdd6b5e5e47054907b2e50bc19c3f856edd" + integrity sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" -"@babel/plugin-transform-sticky-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz#18984935d9d2296843a491d78a014939f7dcd280" - integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-template-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz#1a0eb35d8bb3e6efc06c9fd40eb0bcef548328b8" - integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-typeof-symbol@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz#70e966bb492e03509cf37eafa6dcc3051f844369" - integrity sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-typescript@^7.27.1": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.0.tgz#796cbd249ab56c18168b49e3e1d341b72af04a6b" - integrity sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg== +"@babel/plugin-transform-typescript@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz#f0449c3df7037bbe232043476851c38f5e4a7615" + integrity sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw== dependencies: - "@babel/helper-annotate-as-pure" "^7.27.3" - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/plugin-syntax-typescript" "^7.27.1" + "@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.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz#3e3143f8438aef842de28816ece58780190cf806" - integrity sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg== +"@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.27.1" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-unicode-property-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz#bdfe2d3170c78c5691a3c3be934c8c0087525956" - integrity sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-unicode-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz#25948f5c395db15f609028e370667ed8bae9af97" - integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-unicode-sets-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz#6ab706d10f801b5c72da8bb2548561fa04193cd1" - integrity sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw== +"@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.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@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.28.3" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.3.tgz#2b18d9aff9e69643789057ae4b942b1654f88187" - integrity sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg== - dependencies: - "@babel/compat-data" "^7.28.0" - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-validator-option" "^7.27.1" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.27.1" - "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.28.3" + 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.27.1" - "@babel/plugin-syntax-import-attributes" "^7.27.1" + "@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.27.1" - "@babel/plugin-transform-async-generator-functions" "^7.28.0" - "@babel/plugin-transform-async-to-generator" "^7.27.1" - "@babel/plugin-transform-block-scoped-functions" "^7.27.1" - "@babel/plugin-transform-block-scoping" "^7.28.0" - "@babel/plugin-transform-class-properties" "^7.27.1" - "@babel/plugin-transform-class-static-block" "^7.28.3" - "@babel/plugin-transform-classes" "^7.28.3" - "@babel/plugin-transform-computed-properties" "^7.27.1" - "@babel/plugin-transform-destructuring" "^7.28.0" - "@babel/plugin-transform-dotall-regex" "^7.27.1" - "@babel/plugin-transform-duplicate-keys" "^7.27.1" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.27.1" - "@babel/plugin-transform-dynamic-import" "^7.27.1" - "@babel/plugin-transform-explicit-resource-management" "^7.28.0" - "@babel/plugin-transform-exponentiation-operator" "^7.27.1" - "@babel/plugin-transform-export-namespace-from" "^7.27.1" - "@babel/plugin-transform-for-of" "^7.27.1" - "@babel/plugin-transform-function-name" "^7.27.1" - "@babel/plugin-transform-json-strings" "^7.27.1" - "@babel/plugin-transform-literals" "^7.27.1" - "@babel/plugin-transform-logical-assignment-operators" "^7.27.1" - "@babel/plugin-transform-member-expression-literals" "^7.27.1" - "@babel/plugin-transform-modules-amd" "^7.27.1" - "@babel/plugin-transform-modules-commonjs" "^7.27.1" - "@babel/plugin-transform-modules-systemjs" "^7.27.1" - "@babel/plugin-transform-modules-umd" "^7.27.1" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.27.1" - "@babel/plugin-transform-new-target" "^7.27.1" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.27.1" - "@babel/plugin-transform-numeric-separator" "^7.27.1" - "@babel/plugin-transform-object-rest-spread" "^7.28.0" - "@babel/plugin-transform-object-super" "^7.27.1" - "@babel/plugin-transform-optional-catch-binding" "^7.27.1" - "@babel/plugin-transform-optional-chaining" "^7.27.1" - "@babel/plugin-transform-parameters" "^7.27.7" - "@babel/plugin-transform-private-methods" "^7.27.1" - "@babel/plugin-transform-private-property-in-object" "^7.27.1" - "@babel/plugin-transform-property-literals" "^7.27.1" - "@babel/plugin-transform-regenerator" "^7.28.3" - "@babel/plugin-transform-regexp-modifiers" "^7.27.1" - "@babel/plugin-transform-reserved-words" "^7.27.1" - "@babel/plugin-transform-shorthand-properties" "^7.27.1" - "@babel/plugin-transform-spread" "^7.27.1" - "@babel/plugin-transform-sticky-regex" "^7.27.1" - "@babel/plugin-transform-template-literals" "^7.27.1" - "@babel/plugin-transform-typeof-symbol" "^7.27.1" - "@babel/plugin-transform-unicode-escapes" "^7.27.1" - "@babel/plugin-transform-unicode-property-regex" "^7.27.1" - "@babel/plugin-transform-unicode-regex" "^7.27.1" - "@babel/plugin-transform-unicode-sets-regex" "^7.27.1" + "@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.14" - babel-plugin-polyfill-corejs3 "^0.13.0" - babel-plugin-polyfill-regenerator "^0.6.5" - core-js-compat "^3.43.0" + 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": @@ -997,69 +1037,72 @@ esutils "^2.0.2" "@babel/preset-react@^7.18.6", "@babel/preset-react@^7.25.9": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.27.1.tgz#86ea0a5ca3984663f744be2fd26cb6747c3fd0ec" - integrity sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA== + 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.27.1" - "@babel/helper-validator-option" "^7.27.1" - "@babel/plugin-transform-react-display-name" "^7.27.1" - "@babel/plugin-transform-react-jsx" "^7.27.1" - "@babel/plugin-transform-react-jsx-development" "^7.27.1" - "@babel/plugin-transform-react-pure-annotations" "^7.27.1" + "@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.27.1" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz#190742a6428d282306648a55b0529b561484f912" - integrity sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-validator-option" "^7.27.1" - "@babel/plugin-syntax-jsx" "^7.27.1" - "@babel/plugin-transform-modules-commonjs" "^7.27.1" - "@babel/plugin-transform-typescript" "^7.27.1" - -"@babel/runtime-corejs3@^7.25.9": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.28.4.tgz#c25be39c7997ce2f130d70b9baecb8ed94df93fa" - integrity sha512-h7iEYiW4HebClDEhtvFObtPmIvrd1SSfpI9EhOeKk4CtIK/ngBWFpuhCzhdmRKtg71ylcue+9I6dv54XYO1epQ== - dependencies: - core-js-pure "^3.43.0" - -"@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.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" - integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== - -"@babel/template@^7.27.1", "@babel/template@^7.27.2": - version "7.27.2" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" - integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/parser" "^7.27.2" - "@babel/types" "^7.27.1" - -"@babel/traverse@^7.25.9", "@babel/traverse@^7.27.1", "@babel/traverse@^7.28.0", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.4": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.4.tgz#8d456101b96ab175d487249f60680221692b958b" - integrity sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.3" - "@babel/helper-globals" "^7.28.0" - "@babel/parser" "^7.28.4" - "@babel/template" "^7.27.2" - "@babel/types" "^7.28.4" + 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": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.7.tgz#c47b07a41b95da0907d026b5dd894d98de7d2f2d" + integrity sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw== + dependencies: + "@babel/code-frame" "^7.29.7" + "@babel/generator" "^7.29.7" + "@babel/helper-globals" "^7.29.7" + "@babel/parser" "^7.29.7" + "@babel/template" "^7.29.7" + "@babel/types" "^7.29.7" debug "^4.3.1" -"@babel/types@^7.21.3", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.4.4": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.4.tgz#0a4e618f4c60a7cd6c11cb2d48060e4dbe38ac3a" - integrity sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q== +"@babel/types@^7.21.3", "@babel/types@^7.29.7", "@babel/types@^7.4.4": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.7.tgz#8005e31d82712ee7adaef6e23c63b71a62770a92" + integrity sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA== dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" + "@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/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== "@colors/colors@1.5.0": version "1.5.0" @@ -1104,15 +1147,15 @@ 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.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.0.tgz#8764fbbf25a5f1e106fb623ae632e01a220a6fc2" - integrity sha512-r2L8KNg5Wriq5n8IUQcjzy2Rh37J5YjzP9iOyHZL5fxdWYHB08vqykHQa4wAzN/tXwDuCHnhQDGCtxfS76xn7g== +"@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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" "@csstools/postcss-cascade-layers@^5.0.2": @@ -1123,58 +1166,69 @@ "@csstools/selector-specificity" "^5.0.0" postcss-selector-parser "^7.0.0" -"@csstools/postcss-color-function-display-p3-linear@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.0.tgz#27395b62a5d9a108eefcc0eb463247a15f4269a1" - integrity sha512-7q+OuUqfowRrP84m/Jl0wv3pfCQyUTCW5MxDIux+/yty5IkUUHOTigCjrC0Fjy3OT0ncGLudHbfLWmP7E1arNA== +"@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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-color-function@^4.0.11": - version "4.0.11" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-4.0.11.tgz#03c34a51dc00943a6674294fb1163e7af9e87ffd" - integrity sha512-AtH22zLHTLm64HLdpv5EedT/zmYTm1MtdQbQhRZXxEB6iYtS6SrS1jLX3TcmUWMFzpumK/OVylCm3HcLms4slw== +"@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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-color-mix-function@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.11.tgz#6db0a1c749fabaf2bf978b37044700d1c1b09fc2" - integrity sha512-cQpXBelpTx0YhScZM5Ve0jDCA4RzwFc7oNafzZOGgCHt/GQVYiU8Vevz9QJcwy/W0Pyi/BneY+KMjz23lI9r+Q== +"@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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-color-mix-variadic-function-arguments@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.1.tgz#2dd9d66ded0d41cd7b2c13a1188f03e894c17d7e" - integrity sha512-c7hyBtbF+jlHIcUGVdWY06bHICgguV9ypfcELU3eU3W/9fiz2dxM8PqxQk2ndXYTzLnwPvNNqu1yCmQ++N6Dcg== +"@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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-content-alt-text@^2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.7.tgz#ac0a263e8acb0be99cdcfc0b1792c62141825747" - integrity sha512-cq/zWaEkpcg3RttJ5+GdNwk26NwxY5KgqgtNL777Fdd28AVGHxuBvqmK4Jq4oKhW1NX4M2LbgYAVVN0NZ+/XYQ== +"@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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" "@csstools/postcss-exponential-functions@^2.0.9": @@ -1203,34 +1257,34 @@ "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" -"@csstools/postcss-gradients-interpolation-method@^5.0.11": - version "5.0.11" - resolved "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.11.tgz#f1c5c431a44ed9655cb408aea8666ed2c5250490" - integrity sha512-8M3mcNTL3cGIJXDnvrJ2oWEcKi3zyw7NeYheFKePUlBmLYm1gkw9Rr/BA7lFONrOPeQA3yeMPldrrws6lqHrug== +"@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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-hwb-function@^4.0.11": - version "4.0.11" - resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.11.tgz#4bb173f1c8c2361bf46a842a948ee687471ae4ea" - integrity sha512-9meZbsVWTZkWsSBazQips3cHUOT29a/UAwFz0AMEXukvpIGGDR9+GMl3nIckWO5sPImsadu4F5Zy+zjt8QgCdA== +"@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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-ic-unit@^4.0.3": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.3.tgz#ba0375e9d346e6e5a42dc8c2cb1133b2262f9ffa" - integrity sha512-RtYYm2qUIu9vAaHB0cC8rQGlOCQAUgEc2tMr7ewlGXYipBQKjoWmyVArqsk7SEr8N3tErq6P6UOJT3amaVof5Q== +"@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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" @@ -1247,14 +1301,14 @@ "@csstools/selector-specificity" "^5.0.0" postcss-selector-parser "^7.0.0" -"@csstools/postcss-light-dark-function@^2.0.10": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.10.tgz#b606f13d1f81efd297763c6ad1ac515c3ca4165b" - integrity sha512-g7Lwb294lSoNnyrwcqoooh9fTAp47rRNo+ILg7SLRSMU3K9ePIwRt566sNx+pehiCelv4E1ICaU1EwLQuyF2qw== +"@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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" "@csstools/postcss-logical-float-and-clear@^3.0.0": @@ -1314,31 +1368,44 @@ "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -"@csstools/postcss-normalize-display-values@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz#ecdde2daf4e192e5da0c6fd933b6d8aff32f2a36" - integrity sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q== +"@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.11": - version "4.0.11" - resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.11.tgz#d69242a9b027dda731bd79db7293bc938bb6df97" - integrity sha512-9f03ZGxZ2VmSCrM4SDXlAYP+Xpu4VFzemfQUQFL9OYxAbpvDy0FjDipZ0i8So1pgs8VIbQI0bNjFWgfdpGw8ig== +"@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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-progressive-custom-properties@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.0.tgz#7f15349c2cd108478d28e1503c660d4037925030" - integrity sha512-fWCXRasX17N1NCPTCuwC3FJDV+Wc031f16cFuuMEfIsYJ1q5ABCa59W0C6VeMGqjNv6ldf37vvwXXAeaZjD9PA== +"@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" @@ -1348,15 +1415,15 @@ "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" -"@csstools/postcss-relative-color-syntax@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.11.tgz#d81d59ff123fa5f3e4a0493b1e2b0585353bb541" - integrity sha512-oQ5fZvkcBrWR+k6arHXk0F8FlkmD4IxM+rcGDLWrF2f31tWyEM3lSraeWAV0f7BGH6LIrqmyU3+Qo/1acfoJng== +"@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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" "@csstools/postcss-scope-pseudo-class@^4.0.1": @@ -1384,6 +1451,21 @@ "@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" @@ -1426,25 +1508,29 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@docsearch/css@3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.9.0.tgz#3bc29c96bf024350d73b0cfb7c2a7b71bf251cd5" - integrity sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA== +"@docsearch/core@4.6.3": + version "4.6.3" + resolved "https://registry.yarnpkg.com/@docsearch/core/-/core-4.6.3.tgz#9954c75c3ae28418e06f8e7537a920d6cd2bc22e" + integrity sha512-rUOujwIpxJRgD7+kicVsI3D5sqBvdiRTquzWBpTEXZs8ZXfGbfzpus5HqumaNYTppN2HvH8E2yNuRwYdHJeOlA== -"@docsearch/react@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.9.0.tgz#d0842b700c3ee26696786f3c8ae9f10c1a3f0db3" - integrity sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ== +"@docsearch/css@4.6.3": + version "4.6.3" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-4.6.3.tgz#a94065af4a996dd927dc5dda383395e583dbd638" + integrity sha512-nlOwcXcsNAptQl4vlL4MA78qNJKO0Qlds5GuBjCoePgkebTXLSf8Qt1oyZ3YBshYupKXG9VRGEsk1zr23d+bzQ== + +"@docsearch/react@^3.9.0 || ^4.3.2": + version "4.6.3" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-4.6.3.tgz#80df785f9c5e484c960b914a22ea2a3e4c7210ad" + integrity sha512-Bg2wdDsoQVlNCcEKuEJAU04tvHCqgx8rIu+uIoM4pRtcx3TBKJuXutJik3LTA8LRc9YEyHkrYUrmcC0D7BYf+g== dependencies: - "@algolia/autocomplete-core" "1.17.9" - "@algolia/autocomplete-preset-algolia" "1.17.9" - "@docsearch/css" "3.9.0" - algoliasearch "^5.14.2" + "@algolia/autocomplete-core" "1.19.2" + "@docsearch/core" "4.6.3" + "@docsearch/css" "4.6.3" -"@docusaurus/babel@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/babel/-/babel-3.8.1.tgz#db329ac047184214e08e2dbc809832c696c18506" - integrity sha512-3brkJrml8vUbn9aeoZUlJfsI/GqyFcDgQJwQkmBtclJgWDEQBKKeagZfOgx0WfUQhagL1sQLNW0iBdxnI863Uw== +"@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" @@ -1454,25 +1540,24 @@ "@babel/preset-react" "^7.25.9" "@babel/preset-typescript" "^7.25.9" "@babel/runtime" "^7.25.9" - "@babel/runtime-corejs3" "^7.25.9" "@babel/traverse" "^7.25.9" - "@docusaurus/logger" "3.8.1" - "@docusaurus/utils" "3.8.1" + "@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.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/bundler/-/bundler-3.8.1.tgz#e2b11d615f09a6e470774bb36441b8d06736b94c" - integrity sha512-/z4V0FRoQ0GuSLToNjOSGsk6m2lQUG4FRn8goOVoZSRsTrU8YR2aJacX5K3RG18EaX9b+52pN4m1sL3MQZVsQA== +"@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.8.1" - "@docusaurus/cssnano-preset" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" + "@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" @@ -1490,20 +1575,20 @@ tslib "^2.6.0" url-loader "^4.1.1" webpack "^5.95.0" - webpackbar "^6.0.1" - -"@docusaurus/core@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.8.1.tgz#c22e47c16a22cb7d245306c64bc54083838ff3db" - integrity sha512-ENB01IyQSqI2FLtOzqSI3qxG2B/jP4gQPahl2C3XReiLebcVh5B5cB9KYFvdoOqOWPyr5gXK4sjgTKv7peXCrA== - dependencies: - "@docusaurus/babel" "3.8.1" - "@docusaurus/bundler" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + 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" @@ -1511,11 +1596,11 @@ combine-promises "^1.1.0" commander "^5.1.0" core-js "^3.31.1" - detect-port "^1.5.1" + detect-port "^2.1.0" escape-html "^1.0.3" eta "^2.2.0" eval "^0.1.8" - execa "5.1.1" + execa "^5.1.1" fs-extra "^11.1.1" html-tags "^3.3.1" html-webpack-plugin "^5.6.0" @@ -1526,46 +1611,73 @@ 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.1" + 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.6" + 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 "^4.15.2" + webpack-dev-server "^5.2.2" webpack-merge "^6.0.1" -"@docusaurus/cssnano-preset@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.8.1.tgz#bd55026251a6ab8e2194839a2042458ef9880c44" - integrity sha512-G7WyR2N6SpyUotqhGznERBK+x84uyhfMQM2MmDLs88bw4Flom6TY46HzkRkSEzaP9j80MbTN8naiL1fR17WQug== +"@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/logger@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.8.1.tgz#45321b2e2e14695d0dbd8b4104ea7b0fbaa98700" - integrity sha512-2wjeGDhKcExEmjX8k1N/MRDiPKXGF2Pg+df/bDDPnnJWHXnVEZxXj80d6jcxp1Gpnksl0hF8t/ZQw9elqj2+ww== +"@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/mdx-loader@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.8.1.tgz#74309b3614bbcef1d55fb13e6cc339b7fb000b5f" - integrity sha512-DZRhagSFRcEq1cUtBMo4TKxSNo/W6/s44yhr8X+eoXqCLycFQUylebOMPseHi5tc4fkGJqwqpWJLz6JStU9L4w== +"@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.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@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" @@ -1588,12 +1700,12 @@ vfile "^6.0.1" webpack "^5.88.1" -"@docusaurus/module-type-aliases@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.8.1.tgz#454de577bd7f50b5eae16db0f76b49ca5e4e281a" - integrity sha512-6xhvAJiXzsaq3JdosS7wbRt/PwEPWHr9eM4YNYqVlbgG1hSK3uQDXTVvQktasp3VO6BmfYWPozueLWuj4gB+vg== +"@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.8.1" + "@docusaurus/types" "3.10.2" "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router-config" "*" @@ -1601,20 +1713,21 @@ 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.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.8.1.tgz#88d842b562b04cf59df900d9f6984b086f821525" - integrity sha512-vNTpMmlvNP9n3hGEcgPaXyvTljanAKIUkuG9URQ1DeuDup0OR7Ltvoc8yrmH+iMZJbcQGhUJF+WjHLwuk8HSdw== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" +"@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" @@ -1625,20 +1738,20 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@docusaurus/plugin-content-docs@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.8.1.tgz#40686a206abb6373bee5638de100a2c312f112a4" - integrity sha512-oByRkSZzeGNQByCMaX+kif5Nl2vmtj2IHQI2fWjCfCootsdKZDPFLonhIp5s3IGJO7PLUfe0POyw0Xh/RrGXJA== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/module-type-aliases" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.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" @@ -1649,142 +1762,163 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@docusaurus/plugin-content-pages@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.8.1.tgz#41b684dbd15390b7bb6a627f78bf81b6324511ac" - integrity sha512-a+V6MS2cIu37E/m7nDJn3dcxpvXb6TvgdNI22vJX8iUTp8eoMoPa0VArEbWvCxMY/xdC26WzNv4wZ6y0iIni/w== +"@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.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@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.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.8.1.tgz#cb414b4a82aa60fc64ef2a435ad0105e142a6c71" - integrity sha512-VQ47xRxfNKjHS5ItzaVXpxeTm7/wJLFMOPo1BkmoMG4Cuz4nuI+Hs62+RMk1OqVog68Swz66xVPK8g9XTrBKRw== +"@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.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@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.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.8.1.tgz#45b107e46b627caaae66995f53197ace78af3491" - integrity sha512-nT3lN7TV5bi5hKMB7FK8gCffFTBSsBsAfV84/v293qAmnHOyg1nr9okEw8AiwcO3bl9vije5nsUvP0aRl2lpaw== +"@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.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" + "@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.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.8.1.tgz#64a302e62fe5cb6e007367c964feeef7b056764a" - integrity sha512-Hrb/PurOJsmwHAsfMDH6oVpahkEGsx7F8CWMjyP/dw1qjqmdS9rcV1nYCGlM8nOtD3Wk/eaThzUB5TSZsGz+7Q== +"@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.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@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.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.8.1.tgz#8c76f8a1d96448f2f0f7b10e6bde451c40672b95" - integrity sha512-tKE8j1cEZCh8KZa4aa80zpSTxsC2/ZYqjx6AAfd8uA8VHZVw79+7OTEP2PoWi0uL5/1Is0LF5Vwxd+1fz5HlKg== +"@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.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" - "@types/gtag.js" "^0.0.12" + "@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.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.8.1.tgz#88241ffd06369f4a4d5fb982ff3ac2777561ae37" - integrity sha512-iqe3XKITBquZq+6UAXdb1vI0fPY5iIOitVjPQ581R1ZKpHr0qe+V6gVOrrcOHixPDD/BUKdYwkxFjpNiEN+vBw== +"@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.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/core" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" tslib "^2.6.0" -"@docusaurus/plugin-sitemap@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.8.1.tgz#3aebd39186dc30e53023f1aab44625bc0bdac892" - integrity sha512-+9YV/7VLbGTq8qNkjiugIelmfUEVkTyLe6X8bWq7K5qPvGXAjno27QAfFq63mYfFFbJc7z+pudL63acprbqGzw== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" +"@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.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-svgr/-/plugin-svgr-3.8.1.tgz#6f340be8eae418a2cce540d8ece096ffd9c9b6ab" - integrity sha512-rW0LWMDsdlsgowVwqiMb/7tANDodpy1wWPwCcamvhY7OECReN3feoFwLjd/U4tKjNY3encj0AJSTxJA+Fpe+Gw== +"@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.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@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.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.8.1.tgz#bb79fd12f3211363720c569a526c7e24d3aa966b" - integrity sha512-yJSjYNHXD8POMGc2mKQuj3ApPrN+eG0rO1UPgSx7jySpYU+n4WjBikbrA2ue5ad9A7aouEtMWUoiSRXTH/g7KQ== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/plugin-content-blog" "3.8.1" - "@docusaurus/plugin-content-docs" "3.8.1" - "@docusaurus/plugin-content-pages" "3.8.1" - "@docusaurus/plugin-css-cascade-layers" "3.8.1" - "@docusaurus/plugin-debug" "3.8.1" - "@docusaurus/plugin-google-analytics" "3.8.1" - "@docusaurus/plugin-google-gtag" "3.8.1" - "@docusaurus/plugin-google-tag-manager" "3.8.1" - "@docusaurus/plugin-sitemap" "3.8.1" - "@docusaurus/plugin-svgr" "3.8.1" - "@docusaurus/theme-classic" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/theme-search-algolia" "3.8.1" - "@docusaurus/types" "3.8.1" - -"@docusaurus/theme-classic@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.8.1.tgz#1e45c66d89ded359225fcd29bf3258d9205765c1" - integrity sha512-bqDUCNqXeYypMCsE1VcTXSI1QuO4KXfx8Cvl6rYfY0bhhqN6d2WZlRkyLg/p6pm+DzvanqHOyYlqdPyP0iz+iw== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/module-type-aliases" "3.8.1" - "@docusaurus/plugin-content-blog" "3.8.1" - "@docusaurus/plugin-content-docs" "3.8.1" - "@docusaurus/plugin-content-pages" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/theme-translations" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.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" @@ -1799,15 +1933,15 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-common@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.8.1.tgz#17c23316fbe3ee3f7e707c7298cb59a0fff38b4b" - integrity sha512-UswMOyTnPEVRvN5Qzbo+l8k4xrd5fTFu2VPPfD6FcW/6qUtVLmJTQCktbAL3KJ0BVXGm5aJXz/ZrzqFuZERGPw== +"@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.8.1" - "@docusaurus/module-type-aliases" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" + "@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" "*" @@ -1817,21 +1951,35 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-search-algolia@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.8.1.tgz#3aa3d99c35cc2d4b709fcddd4df875a9b536e29b" - integrity sha512-NBFH5rZVQRAQM087aYSRKQ9yGEK9eHd+xOxQjqNpxMiV85OhJDD4ZGz6YJIod26Fbooy54UWVdzNU0TFeUUUzQ== - dependencies: - "@docsearch/react" "^3.9.0" - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/plugin-content-docs" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/theme-translations" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" - algoliasearch "^5.17.1" - algoliasearch-helper "^3.22.6" +"@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" @@ -1839,21 +1987,22 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-translations@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.8.1.tgz#4b1d76973eb53861e167c7723485e059ba4ffd0a" - integrity sha512-OTp6eebuMcf2rJt4bqnvuwmm3NVXfzfYejL+u/Y1qwKhZPrjPoKWfk1CbOP5xH5ZOPkiAsx4dHdQBRJszK3z2g== +"@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.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.8.1.tgz#83ab66c345464e003b576a49f78897482061fc26" - integrity sha512-ZPdW5AB+pBjiVrcLuw3dOS6BFlrG0XkS2lDGsj8TizcnREQg3J8cjsgfDviszOk4CweNfwo1AEELJkYaMUuOPg== +"@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" @@ -1862,43 +2011,43 @@ webpack "^5.95.0" webpack-merge "^5.9.0" -"@docusaurus/utils-common@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.8.1.tgz#c369b8c3041afb7dcd595d4172beb1cc1015c85f" - integrity sha512-zTZiDlvpvoJIrQEEd71c154DkcriBecm4z94OzEE9kz7ikS3J+iSlABhFXM45mZ0eN5pVqqr7cs60+ZlYLewtg== +"@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.8.1" + "@docusaurus/types" "3.10.2" tslib "^2.6.0" -"@docusaurus/utils-validation@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.8.1.tgz#0499c0d151a4098a0963237057993282cfbd538e" - integrity sha512-gs5bXIccxzEbyVecvxg6upTwaUbfa0KMmTj7HhHzc016AGyxH2o73k1/aOD0IFrdCsfJNt37MqNI47s2MgRZMA== +"@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.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" + "@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.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.8.1.tgz#2ac1e734106e2f73dbd0f6a8824d525f9064e9f0" - integrity sha512-P1ml0nvOmEFdmu0smSXOqTS1sxU5tqvnc0dA4MTKV39kye+bhQnjkIKEE18fNOvxjyB86k8esoCIFM3x4RykOQ== +"@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: - "@docusaurus/logger" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils-common" "3.8.1" + "@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" + execa "^5.1.1" file-loader "^6.2.0" fs-extra "^11.1.1" github-slugger "^1.5.0" globby "^11.1.0" - gray-matter "^4.0.3" jiti "^1.20.0" js-yaml "^4.1.0" lodash "^4.17.21" @@ -1911,6 +2060,28 @@ utility-types "^3.10.0" webpack "^5.88.1" +"@emnapi/core@^1.5.0": + version "1.11.2" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.11.2.tgz#fab0a0f3c492d11f5a9ac9065d0d73955ee1c1c9" + integrity sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA== + dependencies: + "@emnapi/wasi-threads" "1.2.2" + tslib "^2.4.0" + +"@emnapi/runtime@^1.2.0", "@emnapi/runtime@^1.5.0": + version "1.11.2" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.11.2.tgz#eb22f04d76febfdf4f87fdaff54c8a53f6bf0dbd" + integrity sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz#4c93becf5bfa3b13d1bbdcc06aee38321ad8139a" + integrity sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA== + 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" @@ -2031,9 +2202,9 @@ "@hapi/hoek" "^9.0.0" "@iconify/react@^6.0.0": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@iconify/react/-/react-6.0.1.tgz#15e2f5f18ce651666d09a5333f6d8a764bf45793" - integrity sha512-fCocnAfiGXjrA0u7KkS3W/OQHNp9LRFICudvOtxmS3Mf7U92aDhP50wyzRbobZli51zYt9ksZ9g0J7H586XvOQ== + 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" @@ -2042,6 +2213,128 @@ 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.4" + resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-3.1.4.tgz#04dad014e8ed80b1bbe341f5d090059ea0c60578" + integrity sha512-b1S7B1k9ohZ+iNTi2ATxbRYG9fTrJmUT0rc46bvVnNxqNRGW7dyo/vRREwyniI5IRN2RSJHDcm+s3BjWrSAjHw== + dependencies: + "@antfu/install-pkg" "^1.1.0" + "@iconify/types" "^2.0.0" + import-meta-resolve "^4.2.0" + +"@img/sharp-darwin-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz#ef5b5a07862805f1e8145a377c8ba6e98813ca08" + integrity sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ== + optionalDependencies: + "@img/sharp-libvips-darwin-arm64" "1.0.4" + +"@img/sharp-darwin-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz#e03d3451cd9e664faa72948cc70a403ea4063d61" + integrity sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q== + optionalDependencies: + "@img/sharp-libvips-darwin-x64" "1.0.4" + +"@img/sharp-libvips-darwin-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz#447c5026700c01a993c7804eb8af5f6e9868c07f" + integrity sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg== + +"@img/sharp-libvips-darwin-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz#e0456f8f7c623f9dbfbdc77383caa72281d86062" + integrity sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ== + +"@img/sharp-libvips-linux-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz#979b1c66c9a91f7ff2893556ef267f90ebe51704" + integrity sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA== + +"@img/sharp-libvips-linux-arm@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz#99f922d4e15216ec205dcb6891b721bfd2884197" + integrity sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g== + +"@img/sharp-libvips-linux-s390x@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz#f8a5eb1f374a082f72b3f45e2fb25b8118a8a5ce" + integrity sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA== + +"@img/sharp-libvips-linux-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz#d4c4619cdd157774906e15770ee119931c7ef5e0" + integrity sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw== + +"@img/sharp-libvips-linuxmusl-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz#166778da0f48dd2bded1fa3033cee6b588f0d5d5" + integrity sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA== + +"@img/sharp-libvips-linuxmusl-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz#93794e4d7720b077fcad3e02982f2f1c246751ff" + integrity sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw== + +"@img/sharp-linux-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz#edb0697e7a8279c9fc829a60fc35644c4839bb22" + integrity sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA== + optionalDependencies: + "@img/sharp-libvips-linux-arm64" "1.0.4" + +"@img/sharp-linux-arm@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz#422c1a352e7b5832842577dc51602bcd5b6f5eff" + integrity sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ== + optionalDependencies: + "@img/sharp-libvips-linux-arm" "1.0.5" + +"@img/sharp-linux-s390x@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz#f5c077926b48e97e4a04d004dfaf175972059667" + integrity sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q== + optionalDependencies: + "@img/sharp-libvips-linux-s390x" "1.0.4" + +"@img/sharp-linux-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz#d806e0afd71ae6775cc87f0da8f2d03a7c2209cb" + integrity sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA== + optionalDependencies: + "@img/sharp-libvips-linux-x64" "1.0.4" + +"@img/sharp-linuxmusl-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz#252975b915894fb315af5deea174651e208d3d6b" + integrity sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" + +"@img/sharp-linuxmusl-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz#3f4609ac5d8ef8ec7dadee80b560961a60fd4f48" + integrity sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-x64" "1.0.4" + +"@img/sharp-wasm32@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz#6f44f3283069d935bb5ca5813153572f3e6f61a1" + integrity sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg== + dependencies: + "@emnapi/runtime" "^1.2.0" + +"@img/sharp-win32-ia32@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz#1a0c839a40c5351e9885628c85f2e5dfd02b52a9" + integrity sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ== + +"@img/sharp-win32-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz#56f00962ff0c4e0eb93d34a047d29fa995e3e342" + integrity sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg== + "@jest/schemas@^29.6.3": version "29.6.3" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" @@ -2096,13 +2389,174 @@ integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": - version "0.3.30" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz#4a76c4daeee5df09f5d3940e087442fb36ce2b99" - integrity sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q== + 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.64.0": + version "4.64.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-core/-/fs-core-4.64.0.tgz#82378ecedc5cbd8558fcc0a8e3c6b254db070fc8" + integrity sha512-zs2TAq7Six5jgMuoMNjpspAvOP3mhtgq/k1UyQodEzCtQi/N83y2/y+zcvnZSGp/Rxq96DBN+bValOBQAyn/ew== + dependencies: + "@jsonjoy.com/fs-node-builtins" "4.64.0" + "@jsonjoy.com/fs-node-utils" "4.64.0" + thingies "^2.5.0" + +"@jsonjoy.com/fs-fsa@4.64.0": + version "4.64.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-fsa/-/fs-fsa-4.64.0.tgz#3cb0af64a33f075300ef63be97af89bb7849e6bd" + integrity sha512-nMWOVbkLFyEgmXZih3wyvxA9XpgyyqyfrINMHvEFqhi7uqfRl7c9ERJt6yX7vgMPrB9Uo+OJO+Spa0cFzPD01w== + dependencies: + "@jsonjoy.com/fs-core" "4.64.0" + "@jsonjoy.com/fs-node-builtins" "4.64.0" + "@jsonjoy.com/fs-node-utils" "4.64.0" + thingies "^2.5.0" + +"@jsonjoy.com/fs-node-builtins@4.64.0": + version "4.64.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.64.0.tgz#84371474b2a06d209ae9f0b2b06fc570b00fb612" + integrity sha512-/o7WRFhUWaM/fOrslwLZGnzn4RmRILykn+lAL+mNObqqRNw+CQSiij6hpCeZ+C7buhdoVo7go/OYqzaSUfDYmA== + +"@jsonjoy.com/fs-node-to-fsa@4.64.0": + version "4.64.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.64.0.tgz#fbb3026befa07d690f1523c0c166f0d447fa555e" + integrity sha512-WDD9WVs0hb7UAEKTgZW2f66WDrbj7gIIWwpP3spbLyXa0rghtUaFTB8L4gdR3ZCWwiKIsj38/CNijpVmpnuPUw== + dependencies: + "@jsonjoy.com/fs-fsa" "4.64.0" + "@jsonjoy.com/fs-node-builtins" "4.64.0" + "@jsonjoy.com/fs-node-utils" "4.64.0" + +"@jsonjoy.com/fs-node-utils@4.64.0": + version "4.64.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.64.0.tgz#5803eee4abd6871644a35ea35ad63a6b7f159892" + integrity sha512-k5Indsx9hWW9xSF7Y6oSKKwtCUNhzZxadub3owhIlitc+iMRVlPPdX2duTKQWBL3qNWpXya8jykgaaWpheeS4w== + dependencies: + "@jsonjoy.com/fs-node-builtins" "4.64.0" + glob-to-regex.js "^1.0.1" + +"@jsonjoy.com/fs-node@4.64.0": + version "4.64.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node/-/fs-node-4.64.0.tgz#e8c9c4346b38cc116ca0e9fb34b10419bcfc1916" + integrity sha512-dO+NNkODbUli4uV42bcNrrLvq5rE7SNpdZ5TNd0dtbLsAaNK3MDiIC9lUi+brboGoIjW6vd2fB1qao60nrk5xA== + dependencies: + "@jsonjoy.com/fs-core" "4.64.0" + "@jsonjoy.com/fs-node-builtins" "4.64.0" + "@jsonjoy.com/fs-node-utils" "4.64.0" + "@jsonjoy.com/fs-print" "4.64.0" + "@jsonjoy.com/fs-snapshot" "4.64.0" + glob-to-regex.js "^1.0.0" + thingies "^2.5.0" + +"@jsonjoy.com/fs-print@4.64.0": + version "4.64.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-print/-/fs-print-4.64.0.tgz#375085d90b50c85754667671f58d13a63da4330d" + integrity sha512-PHZFccchvkhWrwPWHjmVAhbC3vSHCtyZvlZfJJ3ho2bnzl450hXri6/8e6pbkWdH+SkmLXNml0sV8e5HDAfxKw== + dependencies: + "@jsonjoy.com/fs-node-utils" "4.64.0" + tree-dump "^1.1.0" + +"@jsonjoy.com/fs-snapshot@4.64.0": + version "4.64.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.64.0.tgz#99a76af8664595875def5b20ed1cf159adc5f098" + integrity sha512-oM7UDeL83q6NBzzsfKAsYKXKVXlykKFqqOLh4xZZKAzzROTlInkPbc6LTDGThEOnPiFiUzA7tYziHG9xavd76Q== + dependencies: + "@jsonjoy.com/buffers" "^17.65.0" + "@jsonjoy.com/fs-node-utils" "4.64.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" @@ -2146,89 +2600,153 @@ dependencies: "@types/mdx" "^2.0.0" -"@mui/core-downloads-tracker@^7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.2.tgz#896a7890864d619093dc79541ec1ecfa3b507ad2" - integrity sha512-AOyfHjyDKVPGJJFtxOlept3EYEdLoar/RvssBTWVAvDJGIE676dLi2oT/Kx+FoVXFoA/JdV7DEMq/BVWV3KHRw== +"@mermaid-js/parser@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@mermaid-js/parser/-/parser-1.2.0.tgz#266d728c54d2d4034d270f8b31d790e26296a5fa" + integrity sha512-oYPyv8A4As1yH5Bx+04iQEQxXuIQDe0GKCNSRgao6z8AM9jixXIfP0vsppRLvGf+nKIOb9/LdpWA4YuJiVvESA== + 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.2" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-7.3.2.tgz#050049cd6195b815e85888aaebd436e8e95084b8" - integrity sha512-TZWazBjWXBjR6iGcNkbKklnwodcwj0SrChCNHc9BhD9rBgET22J1eFhHsEmvSvru9+opDy3umqAimQjokhfJlQ== + 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.3" + "@babel/runtime" "^7.28.6" "@mui/material@^7.3.1": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-7.3.2.tgz#21ad66bba695e2cd36e4a93e2e4ff5e04d8636a1" - integrity sha512-qXvbnawQhqUVfH1LMgMaiytP+ZpGoYhnGl7yYq2x57GYzcFL/iPzSZ3L30tlbwEjSVKNYcbiKO8tANR1tadjUg== - dependencies: - "@babel/runtime" "^7.28.3" - "@mui/core-downloads-tracker" "^7.3.2" - "@mui/system" "^7.3.2" - "@mui/types" "^7.4.6" - "@mui/utils" "^7.3.2" + 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.1.3" + csstype "^3.2.3" prop-types "^15.8.1" - react-is "^19.1.1" + react-is "^19.2.3" react-transition-group "^4.4.5" -"@mui/private-theming@^7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-7.3.2.tgz#9b883ac9ec9288327de038da6ddf8ffa179be831" - integrity sha512-ha7mFoOyZGJr75xeiO9lugS3joRROjc8tG1u4P50dH0KR7bwhHznVMcYg7MouochUy0OxooJm/OOSpJ7gKcMvg== +"@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.3" - "@mui/utils" "^7.3.2" + "@babel/runtime" "^7.28.6" + "@mui/utils" "^7.3.11" prop-types "^15.8.1" -"@mui/styled-engine@^7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-7.3.2.tgz#cac6acb9480d6eaf60d9c99a7d24503e53236b32" - integrity sha512-PkJzW+mTaek4e0nPYZ6qLnW5RGa0KN+eRTf5FA2nc7cFZTeM+qebmGibaTLrgQBy3UpcpemaqfzToBNkzuxqew== +"@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.3" + "@babel/runtime" "^7.28.6" "@emotion/cache" "^11.14.0" "@emotion/serialize" "^1.3.3" "@emotion/sheet" "^1.4.0" - csstype "^3.1.3" + csstype "^3.2.3" prop-types "^15.8.1" -"@mui/system@^7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-7.3.2.tgz#e838097fc6cb0a2e4c1822478950db89affb116a" - integrity sha512-9d8JEvZW+H6cVkaZ+FK56R53vkJe3HsTpcjMUtH8v1xK6Y1TjzHdZ7Jck02mGXJsE6MQGWVs3ogRHTQmS9Q/rA== +"@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.3" - "@mui/private-theming" "^7.3.2" - "@mui/styled-engine" "^7.3.2" - "@mui/types" "^7.4.6" - "@mui/utils" "^7.3.2" + "@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.1.3" + csstype "^3.2.3" prop-types "^15.8.1" -"@mui/types@^7.4.6": - version "7.4.6" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.4.6.tgz#1432e0814cf155287283f6bbd1e95976a148ef07" - integrity sha512-NVBbIw+4CDMMppNamVxyTccNv0WxtDb7motWDlMeSC8Oy95saj1TIZMGynPpFLePt3yOD8TskzumeqORCgRGWw== +"@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.3" + "@babel/runtime" "^7.28.6" -"@mui/utils@^7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-7.3.2.tgz#361775d72c557a03115150e8aec4329c7ef14563" - integrity sha512-4DMWQGenOdLnM3y/SdFQFwKsCLM+mqxzvoWp9+x2XdEzXapkznauHLiXtSohHs/mc0+5/9UACt1GdugCX2te5g== +"@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.3" - "@mui/types" "^7.4.6" + "@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.1.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.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -2251,6 +2769,136 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@peculiar/asn1-cms@^2.6.0", "@peculiar/asn1-cms@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-cms/-/asn1-cms-2.8.0.tgz#b48a8389319228f929e9acd8cee8da6c858738de" + integrity sha512-NgekZOrSJFSBFLFoLfwePguAWAx7z1+f2TEsWFUMyiqqfntZ4+S/S5hzqME3q4pCA0iOsFKdwiQ35dwY24eVqA== + dependencies: + "@peculiar/asn1-schema" "^2.8.0" + "@peculiar/asn1-x509" "^2.8.0" + "@peculiar/asn1-x509-attr" "^2.8.0" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-csr@^2.6.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-csr/-/asn1-csr-2.8.0.tgz#c9bb5dec2eaff824a705e82a4a58d45e6d2c35d0" + integrity sha512-akbF8+uvleHs8sejNPQxwmVFuInAg6FMNHOwMILXfP518YfFJwdR3jr6oNUPOaEJfuEhn/vkNOCIT6ASUd4mbg== + dependencies: + "@peculiar/asn1-schema" "^2.8.0" + "@peculiar/asn1-x509" "^2.8.0" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-ecc@^2.6.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-ecc/-/asn1-ecc-2.8.0.tgz#d51ab2b07eca98e0cf492d051e98bbd0a071305a" + integrity sha512-ohwlk+u9Rv2NOAY1c6MfHj45ATVF8R1DUN/WCgABiRtLi2ZftlZWZX7KvpAbU8v9xPcmoILfELeEABj/rn18AQ== + dependencies: + "@peculiar/asn1-schema" "^2.8.0" + "@peculiar/asn1-x509" "^2.8.0" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-pfx@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pfx/-/asn1-pfx-2.8.0.tgz#8e189b6455e2bf9e5f921bb150ea86d7e7d1875d" + integrity sha512-5yof1ytoB++RQtaFbqSUJ8pxDJtZT6vbVqZ8XoJ61ph7UjNVvfFwAilnCodqkNsAodpy13gDhoxZXw00pghnyg== + dependencies: + "@peculiar/asn1-cms" "^2.8.0" + "@peculiar/asn1-pkcs8" "^2.8.0" + "@peculiar/asn1-rsa" "^2.8.0" + "@peculiar/asn1-schema" "^2.8.0" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-pkcs8@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.8.0.tgz#a46cf8857b9b063896afa41d2b8b2aa6a07a70a2" + integrity sha512-qAKXtLpBEw9LqhKpjw3ajZSXlBur+ipW+y2ivVBQAG6F6qRx94yO+1ZR4mvw+YaCfKSaOzLeYEzsPaBp4SJELA== + dependencies: + "@peculiar/asn1-schema" "^2.8.0" + "@peculiar/asn1-x509" "^2.8.0" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-pkcs9@^2.6.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.8.0.tgz#6d62697af0bbd4f30fdf0d23b4018f3f09620de3" + integrity sha512-b5nDWCnkV60+cQ141D6sVVwK9nz64R5n3zSVnklGd+ECdkW2Ol3U1a6yYFlalpSOaD557yuJB64A+q42jG7lUQ== + dependencies: + "@peculiar/asn1-cms" "^2.8.0" + "@peculiar/asn1-pfx" "^2.8.0" + "@peculiar/asn1-pkcs8" "^2.8.0" + "@peculiar/asn1-schema" "^2.8.0" + "@peculiar/asn1-x509" "^2.8.0" + "@peculiar/asn1-x509-attr" "^2.8.0" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-rsa@^2.6.0", "@peculiar/asn1-rsa@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-rsa/-/asn1-rsa-2.8.0.tgz#9d98d0fc42fec50119d2881b8a9925d36daaea73" + integrity sha512-zHEUlCqB2mk7x2lxDwHHJy7hWZOPdGHVlsmITWKB5/PbQo61atbu9PJ/0r9dQNMwFzbKPXZ8uK8/91eUhRznSg== + dependencies: + "@peculiar/asn1-schema" "^2.8.0" + "@peculiar/asn1-x509" "^2.8.0" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-schema@^2.6.0", "@peculiar/asn1-schema@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.8.0.tgz#69699f84259b2161607cabfc34e512a4023dbef9" + integrity sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q== + dependencies: + "@peculiar/utils" "^2.0.2" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-x509-attr@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.8.0.tgz#bd168e3f5e8bc23e56b1a97891f9f2fb7f730204" + integrity sha512-tHjkfS/qhMnmrlB2J9NhflQlQ7In3khO3CfmVrriOlpTeErY9ZIKOso1hQ5JQiyrJ7ShvqVPk7E5fQmbclkSKA== + dependencies: + "@peculiar/asn1-schema" "^2.8.0" + "@peculiar/asn1-x509" "^2.8.0" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-x509@^2.6.0", "@peculiar/asn1-x509@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.8.0.tgz#9958a9ef35dec8426aabad78ffe8798e318b06e2" + integrity sha512-N0CMuhWUzsWEVq6F1q9X6+VKUnWzSW+cSVg+aPaGGwDdbFoFWTYgin5MHwXgpWd6y9COMBxnfy/Qc+Xc7F0Zwg== + dependencies: + "@peculiar/asn1-schema" "^2.8.0" + "@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" @@ -2263,10 +2911,10 @@ dependencies: graceful-fs "4.2.10" -"@pnpm/npm-conf@^2.1.0": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz#bb375a571a0bd63ab0a23bece33033c683e9b6b0" - integrity sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw== +"@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" @@ -2282,6 +2930,88 @@ 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" @@ -2300,9 +3030,9 @@ integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== "@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + version "0.27.10" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.10.tgz#beefe675f1853f73676aecc915b2bd2ac98c4fc6" + integrity sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA== "@sindresorhus/is@^4.6.0": version "4.6.0" @@ -2429,6 +3159,179 @@ "@svgr/plugin-jsx" "8.1.0" "@svgr/plugin-svgo" "8.1.0" +"@swc/core-darwin-arm64@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.43.tgz#386294f8427dde2df1a70dd0a5826d67af70e996" + integrity sha512-v1aVuvXdo/BHxJzco9V2xpHrvwWmhfS8t6gziY5wJxd+Z2h8AeJRnAwPD8itCDaGXVBwJ/CaKfxEzTkG0Va0OA== + +"@swc/core-darwin-x64@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.15.43.tgz#c4823529c424e2ae25b7eb786438474741521fcb" + integrity sha512-lp3d4Lamc8dt5huYdGLSR+9hLxmfr1jb0l+4XXG2zPqZwYWRN9R0U2qYoTrggiU2RWW0oV9VbWM3kBnqIc2kdQ== + +"@swc/core-linux-arm-gnueabihf@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.43.tgz#c0a0ed17cffc5d4af192935667f12f05feeb39f9" + integrity sha512-JWTQQELtsG5GgphDrr/XqqmM2pDN3cZqbMS0Mrg+iTiXL3F74sn/S2IyYE/5u4h2KLkTf9qQ7dXyxsbx7YzkeA== + +"@swc/core-linux-arm64-gnu@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.43.tgz#1eb2d9c5eeee5bb9d00599b475ddc31dc2870d22" + integrity sha512-B4otJRdPWIsmiSBf0uG7Z/+vMWmkufjz5MmYxubwKuZazDW14Zd3symga1N62QR4RT+kEFeHEgsXfZGyn/w0hw== + +"@swc/core-linux-arm64-musl@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.43.tgz#ea6b5c38088f3921a57922d3931b2d74fd23a9fd" + integrity sha512-6zB6OnpViBxYy4tgY3v2i6AZY9fwkcHZ032UOwtwUuW1d19sdT07qF0kZe6/3UR1tUaK6jjg2rmVcUIBCEYVjQ== + +"@swc/core-linux-ppc64-gnu@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.43.tgz#538fac30bbd5f1e678bb7bac9ccc62246a6f6d7a" + integrity sha512-coxE1ZWdB3uSDVNoEtYNrRi/1epvckZx9cTJ8ICUxTMTxGk+yvQ/Twacp3ruZSaMPGCriUjP86C37VhaT6nyRg== + +"@swc/core-linux-s390x-gnu@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.43.tgz#ee564b45f3f578b1fc82136c4dab163189316641" + integrity sha512-lXfLhs+LpBsD5inuYx+YDH5WsPPBQ95KPUiy8P5wq9ob9xKDZFqwNfU2QW6bGO8NqRO/H9JQomTSt5Yyh+FGfA== + +"@swc/core-linux-x64-gnu@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.43.tgz#e6e3bfea76921c7f5e16d50a126615f2e04ce1c8" + integrity sha512-07XnKwTmKy8TGOZG3D9fRnLWGynxPjwQnZLVmBFbo6F+7vHYzBIOuwXEhemrChBWb6yDNZsVCcMWCPX6FDD2xg== + +"@swc/core-linux-x64-musl@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.43.tgz#539f6f2721c0cc32e5db5cf0d453c82045f6662d" + integrity sha512-TJc+bsSIaBh+hZvZ5GRtW/K1bw66TJ9vsUwvVIsZdiWxU5ObLwZvfcnZ3UpgVfMnFibRes9uriJrQNBHEEogRQ== + +"@swc/core-win32-arm64-msvc@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.43.tgz#b7bb6b611d484ac19d0ee21469e7012d646c28b5" + integrity sha512-jfd7s2/bUQYkOHLs+LWQNKZdmDa8+sufKLllhpWAhVQ2GDCwsHe3vR/j+OSiItZNtkzFuaawa3+SAKz9y5gYfw== + +"@swc/core-win32-ia32-msvc@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.43.tgz#e5b25722a7d27bb0c9a9bdee7863f29c8674364e" + integrity sha512-rLAE8JvucqEW1ZGohxPQrQWPBQeJG4+ypKbWfdlU/qmKScvCkxf9/Jxnzki1dkUQCQ7P5Enp13RlvqOlvx/32g== + +"@swc/core-win32-x64-msvc@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.43.tgz#d28842621201c345383d468d40c09648b6cd6e68" + integrity sha512-h8MLDHZcfIukwQWj03rIJZx1I0E81AYj2X7J/nGErG4nz+QAv6G1Z+peotvinL3lqpbo32tLYSMFo32/ySzxKg== + +"@swc/core@^1.15.40": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.15.43.tgz#653e6573968fd5c74163b9885ea0a933012c9f22" + integrity sha512-1CuKjFkPxIgGdeHVuNbkxmBxkcbdc08u0aiI43pFq6yY1tTVKmXT9hFEooyyKs/sJ3xf1GPHyEwTtk9Xl8dvQw== + dependencies: + "@swc/counter" "^0.1.3" + "@swc/types" "^0.1.27" + optionalDependencies: + "@swc/core-darwin-arm64" "1.15.43" + "@swc/core-darwin-x64" "1.15.43" + "@swc/core-linux-arm-gnueabihf" "1.15.43" + "@swc/core-linux-arm64-gnu" "1.15.43" + "@swc/core-linux-arm64-musl" "1.15.43" + "@swc/core-linux-ppc64-gnu" "1.15.43" + "@swc/core-linux-s390x-gnu" "1.15.43" + "@swc/core-linux-x64-gnu" "1.15.43" + "@swc/core-linux-x64-musl" "1.15.43" + "@swc/core-win32-arm64-msvc" "1.15.43" + "@swc/core-win32-ia32-msvc" "1.15.43" + "@swc/core-win32-x64-msvc" "1.15.43" + +"@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.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/html-darwin-arm64/-/html-darwin-arm64-1.15.43.tgz#c88069f140ead901724018f96ad709779526a368" + integrity sha512-+PFbHbeeN+zB0zfvR1V1NmvPriuWPI+sijQXpI+wq/nLIujxvtENWjOKVHgouC9TIN/uKmL2zu9HAq6L6YxnPA== + +"@swc/html-darwin-x64@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/html-darwin-x64/-/html-darwin-x64-1.15.43.tgz#9bc8171494d3b98eac017b5b73f0f63054558626" + integrity sha512-LQJ2U8Oxcx4T1rRF25y4h+/p05nn58FugTe/uGxC5OT3K83c2MftcSZLYaahOu4GVHRZeS1NI94CkSvQV++TVw== + +"@swc/html-linux-arm-gnueabihf@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/html-linux-arm-gnueabihf/-/html-linux-arm-gnueabihf-1.15.43.tgz#271a5d345719fa2c381df45355f70870faaaf35c" + integrity sha512-DKIen6DuIRO7Xc5gAbgBT5QyRHJGEGXreIdM1VBosYWTGnnrQ//Hwd7bLD6UbT8X8eU1vqvpXwQ1E24QRqRaBQ== + +"@swc/html-linux-arm64-gnu@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-gnu/-/html-linux-arm64-gnu-1.15.43.tgz#93cd3202f204351e7279efd07abc280fe0b2d193" + integrity sha512-0AuHiyfcE86CZ/CajFIszLzZVzbM2wn5p01oet8Q9RikflCGwyH79Nv9TrAKD1Cx7juUrONzDk+f2b/x73wLTg== + +"@swc/html-linux-arm64-musl@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-musl/-/html-linux-arm64-musl-1.15.43.tgz#a6c0c2a1646755b1ee53a6bddbee68674f8edaea" + integrity sha512-TweIdl/g9ugkoiYvcL/qbu+gbglDY3TqNxfXH84WXc4rSqEP20owVlxLya2NjVct8LIP2wDrtutpOwAXWC+Eew== + +"@swc/html-linux-ppc64-gnu@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/html-linux-ppc64-gnu/-/html-linux-ppc64-gnu-1.15.43.tgz#51319cc1a4184b788613e0e556fc33ff77af0c52" + integrity sha512-4oue1pB38/W6mbudp+w0q1jbwxuwdbdbaOj85ay0pisCs213WkgP+MPN8Zqa5VVPjQnVk2CTY9kmEc74XQI/sA== + +"@swc/html-linux-s390x-gnu@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/html-linux-s390x-gnu/-/html-linux-s390x-gnu-1.15.43.tgz#a612115a5f2f6c9df438a52ab2cf8bc4fd3865b1" + integrity sha512-/tceMNvAxK70SKUZtcn3X+K0vcElMGk3i8Sz0CmPdtooso8MZ7WfAvVP1qi3TWgh1rpQ3cC+Al3433AHlET6+w== + +"@swc/html-linux-x64-gnu@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-gnu/-/html-linux-x64-gnu-1.15.43.tgz#028980da812e1797316f0a06a758a49aca699318" + integrity sha512-YE7ltlTt5ZFl59GsoHTDrIHnCBY8EDBio66CVj4bqkElFXbE/28xmpVE5ksdGoI5c5aQ/8byUCfHxqzCzQQSVg== + +"@swc/html-linux-x64-musl@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-musl/-/html-linux-x64-musl-1.15.43.tgz#363ac7ce3866b664db0c35d78a6a90636f280139" + integrity sha512-nS20HmbOk+dEEzdosJqqxAeyjMIiS5yrCAti8LUf0+dgr4eRmjkH4MlkjfPjf49aayR8o+eMJ1jsDZ7whx4zog== + +"@swc/html-win32-arm64-msvc@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/html-win32-arm64-msvc/-/html-win32-arm64-msvc-1.15.43.tgz#d0aa3f99c091577aaaa1aaf51a3695c98278564d" + integrity sha512-Yz7aQQhXT/Yc6QcuMDQDZP9jqf2phkVyU+qSu8ZRWEcJgIorrPL6q7YLqMk+MB5PpZyu5XJEODvc1/UVDE1Kyg== + +"@swc/html-win32-ia32-msvc@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/html-win32-ia32-msvc/-/html-win32-ia32-msvc-1.15.43.tgz#e2cfe4dd26ce8b8c5787ca1fdd69ef6b5dc94822" + integrity sha512-muUgfsSQRZk6YBRuhaGKSLvXy0bV9BW6/mHLI0N/06btWuf0hekoHhIzR7dUmS98NXKCA7Hv+buBPE/0vXUwyA== + +"@swc/html-win32-x64-msvc@1.15.43": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/html-win32-x64-msvc/-/html-win32-x64-msvc-1.15.43.tgz#ee1a8a7fe4d928595268c214cf17c72867ee8f0f" + integrity sha512-tuLDy4MxPXsLi6jW+ozCdFWO61AoMMnlhePWJxMafefC2Ojm+iILxP2zI2Hgfu6F16y1q7ITdXdpEuqptu5fHw== + +"@swc/html@^1.15.40": + version "1.15.43" + resolved "https://registry.yarnpkg.com/@swc/html/-/html-1.15.43.tgz#421da1ffc3226d149fd57c73f73755c6e6148427" + integrity sha512-SKbkbdGi9SDO9cTdV+6H0/AYifnb2nDOlz5BlWxlWMXACV3kmX6WwZDo0bBdyGlO/G4jCVWdR5r84qfotU2now== + dependencies: + "@swc/counter" "^0.1.3" + optionalDependencies: + "@swc/html-darwin-arm64" "1.15.43" + "@swc/html-darwin-x64" "1.15.43" + "@swc/html-linux-arm-gnueabihf" "1.15.43" + "@swc/html-linux-arm64-gnu" "1.15.43" + "@swc/html-linux-arm64-musl" "1.15.43" + "@swc/html-linux-ppc64-gnu" "1.15.43" + "@swc/html-linux-s390x-gnu" "1.15.43" + "@swc/html-linux-x64-gnu" "1.15.43" + "@swc/html-linux-x64-musl" "1.15.43" + "@swc/html-win32-arm64-msvc" "1.15.43" + "@swc/html-win32-ia32-msvc" "1.15.43" + "@swc/html-win32-x64-msvc" "1.15.43" + +"@swc/types@^0.1.27": + version "0.1.27" + resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.27.tgz#12080b0c426dea450634f202d9a3c82ac396e793" + integrity sha512-K6h3iUlqeM946U4sXFYeahefR1YBbXJvko+hv8WS8/0BNJ4OHiHRywMnQUJCqkR7Y9+hqQ1TvEpiKqUhz7NEFg== + 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" @@ -2436,10 +3339,12 @@ dependencies: defer-to-connect "^2.0.1" -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== +"@tybys/wasm-util@^0.10.1": + version "0.10.3" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.3.tgz#015cba9e9dd47ce14d03d2a8c5d547bfb169665d" + integrity sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg== + dependencies: + tslib "^2.4.0" "@types/body-parser@*": version "1.19.6" @@ -2449,14 +3354,14 @@ "@types/connect" "*" "@types/node" "*" -"@types/bonjour@^3.5.9": +"@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.3.5": +"@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== @@ -2471,28 +3376,222 @@ dependencies: "@types/node" "*" -"@types/debug@^4.0.0": - version "4.1.12" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" - integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== +"@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/ms" "*" + "@types/d3-selection" "*" -"@types/eslint-scope@^3.7.7": - version "3.7.7" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" - integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== +"@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/eslint" "*" - "@types/estree" "*" + "@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/eslint@*": - version "9.6.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" - integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== +"@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/estree" "*" - "@types/json-schema" "*" + "@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.0" + resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-3.1.0.tgz#b9e56a079449174f0a2c8684a9a4df3f60522440" + integrity sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ== + 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.11" + resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.11.tgz#bd7a45fc0a8c3167a631675e61bc2ca2b058d4a3" + integrity sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w== + +"@types/d3-shape@*": + version "3.1.8" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.8.tgz#d1516cc508753be06852cd06758e3bb54a22b0e3" + integrity sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w== + 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" @@ -2502,24 +3601,24 @@ "@types/estree" "*" "@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== + 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.0.7" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.7.tgz#2fa94879c9d46b11a5df4c74ac75befd6b283de6" - integrity sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ== + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.2.tgz#19afe821c79f18d05946892bbd5b924b96c8a4f6" + integrity sha512-d3KvEXBSo/lOAMc2u6fkyDHBvetBHeqD7wm/AcXfLpSOQwlmG9D/aQ0SFswVjv05p7ullQS7Mjohj6/VdbZuTg== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/send" "*" -"@types/express-serve-static-core@^4.17.33": - version "4.19.6" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267" - integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== +"@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" "*" @@ -2527,28 +3626,28 @@ "@types/send" "*" "@types/express@*": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.3.tgz#6c4bc6acddc2e2a587142e1d8be0bce20757e956" - integrity sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw== + 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" "*" + "@types/serve-static" "^2" -"@types/express@^4.17.13": - version "4.17.23" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.23.tgz#35af3193c640bfd4d7fe77191cd0ed411a433bef" - integrity sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ== +"@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" "*" + "@types/serve-static" "^1" -"@types/gtag.js@^0.0.12": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@types/gtag.js/-/gtag.js-0.0.12.tgz#095122edca896689bdfcdd73b057e23064d23572" - integrity sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg== +"@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.4" @@ -2568,9 +3667,9 @@ integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== "@types/http-cache-semantics@^4.0.2": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" - integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + 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" @@ -2578,9 +3677,9 @@ integrity sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg== "@types/http-proxy@^1.17.8": - version "1.17.16" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.16.tgz#dee360707b35b3cc85afcde89ffeebff7d7f9240" - integrity sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w== + 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" "*" @@ -2603,7 +3702,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -2616,9 +3715,9 @@ "@types/unist" "*" "@types/mdx@^2.0.0": - version "2.0.13" - resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.13.tgz#68f6877043d377092890ff5b298152b0a21671bd" - integrity sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw== + 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" @@ -2630,19 +3729,12 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== -"@types/node-forge@^1.3.0": - version "1.3.14" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.14.tgz#006c2616ccd65550560c2757d8472eb6d3ecea0b" - integrity sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw== - dependencies: - "@types/node" "*" - "@types/node@*": - version "24.3.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.3.1.tgz#b0a3fb2afed0ef98e8d7f06d46ef6349047709f3" - integrity sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g== + version "26.1.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-26.1.1.tgz#bad758d601e97d6cf457d204ee76a35fce7bd119" + integrity sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw== dependencies: - undici-types "~7.10.0" + undici-types "~8.3.0" "@types/node@^17.0.5": version "17.0.45" @@ -2655,9 +3747,9 @@ integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== "@types/prismjs@^1.26.0": - version "1.26.5" - resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.5.tgz#72499abbb4c4ec9982446509d2f14fb8483869d6" - integrity sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ== + 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" @@ -2665,9 +3757,9 @@ integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw== "@types/qs@*": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.14.0.tgz#d8b60cecf62f2db0fb68e5e006077b9178b85de5" - integrity sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ== + 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" @@ -2706,16 +3798,16 @@ integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w== "@types/react@*": - version "19.1.12" - resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.12.tgz#7bfaa76aabbb0b4fe0493c21a3a7a93d33e8937b" - integrity sha512-cMoR+FoAf/Jyq6+Df2/Z41jISvGZZ2eTlnsaJRptmZ76Caldwy1odD4xTr/gNV9VLj0AWgg/nmkevIyUfIIq5w== + version "19.2.17" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.17.tgz#dccac365baa0f1734ec270ff4b51c89465e8dc7f" + integrity sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw== dependencies: - csstype "^3.0.2" + csstype "^3.2.2" -"@types/retry@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== +"@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" @@ -2725,36 +3817,56 @@ "@types/node" "*" "@types/send@*": - version "0.17.5" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.5.tgz#d991d4f2b16f2b1ef497131f00a9114290791e74" - integrity sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w== + 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.1": +"@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@*", "@types/serve-static@^1.13.10": - version "1.15.8" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.8.tgz#8180c3fbe4a70e8f00b9f70b9ba7f08f35987877" - integrity sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg== +"@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/send" "*" -"@types/sockjs@^0.3.33": +"@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" @@ -2765,7 +3877,7 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== -"@types/ws@^8.5.5": +"@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== @@ -2778,16 +3890,24 @@ integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^17.0.8": - version "17.0.33" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" - integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== + 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": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" - integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== +"@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.3.1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.2.tgz#a03ad82cd5676414d068ba86f880c5681194aadf" + integrity sha512-5jsZFwgR5rTdKwidH9Qmat75RKwqfpKlWWB1frDkljN127mwqBu8K0PYo7/hFpF03IEJpfVPpCQDY/eDx3iHvA== + +"@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" @@ -2920,7 +4040,7 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -accepts@~1.3.4, accepts@~1.3.8: +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== @@ -2939,21 +4059,21 @@ acorn-jsx@^5.0.0: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.0.0: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== + 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.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== +acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.15.0, acorn@^8.16.0: + version "8.17.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.17.0.tgz#1785adb84faf8d8add10369b93826fc2bd08f1fe" + integrity sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg== -address@^1.0.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" - integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== +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" @@ -2983,9 +4103,9 @@ ajv-keywords@^5.1.0: fast-deep-equal "^3.1.3" ajv@^6.12.5: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + 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" @@ -2993,41 +4113,41 @@ ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.0, ajv@^8.9.0: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" - integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + 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.22.6: - version "3.26.0" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.26.0.tgz#d6e283396a9fc5bf944f365dc3b712570314363f" - integrity sha512-Rv2x3GXleQ3ygwhkhJubhhYGsICmShLAiqtUuJTUkr9uOCOXyF2E71LVT4XDnVffbknv8XgScP4U0Oxtgm+hIw== +algoliasearch-helper@^3.26.0: + version "3.29.2" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.29.2.tgz#ceb699ae6ec9bb088f8a2b781b66868222e9c23a" + integrity sha512-SaV+rZM3drExb0punEYYjT+sNcH74YFwN8ocjya7IDOyQvKWeQpEaSMVG3+IGTVos+feuatj7ljQ4BXlXdUp3w== dependencies: "@algolia/events" "^4.0.1" -algoliasearch@^5.14.2, algoliasearch@^5.17.1: - version "5.37.0" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.37.0.tgz#73dc4a09654e6e02b529300018d639706b95b47b" - integrity sha512-y7gau/ZOQDqoInTQp0IwTOjkrHc4Aq4R8JgpmCleFwiLl+PbN2DMWoDUWZnrK8AhNJwT++dn28Bt4NZYNLAmuA== - dependencies: - "@algolia/abtesting" "1.3.0" - "@algolia/client-abtesting" "5.37.0" - "@algolia/client-analytics" "5.37.0" - "@algolia/client-common" "5.37.0" - "@algolia/client-insights" "5.37.0" - "@algolia/client-personalization" "5.37.0" - "@algolia/client-query-suggestions" "5.37.0" - "@algolia/client-search" "5.37.0" - "@algolia/ingestion" "1.37.0" - "@algolia/monitoring" "1.37.0" - "@algolia/recommend" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" +algoliasearch@^5.37.0: + version "5.55.2" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.55.2.tgz#5aa9426faedfa63c6433e6ba78b1843c8208e012" + integrity sha512-OyacJsaeuLUvGWOynNqYc6sx88XvyoG39wMT8SYqL3l9wwaorDW/LPRbUPfhzw0bWsUWzNCZTnFYOrWFBKsUaw== + dependencies: + "@algolia/abtesting" "1.21.2" + "@algolia/client-abtesting" "5.55.2" + "@algolia/client-analytics" "5.55.2" + "@algolia/client-common" "5.55.2" + "@algolia/client-insights" "5.55.2" + "@algolia/client-personalization" "5.55.2" + "@algolia/client-query-suggestions" "5.55.2" + "@algolia/client-search" "5.55.2" + "@algolia/ingestion" "1.55.2" + "@algolia/monitoring" "1.55.2" + "@algolia/recommend" "5.55.2" + "@algolia/requester-browser-xhr" "5.55.2" + "@algolia/requester-fetch" "5.55.2" + "@algolia/requester-node-http" "5.55.2" ansi-align@^3.0.1: version "3.0.1" @@ -3036,13 +4156,6 @@ ansi-align@^3.0.1: dependencies: string-width "^4.1.0" -ansi-escapes@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - 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" @@ -3053,12 +4166,12 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-regex@^6.0.1: +ansi-regex@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +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== @@ -3070,6 +4183,11 @@ ansi-styles@^6.1.0: 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" @@ -3083,13 +4201,6 @@ arg@^5.0.0: resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -3105,20 +4216,28 @@ array-union@^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.21: - version "10.4.21" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d" - integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ== +autoprefixer@^10.4.19, autoprefixer@^10.4.23: + version "10.5.2" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.5.2.tgz#5d7dcaab1c294038fe51e0fa3738d28e559caac0" + integrity sha512-rD5t5DwOjJdmSORcTq64j8MawTC+tbQ+HHqjR4NDumamy/ambn1UJrlKL+KdwujWxMkFjPM3pPHOEA9tl4767Q== dependencies: - browserslist "^4.24.4" - caniuse-lite "^1.0.30001702" - fraction.js "^4.3.7" - normalize-range "^0.1.2" + browserslist "^4.28.4" + caniuse-lite "^1.0.30001799" + fraction.js "^5.3.4" picocolors "^1.1.1" postcss-value-parser "^4.2.0" @@ -3146,13 +4265,13 @@ babel-plugin-macros@^3.1.0: cosmiconfig "^7.0.0" resolve "^1.19.0" -babel-plugin-polyfill-corejs2@^0.4.14: - version "0.4.14" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz#8101b82b769c568835611542488d463395c2ef8f" - integrity sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg== +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.27.7" - "@babel/helper-define-polyfill-provider" "^0.6.5" + "@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: @@ -3163,12 +4282,20 @@ babel-plugin-polyfill-corejs3@^0.13.0: "@babel/helper-define-polyfill-provider" "^0.6.5" core-js-compat "^3.43.0" -babel-plugin-polyfill-regenerator@^0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz#32752e38ab6f6767b92650347bf26a31b16ae8c5" - integrity sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg== +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.5" + "@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" @@ -3180,6 +4307,16 @@ balanced-match@^1.0.0: 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== + +baseline-browser-mapping@^2.10.42: + version "2.10.42" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.42.tgz#195dcc76baa269a497f0b07decace169fee9ac58" + integrity sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q== + batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -3195,28 +4332,28 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== -body-parser@1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== +body-parser@~1.20.5: + version "1.20.5" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.5.tgz#303c8c34423d1d6fa799bc764e93c1e4dc6ebf64" + integrity sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA== dependencies: - bytes "3.1.2" + 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.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" + destroy "~1.2.0" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + on-finished "~2.4.1" + qs "~6.15.1" + raw-body "~2.5.3" type-is "~1.6.18" - unpipe "1.0.0" + unpipe "~1.0.0" -bonjour-service@^1.0.11: - version "1.3.0" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" - integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== +bonjour-service@^1.2.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.4.2.tgz#33ce18eddf13047e5eeb08939018b20bae1a1473" + integrity sha512-lMskhnsW70yWHr4PhPeh2rvaIkLSaDpp+nmtbXBZaNKTXwxL73QOkW6HhbzqTImXjevn9TreGT4GACGBCGP9nQ== dependencies: fast-deep-equal "^3.1.3" multicast-dns "^7.2.5" @@ -3255,13 +4392,20 @@ boxen@^7.0.0: wrap-ansi "^8.1.0" brace-expansion@^1.1.7: - version "1.1.12" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" - integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== + version "1.1.16" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.16.tgz#723d3a30c0558c225abc9fc479a73e14e26c3c2f" + integrity sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^5.0.5: + version "5.0.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.7.tgz#1b0e46965b479dad65af737b4a02790a05498337" + integrity sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA== + 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" @@ -3269,31 +4413,44 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.0.0, browserslist@^4.23.0, browserslist@^4.24.0, browserslist@^4.24.4, browserslist@^4.25.1, browserslist@^4.25.3: - version "4.25.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.4.tgz#ebdd0e1d1cf3911834bab3a6cd7b917d9babf5af" - integrity sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg== +browserslist@^4.0.0, browserslist@^4.23.0, browserslist@^4.24.0, browserslist@^4.24.2, browserslist@^4.28.1, browserslist@^4.28.4: + version "4.28.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.5.tgz#438b7d38c0d4b47740bbb36778d5bdca01b37838" + integrity sha512-Cu2E6QejHWzuDMTkuwgpABFgDfZrXLQq5V13YOACZx4mFAG4IwGTbTfHPMr4WtxlHoXSM8FIuRwYYCz5XiabaQ== dependencies: - caniuse-lite "^1.0.30001737" - electron-to-chromium "^1.5.211" - node-releases "^2.0.19" - update-browserslist-db "^1.1.3" + baseline-browser-mapping "^2.10.42" + caniuse-lite "^1.0.30001800" + electron-to-chromium "^1.5.387" + node-releases "^2.0.50" + update-browserslist-db "^1.2.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== +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, 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" @@ -3312,7 +4469,7 @@ cacheable-request@^10.2.8: normalize-url "^8.0.0" responselike "^3.0.0" -call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: +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== @@ -3321,13 +4478,13 @@ call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply- function-bind "^1.1.2" call-bind@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" - integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + 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.0" - es-define-property "^1.0.0" - get-intrinsic "^1.2.4" + 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: @@ -3371,10 +4528,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.30001737: - version "1.0.30001741" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001741.tgz#67fb92953edc536442f3c9da74320774aa523143" - integrity sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001799, caniuse-lite@^1.0.30001800: + version "1.0.30001803" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001803.tgz#b2a5d696e042bc8304dcd4942c39fe330fbbcb24" + integrity sha512-g/uHREV2ZpK9qMalCsWaxmA6ol+DX8GYhuf3T40RKoP+oL7vhRJh8LNt73PCjpnR6l14FzfPrB5Yux4PKm2meg== ccount@^2.0.0: version "2.0.1" @@ -3444,7 +4601,7 @@ cheerio@1.0.0-rc.12: parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" -chokidar@^3.5.3: +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== @@ -3530,11 +4687,27 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -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.9.3" resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" @@ -3555,6 +4728,11 @@ comma-separated-tokens@^2.0.0: 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" @@ -3570,11 +4748,6 @@ commander@^5.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -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@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" @@ -3592,7 +4765,7 @@ compressible@~2.0.18: dependencies: mime-db ">= 1.43.0 < 2" -compression@^1.7.4: +compression@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.1.tgz#4a45d909ac16509195a9a28bd91094889c180d79" integrity sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w== @@ -3644,7 +4817,7 @@ content-disposition@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: +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== @@ -3666,20 +4839,20 @@ convert-source-map@^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.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== +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.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" - integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== +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.1" - resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.1.tgz#01c3656d6c81a6aa713aa0a8d361214a1eeac6ae" - integrity sha512-3am6cw+WOicd0+HyzhC4kYS02wHJUiVQXmAADxfUARKsHBkWl1Vl3QQEiILlSs8YcPS/C0+y/urCNEYQk+byWA== + 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" @@ -3693,28 +4866,37 @@ copy-webpack-plugin@^11.0.0: schema-utils "^4.0.0" serialize-javascript "^6.0.0" -core-js-compat@^3.43.0: - version "3.45.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.45.1.tgz#424f3f4af30bf676fd1b67a579465104f64e9c7a" - integrity sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA== +core-js-compat@^3.43.0, core-js-compat@^3.48.0: + version "3.49.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.49.0.tgz#06145447d92f4aaf258a0c44f24b47afaeaffef6" + integrity sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA== dependencies: - browserslist "^4.25.3" - -core-js-pure@^3.43.0: - version "3.45.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.45.1.tgz#b129d86a5f7f8380378577c7eaee83608570a05a" - integrity sha512-OHnWFKgTUshEU8MK+lOs1H8kC8GkTi9Z1tvNkxrCcw9wl3MJIO7q2ld77wjWn4/xuGrVu2X+nME1iIIPBSdyEQ== + browserslist "^4.28.1" core-js@^3.31.1: - version "3.45.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.45.1.tgz#5810e04a1b4e9bc5ddaa4dd12e702ff67300634d" - integrity sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg== + version "3.49.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.49.0.tgz#8b4d520ac034311fa21aa616f017ada0e0dbbddd" + integrity sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg== 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" @@ -3760,9 +4942,9 @@ css-blank-pseudo@^7.0.1: postcss-selector-parser "^7.0.0" css-declaration-sorter@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz#6dec1c9523bc4a643e088aab8f09e67a54961024" - integrity sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow== + 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" @@ -3847,10 +5029,10 @@ css-what@^6.0.1, css-what@^6.1.0: resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.2.2.tgz#cdcc8f9b6977719fdfbd1de7aec24abf756b9dea" integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== -cssdb@^8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-8.4.0.tgz#232a1aa7751983ed2b40331634902d4c93f0456c" - integrity sha512-lyATYGyvXwQ8h55WeQeEHXhI+47rl52pXSYkFK/ZrCbAJSgVIaPFjYc3RM8TpRHKk7W3wsAZImmLps+P5VyN9g== +cssdb@^8.6.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-8.9.0.tgz#e24d44824895957a4a5c75ba72c910f94e7aed77" + integrity sha512-J8jOU/hLjaXcO1LldOLraJSQpfLXRKof0I7mtbRyOy2AAXgqst0x9rlgi2qXeD6d0ou3ZLqcPAMqYVbpCbrxEw== cssesc@^3.0.0: version "3.0.0" @@ -3926,10 +5108,313 @@ csso@^5.0.5: dependencies: css-tree "~2.2.0" -csstype@^3.0.2, csstype@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== +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.33.3: + version "3.34.0" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.34.0.tgz#5fbe2eb1cf76b070a8ecd5647c35f65aa097c9c6" + integrity sha512-62rNSrioXw93uliKFBwjukeQyeWwH2PqDrTac31r2P6464u3AUvTk0xS4LVvT251g7IgkFunrI48ZEZGjywSOg== + +"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.20: + version "1.11.21" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.21.tgz#57f87562e62de76f3c704bd2b8d522fc33068eb2" + integrity sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA== debounce@^1.2.1: version "1.2.1" @@ -3943,17 +5428,17 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" - integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== +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.2.0" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz#25c32ae6dd5e21889549d40f676030e9514cc0ed" - integrity sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q== + 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" @@ -3974,12 +5459,18 @@ deepmerge@^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-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== +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.0" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.5.0.tgz#2792e886f2422894545947cc80e1a444496c5976" + integrity sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw== dependencies: - execa "^5.0.0" + bundle-name "^4.1.0" + default-browser-id "^5.0.0" defer-to-connect@^2.0.1: version "2.0.1" @@ -4000,6 +5491,11 @@ define-lazy-prop@^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" @@ -4009,12 +5505,19 @@ define-properties@^1.2.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, 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== @@ -4029,23 +5532,27 @@ dequal@^2.0.0: resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== -destroy@1.2.0: +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.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@^1.5.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.6.1.tgz#45e4073997c5f292b957cb678fb0bb8ed4250a67" - integrity sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q== +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 "^1.0.1" - debug "4" + address "^2.0.1" devlop@^1.0.0, devlop@^1.1.0: version "1.1.0" @@ -4120,6 +5627,13 @@ domhandler@^5.0.2, domhandler@^5.0.3: dependencies: domelementtype "^2.3.0" +dompurify@^3.3.3: + version "3.4.11" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.4.11.tgz#29c8ba496475f279ef4015784068452fb14a0680" + integrity sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw== + 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" @@ -4177,10 +5691,10 @@ ee-first@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.211: - version "1.5.215" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.215.tgz#200c8d69b1270af6126837b6b1f95077c3a347b1" - integrity sha512-TIvGp57UpeNetj/wV/xpFNpWGb0b/ROw372lHPx5Aafx02gjTBtWnEEcaSX3W2dLM3OSdGGyHX/cHl01JQsLaQ== +electron-to-chromium@^1.5.387: + version "1.5.389" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.389.tgz#538be9ebec78026d4daba6be321ab854dfac2a8f" + integrity sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg== emoji-regex@^8.0.0: version "8.0.0" @@ -4207,23 +5721,18 @@ emoticon@^4.0.1: resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-4.1.0.tgz#d5a156868ee173095627a33de3f1e914c3dde79e" integrity sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ== -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - encodeurl@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== -enhanced-resolve@^5.17.3: - version "5.18.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz#9b5f4c5c076b8787c78fe540392ce76a88855b44" - integrity sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww== +enhanced-resolve@^5.22.2: + version "5.24.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.24.2.tgz#f25d703a24431cb1e02f944adb74aefa4fcb8d7e" + integrity sha512-rpsZEGT1jFuve6QlpyRp9ckQ+kN61hvF9BzCPyMdaKTm8UJce96KBn3sorXOFXlzjPrs3Vc4T1NsSroZ3PxlFw== dependencies: graceful-fs "^4.2.4" - tapable "^2.2.0" + tapable "^2.3.3" entities@^2.0.0: version "2.2.0" @@ -4241,9 +5750,9 @@ entities@^6.0.0: integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + 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" @@ -4257,18 +5766,23 @@ es-errors@^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@^1.2.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" - integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== +es-module-lexer@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.3.0.tgz#fda770234c345064c122eb905e1c4200ffa4ce7e" + integrity sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw== es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" - integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + 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.49.0" + resolved "https://registry.yarnpkg.com/es-toolkit/-/es-toolkit-1.49.0.tgz#93c5b031865792fc03cbf5bd20c132a4f976a52a" + integrity sha512-G5iZ6Pc/FNRY/soKZHC+TxGDD83rHUDXxzaWhGCX44vAv/tMs56WMusnm/KMNK+luUPsgA9U28cGr4RDlSzL2g== + 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" @@ -4304,11 +5818,6 @@ escape-html@^1.0.3, escape-html@~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@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - 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" @@ -4327,11 +5836,6 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" @@ -4389,9 +5893,9 @@ estree-util-to-js@^2.0.0: source-map "^0.7.0" estree-util-value-to-estree@^3.0.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz#827122e40c3a756d3c4cf5d5d296fa06026a1a4f" - integrity sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ== + 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" @@ -4443,7 +5947,7 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@5.1.1, execa@^5.0.0: +execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -4458,39 +5962,39 @@ execa@5.1.1, execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -express@^4.17.3: - version "4.21.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" - integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== +express@^4.22.1: + version "4.22.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.22.2.tgz#c17ae0981e5efc24b22272f0e041c4662503b700" + integrity sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" + body-parser "~1.20.5" + content-disposition "~0.5.4" content-type "~1.0.4" - cookie "0.7.1" - cookie-signature "1.0.6" + 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" + 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" + on-finished "~2.4.1" parseurl "~1.3.3" - path-to-regexp "0.1.12" + path-to-regexp "~0.1.12" proxy-addr "~2.0.7" - qs "6.13.0" + qs "~6.15.1" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.2" + send "~0.19.0" + serve-static "~1.16.2" setprototypeof "1.2.0" - statuses "2.0.1" + statuses "~2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -4529,14 +6033,14 @@ fast-json-stable-stringify@^2.0.0: integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-uri@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" - integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.3.tgz#f695a40f006aba505631573a0021ddb21194ad11" + integrity sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg== fastq@^1.6.0: - version "1.19.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" - integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== + version "1.20.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675" + integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw== dependencies: reusify "^1.0.4" @@ -4561,13 +6065,6 @@ feed@^4.2.2: dependencies: xml-js "^1.6.11" -figures@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - file-loader@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" @@ -4583,17 +6080,17 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== +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" + on-finished "~2.4.1" parseurl "~1.3.3" - statuses "2.0.1" + statuses "~2.0.2" unpipe "~1.0.0" find-cache-dir@^4.0.0: @@ -4623,9 +6120,9 @@ flat@^5.0.2: integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== follow-redirects@^1.0.0: - version "1.15.11" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" - integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== + 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" @@ -4642,35 +6139,25 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fraction.js@^4.3.7: - version "4.3.7" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" - integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== +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: +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-extra@^11.1.1, fs-extra@^11.2.0: - version "11.3.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.1.tgz#ba7a1f97a85f94c6db2e52ff69570db3671d5a74" - integrity sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g== + version "11.3.6" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.6.tgz#f7cb80e9df550cd1db6f537fa5cdd568d3e70d10" + integrity sha512-w8ZNZr2mKIc7qeNaQ9AVPT1+iFaI+Avd4xudVOvdDJ8VytREi1Ft5Ih7hd9jjehod8vAM5GMsfQ/TpPf4EyoEA== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" universalify "^2.0.0" -fs-monkey@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.1.0.tgz#632aa15a20e71828ed56b24303363fb1414e5997" - integrity sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - fsevents@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" @@ -4739,22 +6226,19 @@ glob-parent@^6.0.1: dependencies: is-glob "^4.0.3" -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob-to-regex.js@^1.0.0, glob-to-regex.js@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz#2b323728271d133830850e32311f40766c5f6413" + integrity sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ== -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== +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: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" + minimatch "^10.2.2" + minipass "^7.1.3" + path-scurry "^2.0.2" global-dirs@^3.0.0: version "3.0.1" @@ -4825,16 +6309,6 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^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== -gray-matter@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" - integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== - dependencies: - js-yaml "^3.13.1" - kind-of "^6.0.2" - section-matter "^1.0.0" - strip-bom-string "^1.0.0" - gzip-size@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" @@ -4842,6 +6316,11 @@ gzip-size@^6.0.0: 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" @@ -4869,10 +6348,10 @@ has-yarn@^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: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== +hasown@^2.0.2, hasown@^2.0.3: + 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" @@ -4960,14 +6439,14 @@ hast-util-to-jsx-runtime@^2.0.0: vfile-message "^4.0.0" hast-util-to-parse5@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz#477cd42d278d4f036bc2ea58586130f6f39ee6ed" - integrity sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw== + 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 "^6.0.0" + property-information "^7.0.0" space-separated-tokens "^2.0.0" web-namespaces "^2.0.0" zwitch "^2.0.0" @@ -5024,11 +6503,6 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -html-entities@^2.3.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.6.0.tgz#7c64f1ea3b36818ccae3d3fb48b6974208e984f8" - integrity sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ== - html-escaper@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -5071,9 +6545,9 @@ html-void-elements@^3.0.0: integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== html-webpack-plugin@^5.6.0: - version "5.6.4" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.4.tgz#d8cb0f7edff7745ae7d6cccb0bff592e9f7f7959" - integrity sha512-V/PZeWsqhfpE27nKeX9EO2sbR+D17A+tLf6qU+ht66jdUsN0QLKJN27Z+1+gHrVMKgndBahes0PU6rRihDgHTw== + version "5.6.7" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.7.tgz#429bab4e12abf3c07e1c608886608e2df2c06b11" + integrity sha512-md+vXtdCAe60s1k6AU3dUyMJnDxUyQAwfwPKoLisvgUF1IXjtlLsk2se54+qfL9Mdm26bbwvjJybpNx48NKRLw== dependencies: "@types/html-minifier-terser" "^6.0.0" html-minifier-terser "^6.0.2" @@ -5111,36 +6585,37 @@ http-deceiver@^1.2.7: resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== +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 "2.0.0" + depd "~1.1.2" inherits "2.0.4" setprototypeof "1.2.0" - statuses "2.0.1" + statuses ">= 1.5.0 < 2" toidentifier "1.0.1" -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== +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 "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" + 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.3: - version "2.0.9" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" - integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== +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" @@ -5170,7 +6645,19 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@0.4.24: +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== @@ -5205,6 +6692,11 @@ import-lazy@^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" @@ -5220,24 +6712,11 @@ infima@0.2.0-alpha.45: resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.45.tgz#542aab5a249274d81679631b492973dd2c1e7466" integrity sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw== -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, 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== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - ini@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" @@ -5248,10 +6727,20 @@ ini@^1.3.4, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inline-style-parser@0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.4.tgz#f4af5fe72e612839fcd453d989a586566d695f22" - integrity sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q== +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" @@ -5265,10 +6754,10 @@ ipaddr.js@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.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" - integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== +ipaddr.js@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.4.0.tgz#038e9ceaf8219efc5bb76347b7eb787875d5095b" + integrity sha512-9VGk3HGanVE6JoZXHiCpnGy5X0jYDnN4EA4lntFPj+1vIWlFhIylq2CrrCOJH9EAhc5CYhq18F2Av2tgoAPsYQ== is-alphabetical@^2.0.0: version "2.0.1" @@ -5288,6 +6777,11 @@ is-arrayish@^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" @@ -5302,12 +6796,12 @@ is-ci@^3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.16.0: - version "2.16.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" - integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== +is-core-module@^2.16.1: + version "2.16.2" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.2.tgz#3e07450a8080ebce3fbf0cac494f4d2ab324e082" + integrity sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA== dependencies: - hasown "^2.0.2" + hasown "^2.0.3" is-decimal@^2.0.0: version "2.0.1" @@ -5319,6 +6813,11 @@ is-docker@^2.0.0, is-docker@^2.1.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" @@ -5346,6 +6845,13 @@ is-hexadecimal@^2.0.0: 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" @@ -5354,10 +6860,15 @@ is-installed-globally@^0.4.0: 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.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" - integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== + 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" @@ -5418,6 +6929,13 @@ is-wsl@^2.2.0: 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" @@ -5480,9 +6998,9 @@ jiti@^1.20.0: integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== joi@^17.9.2: - version "17.13.3" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec" - integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== + version "17.13.4" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.4.tgz#ad6153d97ce558eb3a3b593e0d43eab51df1c474" + integrity sha512-1RuuER6kmt8K8I3nIWvPZKi5RQCb568ZPyY4Pwjlua+yo+63ZTmIwxLZH0heBmiKN4uxjvCiarDrjaeH84xicQ== dependencies: "@hapi/hoek" "^9.3.0" "@hapi/topo" "^5.1.0" @@ -5495,37 +7013,24 @@ joi@^17.9.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.0.tgz#d1900572a7f7cf0b5f540c83673e60bad3436592" + integrity sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q== dependencies: argparse "^2.0.1" -jsesc@^3.0.2: +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== -jsesc@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" - integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== - 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, json-parse-even-better-errors@^2.3.1: +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== @@ -5546,14 +7051,21 @@ json5@^2.1.2, json5@^2.2.3: integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" - integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== + 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.45: + 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" @@ -5561,7 +7073,12 @@ keyv@^4.5.3: dependencies: json-buffer "3.0.1" -kind-of@^6.0.0, kind-of@^6.0.2: +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== @@ -5578,19 +7095,103 @@ latest-version@^7.0.0: dependencies: package-json "^8.1.0" -launch-editor@^2.6.0: - version "2.11.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.11.1.tgz#61a0b7314a42fd84a6cbb564573d9e9ffcf3d72b" - integrity sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg== +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.3" + 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.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz#f033885116dfefd9c6f54787523e3514b61e1968" + integrity sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg== + +lightningcss-darwin-arm64@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz#50b71871b01c8199584b649e292547faea7af9b5" + integrity sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ== + +lightningcss-darwin-x64@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz#35f3e97332d130b9ca181e11b568ded6aebc6d5e" + integrity sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w== + +lightningcss-freebsd-x64@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz#9777a76472b64ed6ff94342ad64c7bafd794a575" + integrity sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig== + +lightningcss-linux-arm-gnueabihf@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz#13ae652e1ab73b9135d7b7da172f666c410ad53d" + integrity sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw== + +lightningcss-linux-arm64-gnu@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz#417858795a94592f680123a1b1f9da8a0e1ef335" + integrity sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ== + +lightningcss-linux-arm64-musl@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz#6be36692e810b718040802fd809623cffe732133" + integrity sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg== + +lightningcss-linux-x64-gnu@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz#0b7803af4eb21cfd38dd39fe2abbb53c7dd091f6" + integrity sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA== + +lightningcss-linux-x64-musl@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz#88dc8ba865ddddb1ac5ef04b0f161804418c163b" + integrity sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg== + +lightningcss-win32-arm64-msvc@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz#4f30ba3fa5e925f5b79f945e8cc0d176c3b1ab38" + integrity sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw== + +lightningcss-win32-x64-msvc@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz#141aa5605645064928902bb4af045fa7d9f4220a" + integrity sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q== + +lightningcss@^1.27.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.32.0.tgz#b85aae96486dcb1bf49a7c8571221273f4f1e4a9" + integrity sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ== + dependencies: + detect-libc "^2.0.3" + optionalDependencies: + lightningcss-android-arm64 "1.32.0" + lightningcss-darwin-arm64 "1.32.0" + lightningcss-darwin-x64 "1.32.0" + lightningcss-freebsd-x64 "1.32.0" + lightningcss-linux-arm-gnueabihf "1.32.0" + lightningcss-linux-arm64-gnu "1.32.0" + lightningcss-linux-arm64-musl "1.32.0" + lightningcss-linux-x64-gnu "1.32.0" + lightningcss-linux-x64-musl "1.32.0" + lightningcss-win32-arm64-msvc "1.32.0" + lightningcss-win32-x64-msvc "1.32.0" + lilconfig@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" @@ -5601,10 +7202,10 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== +loader-runner@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.2.tgz#9913d3a15971f8f635915e601fb5c9d495d918e9" + integrity sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w== loader-utils@^2.0.0: version "2.0.4" @@ -5622,6 +7223,11 @@ locate-path@^7.1.0: dependencies: p-locate "^6.0.0" +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" @@ -5638,9 +7244,9 @@ lodash.uniq@^4.5.0: integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== lodash@^4.17.20, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + 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" @@ -5666,6 +7272,11 @@ lowercase-keys@^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.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.5.2.tgz#00e16665c90c620fba14a3c368732a976493f760" + integrity sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -5678,18 +7289,16 @@ markdown-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-2.0.0.tgz#34bebc83e9938cae16e0e017e4a9814a8330d3c4" integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q== -markdown-table@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" - integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== - dependencies: - repeat-string "^1.0.0" - 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" @@ -5721,9 +7330,9 @@ mdast-util-find-and-replace@^3.0.0, mdast-util-find-and-replace@^3.0.1: unist-util-visit-parents "^6.0.0" mdast-util-from-markdown@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz#4850390ca7cf17413a9b9a0fbefcd1bc0eb4160a" - integrity sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA== + 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" @@ -5877,9 +7486,9 @@ mdast-util-phrasing@^4.0.0: unist-util-is "^6.0.0" mdast-util-to-hast@^13.0.0: - version "13.2.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz#5ca58e5b921cc0a3ded1bc02eed79a4fe4fe41f4" - integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== + 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" @@ -5928,12 +7537,25 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memfs@^3.4.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" - integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== - dependencies: - fs-monkey "^1.0.4" +memfs@^4.17.0, memfs@^4.43.1: + version "4.64.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.64.0.tgz#88bb85610804c154a8121424d2aeba7c5bdf4e38" + integrity sha512-Kw72fgY7Wn+sD8KmtNWSafl1dz0UvAsE/PHs3YVfLiaZuA3HxNm9sRLqAu0ATiBGJvME1PxZXbBZPv5GycDeAw== + dependencies: + "@jsonjoy.com/fs-core" "4.64.0" + "@jsonjoy.com/fs-fsa" "4.64.0" + "@jsonjoy.com/fs-node" "4.64.0" + "@jsonjoy.com/fs-node-builtins" "4.64.0" + "@jsonjoy.com/fs-node-to-fsa" "4.64.0" + "@jsonjoy.com/fs-node-utils" "4.64.0" + "@jsonjoy.com/fs-print" "4.64.0" + "@jsonjoy.com/fs-snapshot" "4.64.0" + "@jsonjoy.com/json-pack" "^1.11.0" + "@jsonjoy.com/util" "^1.9.0" + glob-to-regex.js "^1.0.1" + thingies "^2.5.0" + tree-dump "^1.0.3" + tslib "^2.0.0" merge-descriptors@1.0.3: version "1.0.3" @@ -5950,6 +7572,33 @@ merge2@^1.3.0, merge2@^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 "11.16.0" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-11.16.0.tgz#dc946bc84bde9d093ba14940d49df1d9f7d8c32f" + integrity sha512-Zvm3kbstgdpvIJPPItlL7fppIZ3kibvc1oZIGxdvk9t6UFz6flv+Jw7FtRGKwfcI8OckmH04LqG6LlS6X4B1pA== + dependencies: + "@braintree/sanitize-url" "^7.1.2" + "@iconify/utils" "^3.0.2" + "@mermaid-js/parser" "^1.2.0" + "@types/d3" "^7.4.3" + "@upsetjs/venn.js" "^2.0.0" + cytoscape "^3.33.3" + 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.20" + dompurify "^3.3.3" + es-toolkit "^1.45.1" + katex "^0.16.45" + 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" @@ -6384,7 +8033,7 @@ mime-db@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.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== @@ -6401,13 +8050,20 @@ mime-types@2.1.18: dependencies: mime-db "~1.33.0" -mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +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" @@ -6429,9 +8085,9 @@ mimic-response@^4.0.0: integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== mini-css-extract-plugin@^2.9.2: - version "2.9.4" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz#cafa1a42f8c71357f49cd1566810d74ff1cb0200" - integrity sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ== + 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" @@ -6441,18 +8097,40 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@3.1.2, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== +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.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1" + integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg== + dependencies: + brace-expansion "^5.0.5" + minimist@^1.2.0: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +minimizer-webpack-plugin@^5.6.1: + version "5.6.1" + resolved "https://registry.yarnpkg.com/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.6.1.tgz#289922a4c96c4ed1ddb76b8a00bd8074e89a2f7f" + integrity sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + jest-worker "^27.4.5" + schema-utils "^4.3.0" + terser "^5.31.1" + +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== + mrmime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.1.tgz#bc3e87f7987853a54c9850eeb1f1078cd44adddc" @@ -6476,10 +8154,10 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -nanoid@^3.3.11: - version "3.3.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" - integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== +nanoid@^3.3.12: + version "3.3.15" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.15.tgz#36c490fad8c6e86c824c940dfdde999b69ed4316" + integrity sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA== negotiator@0.6.3: version "0.6.3" @@ -6514,30 +8192,20 @@ node-emoji@^2.1.0: emojilib "^2.4.0" skin-tone "^2.0.0" -node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - -node-releases@^2.0.19: - version "2.0.20" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.20.tgz#e26bb79dbdd1e64a146df389c699014c611cbc27" - integrity sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA== +node-releases@^2.0.50: + version "2.0.50" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.50.tgz#597197a852071ce42fc2550e58e223242bcba969" + integrity sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg== 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-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - normalize-url@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.2.tgz#3b343a42f837e4dae2b01917c04e8de3782e9170" - integrity sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw== + 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" @@ -6571,7 +8239,7 @@ object-assign@^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.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== @@ -6598,7 +8266,7 @@ obuf@^1.0.0, obuf@^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, 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== @@ -6610,13 +8278,6 @@ on-headers@~1.1.0: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.1.0.tgz#59da4f91c45f5f989c6e4bcedc5a3b0aed70ff65" integrity sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A== -once@^1.3.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" @@ -6624,7 +8285,17 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@^8.0.9, open@^8.4.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== @@ -6677,12 +8348,13 @@ p-queue@^6.6.2: eventemitter3 "^4.0.4" p-timeout "^3.2.0" -p-retry@^4.5.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" - integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== +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.0" + "@types/retry" "0.12.2" + is-network-error "^1.0.0" retry "^0.13.1" p-timeout@^3.2.0: @@ -6692,6 +8364,11 @@ p-timeout@^3.2.0: 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" @@ -6702,6 +8379,11 @@ package-json@^8.1.0: registry-url "^6.0.0" semver "^7.3.7" +package-manager-detector@^1.3.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-1.7.0.tgz#0a6d6d3856627b8ac9331f95fc891ea81247aafd" + integrity sha512-xg1eHpwYL/D/HEdWw2goFZP6vV0FH7W+PZ5rFkGjdIDLtxq7EkzBUeT3m+lndYCt8wKbmofUu1MUdMCXkCk9ZQ== + param-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" @@ -6760,7 +8442,7 @@ parse5@^7.0.0: dependencies: entities "^6.0.0" -parseurl@~1.3.2, parseurl@~1.3.3: +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== @@ -6773,16 +8455,16 @@ pascal-case@^3.1.2: 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-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - 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" @@ -6798,10 +8480,13 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" - integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== +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" @@ -6815,6 +8500,11 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" +path-to-regexp@~0.1.12: + 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" @@ -6826,9 +8516,9 @@ picocolors@^1.0.0, picocolors@^1.1.1: 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.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + 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" @@ -6837,6 +8527,31 @@ pkg-dir@^7.0.0: dependencies: find-up "^6.3.0" +pkijs@^3.3.3: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pkijs/-/pkijs-3.4.0.tgz#d9164def30ff6d97be2d88966d5e36192499ca9c" + integrity sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw== + dependencies: + "@noble/hashes" "1.4.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" @@ -6859,15 +8574,15 @@ postcss-clamp@^4.1.0: dependencies: postcss-value-parser "^4.2.0" -postcss-color-functional-notation@^7.0.11: - version "7.0.11" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.11.tgz#ad6b3d2e71fedd94a932f96260b596c33c53c6a5" - integrity sha512-zfqoUSaHMko/k2PA9xnaydVTHqYv5vphq5Q2AHcG/dCdv/OkHYWcVWfVTBKZ526uzT8L7NghuvSw3C9PxlKnLg== +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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" postcss-color-hex-alpha@^10.0.0: @@ -6969,12 +8684,12 @@ postcss-discard-unused@^6.0.5: dependencies: postcss-selector-parser "^6.0.16" -postcss-double-position-gradients@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.3.tgz#d8c4b126af89855a3aa6687e5b1a0d5460d4a5b7" - integrity sha512-Dl0Z9sdbMwrPslgOaGBZRGo3TASmmgTcqcUODr82MTYyJk6devXZM6MlQjpQKMJqlLJ6oL1w78U7IXFdPA5+ug== +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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" @@ -7010,15 +8725,15 @@ postcss-image-set-function@^7.0.0: "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -postcss-lab-function@^7.0.11: - version "7.0.11" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-7.0.11.tgz#455934181eea130f8e649c1f54692e1768046f6a" - integrity sha512-BEA4jId8uQe1gyjZZ6Bunb6ZsH2izks+v25AxQJDBtigXCjTLmCPWECwQpLTtcxH589MVxhs/9TAmRC6lUEmXQ== +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.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" postcss-loader@^7.3.4: @@ -7227,26 +8942,27 @@ postcss-place@^10.0.0: postcss-value-parser "^4.2.0" postcss-preset-env@^10.2.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-10.3.1.tgz#f3799f0f7a7ea384b3c16e073055c231d11bb3bf" - integrity sha512-8ZOOWVwQ0iMpfEYkYo+U6W7fE2dJ/tP6dtEFwPJ66eB5JjnFupfYh+y6zo+vWDO72nGhKOVdxwhTjfzcSNRg4Q== + 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.0" + "@csstools/postcss-alpha-function" "^1.0.1" "@csstools/postcss-cascade-layers" "^5.0.2" - "@csstools/postcss-color-function" "^4.0.11" - "@csstools/postcss-color-function-display-p3-linear" "^1.0.0" - "@csstools/postcss-color-mix-function" "^3.0.11" - "@csstools/postcss-color-mix-variadic-function-arguments" "^1.0.1" - "@csstools/postcss-content-alt-text" "^2.0.7" + "@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.11" - "@csstools/postcss-hwb-function" "^4.0.11" - "@csstools/postcss-ic-unit" "^4.0.3" + "@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.10" + "@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" @@ -7255,39 +8971,43 @@ postcss-preset-env@^10.2.1: "@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.0" - "@csstools/postcss-oklab-function" "^4.0.11" - "@csstools/postcss-progressive-custom-properties" "^4.2.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.11" + "@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.21" - browserslist "^4.25.1" + 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.4.0" + cssdb "^8.6.0" postcss-attribute-case-insensitive "^7.0.1" postcss-clamp "^4.1.0" - postcss-color-functional-notation "^7.0.11" + 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.3" + 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.11" + postcss-lab-function "^7.0.12" postcss-logical "^8.1.0" postcss-nesting "^13.0.2" postcss-opacity-percentage "^3.0.0" @@ -7340,17 +9060,17 @@ postcss-selector-not@^8.0.1: postcss-selector-parser "^7.0.0" postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16: - version "6.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" - integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== + 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.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz#4d6af97eba65d73bc4d84bcb343e865d7dd16262" - integrity sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA== + version "7.1.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz#69dc7a526517572ff6b150e352b36a016017b485" + integrity sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -7388,11 +9108,11 @@ postcss-zindex@^6.0.2: 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.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" - integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== + version "8.5.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.16.tgz#1230ce0b5df354c24c0ea45f99ce5f6a88279d28" + integrity sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg== dependencies: - nanoid "^3.3.11" + nanoid "^3.3.12" picocolors "^1.1.1" source-map-js "^1.2.1" @@ -7444,15 +9164,10 @@ prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" -property-information@^6.0.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" - integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== - property-information@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d" - integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ== + 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" @@ -7473,18 +9188,31 @@ punycode@^2.1.0: integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== pupa@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" - integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== + 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" -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== +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.1.5" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" + integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== + +qs@~6.15.1: + version "6.15.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.15.3.tgz#76852132a58ed5c7c0ef67e4441b9bb5d6061b3b" + integrity sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A== dependencies: - side-channel "^1.0.6" + es-define-property "^1.0.1" + side-channel "^1.1.1" queue-microtask@^1.2.2: version "1.2.3" @@ -7508,20 +9236,25 @@ range-parser@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, range-parser@~1.2.1: +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.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== +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.0" - iconv-lite "0.4.24" - unpipe "1.0.0" + bytes "~3.1.2" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + unpipe "~1.0.0" rc@1.2.8: version "1.2.8" @@ -7534,11 +9267,11 @@ rc@1.2.8: strip-json-comments "~2.0.1" react-dom@^19.0.0: - version "19.1.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.1.1.tgz#2daa9ff7f3ae384aeb30e76d5ee38c046dc89893" - integrity sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw== + version "19.2.7" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.2.7.tgz#0450dc9ae9ddbff76ef196401cd8b8c7fb466ccc" + integrity sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ== dependencies: - scheduler "^0.26.0" + scheduler "^0.27.0" react-fast-compare@^3.2.0: version "3.2.2" @@ -7561,20 +9294,20 @@ react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^19.1.1: - version "19.1.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.1.1.tgz#038ebe313cf18e1fd1235d51c87360eb87f7c36a" - integrity sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA== +react-is@^19.2.3: + version "19.2.7" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.2.7.tgz#57668ee86a78574a542b0a539455212b2c086df2" + integrity sha512-kZFnouyVv7eP/Phmrlo9FK+zcAdriZJvzxXHF1Sl1P377WSGe2G/JxVolhTrB/jeV47lKImhNUsijjHAAbcl/A== 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.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz#2cdc91e8a744ffdf9e3556caabeb6e4278689883" - integrity sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A== +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" @@ -7631,9 +9364,9 @@ react-transition-group@^4.4.5: prop-types "^15.6.2" react@^19.0.0: - version "19.1.1" - resolved "https://registry.yarnpkg.com/react/-/react-19.1.1.tgz#06d9149ec5e083a67f9a1e39ce97b06a03b644af" - integrity sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ== + version "19.2.7" + resolved "https://registry.yarnpkg.com/react/-/react-19.2.7.tgz#1f47a1bfc06f8ec885752c6f4af14369a9f8260b" + integrity sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ== readable-stream@^2.0.1: version "2.3.8" @@ -7704,7 +9437,12 @@ recma-stringify@^1.0.0: unified "^11.0.0" vfile "^6.0.0" -regenerate-unicode-properties@^10.2.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== @@ -7716,24 +9454,24 @@ regenerate@^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.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" - integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== +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.0" + regenerate-unicode-properties "^10.2.2" regjsgen "^0.8.0" - regjsparser "^0.12.0" + regjsparser "^0.13.0" unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" + unicode-match-property-value-ecmascript "^2.2.1" registry-auth-token@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.1.0.tgz#3c659047ecd4caebd25bc1570a3aa979ae490eca" - integrity sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw== + 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" "^2.1.0" + "@pnpm/npm-conf" "^3.0.2" registry-url@^6.0.0: version "6.0.1" @@ -7747,12 +9485,12 @@ regjsgen@^0.8.0: resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== -regjsparser@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" - integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== +regjsparser@^0.13.0: + version "0.13.2" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.13.2.tgz#f654734b5c588b22ba3e21693b30523417180808" + integrity sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ== dependencies: - jsesc "~3.0.2" + jsesc "~3.1.0" rehype-raw@^7.0.0: version "7.0.0" @@ -7869,11 +9607,6 @@ renderkid@^3.0.0: lodash "^4.17.21" strip-ansi "^6.0.1" -repeat-string@^1.0.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - 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" @@ -7904,12 +9637,13 @@ resolve-pathname@^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.10: - version "1.22.10" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" - integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== +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: - is-core-module "^2.16.0" + es-errors "^1.3.0" + is-core-module "^2.16.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -7930,12 +9664,28 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== +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: - glob "^7.1.3" + 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" @@ -7947,6 +9697,11 @@ rtlcss@^4.1.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" @@ -7954,6 +9709,11 @@ run-parallel@^1.1.9: 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.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" @@ -7964,20 +9724,20 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: 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", "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: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" - integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== +sax@^1.2.4, sax@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.6.0.tgz#da59637629307b97e7c4cb28e080a7bc38560d5b" + integrity sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA== -scheduler@^0.26.0: - version "0.26.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.26.0.tgz#4ce8a8c2a2095f13ea11bf9a445be50c555d6337" - integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA== +scheduler@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.27.0.tgz#0c4ef82d67d1e5c1e359e8fc76d3a87f045fe5bd" + integrity sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q== schema-dts@^1.1.2: version "1.1.5" @@ -7993,10 +9753,10 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.0.0, schema-utils@^4.0.1, schema-utils@^4.3.0, schema-utils@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.2.tgz#0c10878bf4a73fd2b1dfd14b9462b26788c806ae" - integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== +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: + version "4.3.3" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" + integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== dependencies: "@types/json-schema" "^7.0.9" ajv "^8.9.0" @@ -8021,13 +9781,13 @@ select@^1.1.2: resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== -selfsigned@^2.1.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" - integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== +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: - "@types/node-forge" "^1.3.0" - node-forge "^1" + "@peculiar/x509" "^1.14.2" + pkijs "^3.3.3" semver-diff@^4.0.0: version "4.0.0" @@ -8041,72 +9801,72 @@ semver@^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.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" - integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== +semver@^7.3.5, semver@^7.3.7, semver@^7.5.4, semver@^7.6.3: + 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: - version "0.19.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" - integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== +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 "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" + fresh "~0.5.2" + http-errors "~2.0.1" mime "1.6.0" ms "2.1.3" - on-finished "2.4.1" + on-finished "~2.4.1" range-parser "~1.2.1" - statuses "2.0.1" + statuses "~2.0.2" -serialize-javascript@^6.0.0, serialize-javascript@^6.0.1, serialize-javascript@^6.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.6: - version "6.1.6" - resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.6.tgz#50803c1d3e947cd4a341d617f8209b22bd76cfa1" - integrity sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ== +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.2" + 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.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + 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.4" + accepts "~1.3.8" batch "0.6.1" debug "2.6.9" escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" + http-errors "~1.8.0" + mime-types "~2.1.35" + parseurl "~1.3.3" -serve-static@1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" - integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== +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.0" + send "~0.19.1" set-function-length@^1.2.2: version "1.2.2" @@ -8120,12 +9880,7 @@ set-function-length@^1.2.2: gopd "^1.0.1" has-property-descriptors "^1.0.2" -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0: +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== @@ -8142,6 +9897,35 @@ shallowequal@^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, sharp@^0.33.0: + version "0.33.5" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.33.5.tgz#13e0e4130cc309d6a9497596715240b2ec0c594e" + integrity sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw== + dependencies: + color "^4.2.3" + detect-libc "^2.0.3" + semver "^7.6.3" + optionalDependencies: + "@img/sharp-darwin-arm64" "0.33.5" + "@img/sharp-darwin-x64" "0.33.5" + "@img/sharp-libvips-darwin-arm64" "1.0.4" + "@img/sharp-libvips-darwin-x64" "1.0.4" + "@img/sharp-libvips-linux-arm" "1.0.5" + "@img/sharp-libvips-linux-arm64" "1.0.4" + "@img/sharp-libvips-linux-s390x" "1.0.4" + "@img/sharp-libvips-linux-x64" "1.0.4" + "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" + "@img/sharp-libvips-linuxmusl-x64" "1.0.4" + "@img/sharp-linux-arm" "0.33.5" + "@img/sharp-linux-arm64" "0.33.5" + "@img/sharp-linux-s390x" "0.33.5" + "@img/sharp-linux-x64" "0.33.5" + "@img/sharp-linuxmusl-arm64" "0.33.5" + "@img/sharp-linuxmusl-x64" "0.33.5" + "@img/sharp-wasm32" "0.33.5" + "@img/sharp-win32-ia32" "0.33.5" + "@img/sharp-win32-x64" "0.33.5" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -8154,18 +9938,18 @@ shebang-regex@^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.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b" - integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== +shell-quote@^1.8.4: + version "1.9.0" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.9.0.tgz#e108b1a136586d5964edb3300016d4bedba0fe57" + integrity sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA== -side-channel-list@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" - integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== +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.3" + object-inspect "^1.13.4" side-channel-map@^1.0.1: version "1.0.1" @@ -8188,14 +9972,14 @@ side-channel-weakmap@^1.0.2: object-inspect "^1.13.3" side-channel-map "^1.0.1" -side-channel@^1.0.6: - version "1.1.0" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" - integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== +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.3" - side-channel-list "^1.0.0" + object-inspect "^1.13.4" + side-channel-list "^1.0.1" side-channel-map "^1.0.1" side-channel-weakmap "^1.0.2" @@ -8204,6 +9988,13 @@ signal-exit@^3.0.2, signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +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" @@ -8219,9 +10010,9 @@ sisteransi@^1.0.5: integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== sitemap@^7.1.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-7.1.2.tgz#6ce1deb43f6f177c68bc59cf93632f54e3ae6b72" - integrity sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw== + 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" @@ -8323,30 +10114,25 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - 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@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.4.0 < 2": +"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.9.0" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.9.0.tgz#1a6f7243b339dca4c9fd55e1c7504c77ef23e8f1" - integrity sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw== + version "3.10.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.10.0.tgz#d810b27e3a073047b2b5e40034881f5ea6f9c83b" + integrity sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg== string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" @@ -8397,7 +10183,7 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +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== @@ -8405,11 +10191,11 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: ansi-regex "^5.0.1" strip-ansi@^7.0.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" - integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== + 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.0.1" + ansi-regex "^6.2.2" strip-bom-string@^1.0.0: version "1.0.0" @@ -8432,18 +10218,18 @@ strip-json-comments@~2.0.1: integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== style-to-js@^1.0.0: - version "1.1.17" - resolved "https://registry.yarnpkg.com/style-to-js/-/style-to-js-1.1.17.tgz#488b1558a8c1fd05352943f088cc3ce376813d83" - integrity sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA== + 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.9" + style-to-object "1.0.14" -style-to-object@1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.9.tgz#35c65b713f4a6dba22d3d0c61435f965423653f0" - integrity sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw== +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.4" + inline-style-parser "0.2.7" stylehacks@^6.1.1: version "6.1.1" @@ -8458,6 +10244,11 @@ stylis@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" @@ -8483,44 +10274,55 @@ svg-parser@^2.0.4: integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== svgo@^3.0.2, svgo@^3.2.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8" - integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== + version "3.3.3" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.3.tgz#8246aee0b08791fde3b0ed22b5661b471fadf58e" + integrity sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng== dependencies: - "@trysound/sax" "0.2.0" 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" -tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.3.tgz#4b67b635b2d97578a06a2713d2f04800c237e99b" - integrity sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg== +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== -terser-webpack-plugin@^5.3.11, terser-webpack-plugin@^5.3.9: - version "5.3.14" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" - integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== +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" - serialize-javascript "^6.0.2" terser "^5.31.1" terser@^5.10.0, terser@^5.15.1, terser@^5.31.1: - version "5.44.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.44.0.tgz#ebefb8e5b8579d93111bfdfc39d2cf63879f4a82" - integrity sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w== + version "5.49.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.49.0.tgz#30b341fdf70cfc98486965125ae660fda8403670" + integrity sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.15.0" commander "^2.20.0" source-map-support "~0.5.20" +thingies@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/thingies/-/thingies-2.6.0.tgz#e09b98b9e6f6caf8a759eca8481fea1de974d2b1" + integrity sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg== + thunky@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" @@ -8541,6 +10343,11 @@ tiny-warning@^1.0.0: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== +tinyexec@^1.0.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.2.4.tgz#ae45bb2edebda94c70f4ea897e0f1243e470db71" + integrity sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg== + tinypool@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.1.1.tgz#059f2d042bd37567fbc017d3d426bdd2a2612591" @@ -8553,7 +10360,7 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toidentifier@1.0.1: +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== @@ -8563,6 +10370,11 @@ totalist@^3.0.0: 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" @@ -8573,15 +10385,27 @@ trough@^2.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== -tslib@^2.0.3, tslib@^2.6.0: +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== -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +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" type-fest@^1.0.1: version "1.4.0" @@ -8608,10 +10432,10 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -undici-types@~7.10.0: - version "7.10.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.10.0.tgz#4ac2e058ce56b462b056e629cc6a02393d3ff350" - integrity sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag== +undici-types@~8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.3.0.tgz#44e9fc9f3244648cdea35e4f9bb2d681e9410809" + integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.1" @@ -8631,15 +10455,15 @@ unicode-match-property-ecmascript@^2.0.0: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.1.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.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + 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" @@ -8662,9 +10486,9 @@ unique-string@^3.0.0: crypto-random-string "^4.0.0" unist-util-is@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" - integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== + 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" @@ -8690,17 +10514,17 @@ unist-util-stringify-position@^4.0.0: "@types/unist" "^3.0.0" unist-util-visit-parents@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" - integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== + 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.0.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" - integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== + 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" @@ -8711,15 +10535,15 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@1.0.0, unpipe@~1.0.0: +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.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" - integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== +update-browserslist-db@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" + integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== dependencies: escalade "^3.2.0" picocolors "^1.1.1" @@ -8780,10 +10604,10 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +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" @@ -8819,12 +10643,11 @@ vfile@^6.0.0, vfile@^6.0.1: "@types/unist" "^3.0.0" vfile-message "^4.0.0" -watchpack@^2.4.1: - version "2.4.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.4.tgz#473bda72f0850453da6425081ea46fc0d7602947" - integrity sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA== +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: - glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" wbuf@^1.1.0, wbuf@^1.7.3: @@ -8857,52 +10680,51 @@ webpack-bundle-analyzer@^4.10.2: sirv "^2.0.3" ws "^7.3.1" -webpack-dev-middleware@^5.3.4: - version "5.3.4" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" - integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== +webpack-dev-middleware@^7.4.2: + version "7.4.5" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz#d4e8720aa29cb03bc158084a94edb4594e3b7ac0" + integrity sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA== dependencies: colorette "^2.0.10" - memfs "^3.4.3" - mime-types "^2.1.31" + 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@^4.15.2: - version "4.15.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" - integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== - dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/serve-static" "^1.13.10" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.5" +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.0.11" - chokidar "^3.5.3" + bonjour-service "^1.2.1" + chokidar "^3.6.0" colorette "^2.0.10" - compression "^1.7.4" + compression "^1.8.1" connect-history-api-fallback "^2.0.0" - default-gateway "^6.0.3" - express "^4.17.3" + express "^4.22.1" graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.0.1" - launch-editor "^2.6.0" - open "^8.0.9" - p-retry "^4.5.0" - rimraf "^3.0.2" - schema-utils "^4.0.0" - selfsigned "^2.1.1" + 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 "^5.3.4" - ws "^8.13.0" + webpack-dev-middleware "^7.4.2" + ws "^8.18.0" webpack-merge@^5.9.0: version "5.10.0" @@ -8922,60 +10744,53 @@ webpack-merge@^6.0.1: flat "^5.0.2" wildcard "^2.0.1" -webpack-sources@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" - integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== +webpack-sources@^3.5.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.5.1.tgz#76c2418486dcc02b2aa0694c104176c2858fe84a" + integrity sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw== webpack@^5.88.1, webpack@^5.95.0: - version "5.101.3" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.101.3.tgz#3633b2375bb29ea4b06ffb1902734d977bc44346" - integrity sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A== + version "5.108.4" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.108.4.tgz#141818a411662773a0bb32dc5536acc5409943b7" + integrity sha512-yur8LyJoeiWh47dErD+Ok7vlbmDsJ3UbbRPAoxbGJ54WpE2y5yVo5G/inUzujnYgw3tPmBRdn+G7PoxXaYC33w== dependencies: - "@types/eslint-scope" "^3.7.7" "@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" - acorn "^8.15.0" + acorn "^8.16.0" acorn-import-phases "^1.0.3" - browserslist "^4.24.0" + browserslist "^4.28.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.3" - es-module-lexer "^1.2.1" + enhanced-resolve "^5.22.2" + es-module-lexer "^2.1.0" eslint-scope "5.1.1" events "^3.2.0" - glob-to-regexp "^0.4.1" graceful-fs "^4.2.11" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" + loader-runner "^4.3.2" + mime-db "^1.54.0" + minimizer-webpack-plugin "^5.6.1" neo-async "^2.6.2" - schema-utils "^4.3.2" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.11" - watchpack "^2.4.1" - webpack-sources "^3.3.3" + schema-utils "^4.3.3" + tapable "^2.3.0" + watchpack "^2.5.2" + webpack-sources "^3.5.0" -webpackbar@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-6.0.1.tgz#5ef57d3bf7ced8b19025477bc7496ea9d502076b" - integrity sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q== +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: - ansi-escapes "^4.3.2" - chalk "^4.1.2" + ansis "^3.2.0" consola "^3.2.3" - figures "^3.2.0" - markdown-table "^2.0.0" pretty-time "^1.1.0" std-env "^3.7.0" - wrap-ansi "^7.0.0" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + 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" @@ -9005,15 +10820,6 @@ wildcard@^2.0.0, wildcard@^2.0.1: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - 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" @@ -9023,11 +10829,6 @@ wrap-ansi@^8.0.1, wrap-ansi@^8.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" @@ -9039,14 +10840,21 @@ write-file-atomic@^3.0.3: typedarray-to-buffer "^3.1.5" ws@^7.3.1: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + version "7.5.11" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.11.tgz#9460daf1812bb81a423c5b9eac746941a86310fa" + integrity sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA== -ws@^8.13.0: - version "8.18.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== +ws@^8.18.0: + version "8.21.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951" + integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== + +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" @@ -9066,14 +10874,14 @@ yallist@^3.0.2: integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + 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.1" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.1.tgz#36d7c4739f775b3cbc28e6136e21aa057adec418" - integrity sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg== + 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"