diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..07c15a90b --- /dev/null +++ b/.gitattributes @@ -0,0 +1,7 @@ +# Check every text file out with LF everywhere. All tracked files are already LF, so this changes nothing today. +* text=auto eol=lf + +# `pnpm generate:types` writes this file with LF, so a CRLF checkout would make every regeneration rewrite all 20k +# lines. `linguist-generated` also collapses it in diffs: what a reviewer reads is `src/models.ts`, which declares +# the published models on top of it. +src/generated/api.ts linguist-generated=true diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml index 8730da4ab..138e8ad1a 100644 --- a/.github/workflows/check.yaml +++ b/.github/workflows/check.yaml @@ -81,6 +81,8 @@ jobs: - run: pnpm lint - name: Type-check tests run: pnpm tsc-check-tests + - name: Type-check maintainer scripts + run: pnpm tsc-check-scripts - name: Format check run: pnpm format:check diff --git a/.github/workflows/regenerate_types.yaml b/.github/workflows/regenerate_types.yaml new file mode 100644 index 000000000..470901a42 --- /dev/null +++ b/.github/workflows/regenerate_types.yaml @@ -0,0 +1,256 @@ +# Keeps `src/generated/api.ts` in sync with the published OpenAPI specification: every night it regenerates the +# types and opens a pull request when the result differs from master. Renovate cannot do this -- the specification +# is a live document, not an npm dependency -- so without this job the generated types never move and none of the +# drift guards in `src/spec_guards.ts` can ever fire. +# +# Two invariants make it safe to run unattended: +# 1. Generation always happens on master, so the output follows the current specification and the current codegen +# tooling, never whatever an older auto-update branch carries. Scheduled runs only ever start from the default +# branch anyway; the explicit ref is what keeps a manual dispatch honest. +# 2. The auto-update branch is rebuilt from master instead of appended to, so the diff is always "current +# specification vs current master" and cannot resurrect a stale generated file. +# +# Deliberately not automerged, and no build step here: the pull request is opened with a token that triggers +# `check.yaml`, so whether the adapter in `src/models.ts` still compiles against the new types is answered by that +# run. A red check is the signal `src/spec_guards.ts` exists for -- a field an override replaces was dropped or +# renamed, a documented spec gap was filled, or a shared `@apify/consts` enum diverged -- and each of those needs a +# human to decide. + +name: Regenerate types + +on: + workflow_dispatch: + + schedule: + - cron: '0 2 * * *' + +concurrency: + group: regenerate-types + cancel-in-progress: false + +# Writes go through the service account token below, not through `GITHUB_TOKEN`. +permissions: + contents: read + +env: + NODE_VERSION: 24 + BRANCH_NAME: ci/regenerate-types + # Valid Conventional Commits, so the pull request is mergeable as-is; reviewers retitle it to `fix:`/`feat:` + # when the diff is user-facing. + PR_TITLE: 'chore: regenerate types from the published OpenAPI spec' + ASSIGNEE: vdusek + LABEL: t-tooling + # The only file the gate looks at. The recorded specification version is committed alongside it but + # deliberately excluded: that stamp moves on every apify-docs deploy regardless of client impact. + GENERATED_FILE: src/generated/api.ts + +jobs: + regenerate-types: + name: Regenerate types + runs-on: ubuntu-latest + + steps: + - name: Checkout master + uses: actions/checkout@v7 + with: + ref: master + token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }} + fetch-depth: 0 + + - name: Use Node.js + uses: actions/setup-node@v7 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: Install pnpm and dependencies + uses: apify/actions/pnpm-install@v1.4.0 + + # Read before regeneration overwrites it, so the pull request can say whether the specification moved. + - name: Read the recorded specification version + id: previous-spec + run: | + # Assigned first: inside `echo "...$(...)"` a failing read would be swallowed and the step + # would report an empty version. + version=$(node scripts/openapi_spec.mts recorded-version) + echo "version=$version" >> "$GITHUB_OUTPUT" + + # Downloads the specification, generates from it, and records its version in `package.json`. + - name: Regenerate types + run: pnpm generate:types + + # Gate on the generated types, not on the specification version: that stamp is a coarse marker + # rather than a content identity, for the reasons `scripts/openapi_spec.mts` sets out. Compared + # against HEAD rather than the index, so nothing staged earlier in the job can hide a change. + - name: Check for type changes + id: changes + run: | + if git diff --quiet HEAD -- "$GENERATED_FILE"; then + echo "Types are already up to date with the published specification." + echo "has-changes=false" >> "$GITHUB_OUTPUT" + else + git diff --stat HEAD -- "$GENERATED_FILE" + echo "has-changes=true" >> "$GITHUB_OUTPUT" + fi + + # A previous run may already have these exact types up for review; leave it alone instead of churning + # an open pull request. Only the generated file is compared - the branch being behind master says + # nothing about whether the types on it are still the right ones. + - name: Check whether the types are already up for review + id: review + if: steps.changes.outputs.has-changes == 'true' + env: + GH_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }} + run: | + # `--exit-code` reports 2 for "no such branch"; any other failure must not read as an absent + # branch, or a transient network error would retire a current pull request. + git ls-remote --exit-code --heads origin "$BRANCH_NAME" >/dev/null 2>&1 && status=0 || status=$? + if [[ "$status" == "2" ]]; then + echo "No auto-update branch exists yet." + echo "is-new=true" >> "$GITHUB_OUTPUT" + exit 0 + elif [[ "$status" != "0" ]]; then + echo "Failed to look up branch $BRANCH_NAME on the remote (git ls-remote exited $status)." >&2 + exit 1 + fi + + # The branch only counts as proposed while a pull request is open on it: a leftover branch - a run + # that failed before opening one, or a review that closed it without deleting the branch - must be + # rebuilt, or its contents would look proposed and silently suppress every future regeneration. An + # empty result counts only once the query itself succeeded, otherwise an API error would replace a + # live pull request. + if ! PR_NUMBER=$(gh pr list --head "$BRANCH_NAME" --base master --state open --json number --jq '.[0].number // empty'); then + echo "Failed to list open pull requests for $BRANCH_NAME." >&2 + exit 1 + fi + + if [[ -z "$PR_NUMBER" ]]; then + echo "Branch $BRANCH_NAME has no open pull request - rebuilding it." + echo "is-new=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + + git fetch origin "$BRANCH_NAME" + if git diff --quiet FETCH_HEAD -- "$GENERATED_FILE"; then + echo "The open pull request already carries these types - nothing to do." + echo "is-new=false" >> "$GITHUB_OUTPUT" + else + echo "is-new=true" >> "$GITHUB_OUTPUT" + fi + + # Retire the previous branch before recreating it. Deleting it first also avoids the window where the + # branch tip would equal master, which GitHub reads as an empty pull request and auto-closes. + - name: Retire the superseded pull request + if: steps.changes.outputs.has-changes == 'true' && steps.review.outputs.is-new == 'true' + env: + GH_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }} + RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + run: | + PR_NUMBER=$(gh pr list --head "$BRANCH_NAME" --base master --state open --json number --jq '.[0].number // empty') + + if [[ -n "$PR_NUMBER" ]]; then + gh pr close "$PR_NUMBER" --delete-branch \ + --comment "Superseded by a newer regeneration run: ${RUN_URL}. The branch is rebuilt from master rather than appended to, so a commit pushed here by hand is not carried over - it stays reachable from this pull request and has to be re-applied on the new one." + echo "Closed superseded PR #${PR_NUMBER}." + elif git ls-remote --exit-code --heads origin "$BRANCH_NAME" >/dev/null 2>&1; then + git push origin --delete "$BRANCH_NAME" + echo "Deleted leftover branch $BRANCH_NAME (no open pull request)." + fi + + # Creates the branch at the current master commit and lands the regenerated file as one signed + # ("Verified") commit, via GitHub's createCommitOnBranch mutation. + - name: Commit the regenerated types + id: commit + if: steps.changes.outputs.has-changes == 'true' && steps.review.outputs.is-new == 'true' + uses: apify/actions/signed-commit@v1.4.0 + with: + message: ${{ env.PR_TITLE }} + add: >- + package.json + ${{ env.GENERATED_FILE }} + github-token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }} + branch: ${{ env.BRANCH_NAME }} + create-branch: 'true' + + - name: Create the pull request + if: steps.commit.outputs.committed == 'true' + env: + GH_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }} + WORKFLOW_URL: ${{ github.server_url }}/${{ github.repository }}/actions/workflows/regenerate_types.yaml + PREVIOUS_SPEC_VERSION: ${{ steps.previous-spec.outputs.version }} + run: | + SPEC_VERSION=$(node scripts/openapi_spec.mts recorded-version) + + # A moved stamp proves the specification changed; an unchanged one proves nothing. Say which + # case this is instead of letting the reviewer read it as a content identity. + if [[ "$SPEC_VERSION" == "$PREVIOUS_SPEC_VERSION" ]]; then + SPEC_LINE="- Specification version: \`${SPEC_VERSION}\` - **unchanged**, which doesn't rule out a specification change: the published stamp can lag its content by a deploy. Only the diff tells." + else + SPEC_LINE="- Specification version: \`${PREVIOUS_SPEC_VERSION}\` -> \`${SPEC_VERSION}\`." + fi + + BODY=$(printf '%s\n' \ + "- Regenerates \`src/generated/api.ts\` from the [published OpenAPI specification](https://docs.apify.com/api/openapi.json), and records its version in \`package.json\`." \ + "${SPEC_LINE}" \ + "" \ + "> [!IMPORTANT]" \ + "> Retitle this pull request to \`fix:\` or \`feat:\` when the diff is user-facing, so that it lands in the changelog and triggers a release - \`chore:\` does neither." \ + "" \ + "> [!NOTE]" \ + "> A red check here is a guard in \`src/spec_guards.ts\` doing its job: a field an override block replaces was dropped or renamed, a documented spec gap was filled and its \`*SpecGaps\` entry is now stale, or a shared \`@apify/consts\` enum diverged. Each of those is a decision, not a mechanical update." \ + "" \ + "> Generated by the [Regenerate types](${WORKFLOW_URL}) workflow.") + + gh pr create \ + --title "$PR_TITLE" \ + --body "$BODY" \ + --base master \ + --head "$BRANCH_NAME" \ + --assignee "$ASSIGNEE" \ + --label "$LABEL" + + # Without this a broken sync stops regeneration silently: GitHub only notifies whoever last touched the cron, + # and no release waits on this workflow. Skipped on manual dispatch so ad-hoc triggers don't spam the channel. + notify_on_failure: + name: Notify Slack on failure + needs: regenerate-types + if: failure() && github.event_name == 'schedule' + runs-on: ubuntu-latest + + steps: + - name: Build Slack payload + env: + REPO: ${{ github.repository }} + WORKFLOW_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + HEADING: ':red_circle: Nightly type regeneration failed' + run: | + jq -n \ + --arg repo "${REPO}" \ + --arg url "${WORKFLOW_URL}" \ + --arg heading "${HEADING}" \ + '{ + text: "\($heading) in \($repo)", + blocks: [ + { + type: "header", + text: { type: "plain_text", text: $heading, emoji: true } + }, + { + type: "section", + fields: [ + { type: "mrkdwn", text: "*Repository:*\n\($repo)" }, + { type: "mrkdwn", text: "*Workflow run:*\n<\($url)|View on GitHub>" } + ] + }, + { + type: "section", + text: { type: "mrkdwn", text: "The generated API types are no longer being kept in sync with the published OpenAPI specification." } + } + ] + }' > slack-payload.json + + - name: Send Slack notification + uses: slackapi/slack-github-action@v4.0.0 + with: + webhook: ${{ secrets.SLACK_WEBHOOK_URL }} + webhook-type: incoming-webhook + payload-file-path: slack-payload.json diff --git a/.oxfmtrc.json b/.oxfmtrc.json index b04b1d02e..2850f2f20 100644 --- a/.oxfmtrc.json +++ b/.oxfmtrc.json @@ -10,6 +10,7 @@ "**/dist", "coverage", "website", - "docs" + "docs", + "src/generated" ] } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7c265960f..e30acf392 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -53,6 +53,8 @@ src/ ├── http_client.ts # Low-level HTTP layer (Axios-based) ├── apify_api_error.ts # Custom error class ├── utils.ts # Utility functions +├── generated/ +│ └── api.ts # Types generated from the OpenAPI specification (do not edit) ├── base/ │ ├── api_client.ts # Base for all clients │ ├── resource_client.ts # Base for single-resource clients @@ -70,6 +72,11 @@ test/ └── mock_server/ # Mock API server for testing ├── server.ts └── routes/ # Mock API routes + +scripts/ +├── openapi_spec.mts # Downloads the published OpenAPI specification +├── generate_types.mts # Generates src/generated/api.ts from it +└── spec_transform.mts # Spec postprocessing the generator applies ``` ### Key Patterns @@ -99,6 +106,11 @@ npm run clean # Remove dist directory # Testing npm test # Build and run vitest suite npm run tsc-check-tests # TypeScript check test files +npm run tsc-check-scripts # TypeScript check maintainer scripts + +# API specification (needs Node 22.18+, for native TypeScript support) +npm run generate:types # Regenerate src/generated/api.ts from the published specification +npm run spec:fetch # Only download the specification, into git-ignored tmp/ # Linting & Formatting npm run lint # ESLint check diff --git a/oxlint.config.ts b/oxlint.config.ts index efbf60db6..6a5c8911f 100644 --- a/oxlint.config.ts +++ b/oxlint.config.ts @@ -1,7 +1,7 @@ import { defineConfig } from '@apify/oxlint-config'; export default defineConfig({ - ignorePatterns: ['**/node_modules', '**/dist', 'coverage', 'website', '**/*.d.ts'], + ignorePatterns: ['**/node_modules', '**/dist', 'coverage', 'website', '**/*.d.ts', 'src/generated'], rules: { 'typescript/no-explicit-any': 'off', 'consistent-return': 'off', @@ -17,6 +17,13 @@ export default defineConfig({ 'import/no-default-export': 'off', }, }, + { + // Maintainer-facing CLI scripts, so reporting progress on stdout is the point. + files: ['scripts/**'], + rules: { + 'no-console': 'off', + }, + }, { files: ['test/**'], rules: { diff --git a/package.json b/package.json index fe3eb177c..232e902ec 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,8 @@ "homepage": "https://docs.apify.com/api/client/js/", "files": [ "dist", - "!dist/*.tsbuildinfo" + "!dist/*.tsbuildinfo", + "!dist/spec_guards.*" ], "scripts": { "build": "pnpm clean && pnpm build:node && pnpm build:browser", @@ -61,10 +62,18 @@ "lint": "oxlint --type-aware", "lint:fix": "oxlint --type-aware --fix", "tsc-check-tests": "tsc --noEmit --project test/tsconfig.json", + "tsc-check-scripts": "tsc --noEmit --project tsconfig.scripts.json", "format": "oxfmt", "format:check": "oxfmt --check", "build:node": "tsc", - "build:browser": "rsbuild build" + "build:browser": "rsbuild build", + "spec:fetch": "node scripts/openapi_spec.mts fetch", + "generate:types": "node scripts/openapi_spec.mts fetch && node scripts/generate_types.mts && node scripts/openapi_spec.mts record-version" + }, + "apify": { + "openapiSpec": { + "version": "v2-2026-08-03T111309Z" + } }, "dependencies": { "@apify/consts": "^2.50.0", @@ -99,6 +108,7 @@ "esbuild": "0.28.1", "express": "^5.0.0", "gen-esm-wrapper": "^1.1.2", + "openapi-typescript": "7.13.0", "oxfmt": "0.61.0", "oxlint": "1.76.0", "oxlint-tsgolint": "7.0.2001", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fab9ae775..6b3a5f920 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,7 @@ settings: overrides: '@puppeteer/browsers': ^3.0.4 js-yaml@4: ^5.0.0 + '@redocly/openapi-core>js-yaml': ^4.2.0 markdown-it: ^14.2.0 importers: @@ -104,6 +105,9 @@ importers: gen-esm-wrapper: specifier: ^1.1.2 version: 1.1.3 + openapi-typescript: + specifier: 7.13.0 + version: 7.13.0(typescript@6.0.3) oxfmt: specifier: 0.61.0 version: 0.61.0 @@ -139,22 +143,22 @@ importers: dependencies: '@apify/docs-theme': specifier: ^1.0.269 - version: 1.0.269(ca812139c5f47b60fbbbb0a14956ee25) + version: 1.0.269(abc06a45e654bd6c6ee55d75c990d8d5) '@apify/docusaurus-plugin-typedoc-api': specifier: ^5.1.16 - version: 5.1.16(875e695ddcff4a72305b12cd4c20b2a8) + version: 5.1.16(201b240f784933bff17bf5f20dc23fd5) '@docusaurus/core': specifier: ^3.8.1 - version: 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) + version: 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@docusaurus/faster': specifier: ^3.8.1 - version: 3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2) + version: 3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@docusaurus/preset-classic': specifier: ^3.8.1 - version: 3.10.2(@algolia/client-search@5.56.0)(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3)(typescript@6.0.3)(webpack-cli@7.2.2) + version: 3.10.2(@algolia/client-search@5.56.0)(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@signalwire/docusaurus-plugin-llms-txt': specifier: ^1.2.2 - version: 1.2.2(@docusaurus/core@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2)) + version: 1.2.2(@docusaurus/core@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) clsx: specifier: ^2.0.0 version: 2.1.1 @@ -3060,6 +3064,16 @@ packages: peerDependencies: react: '>=18' + '@redocly/ajv@8.11.2': + resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==} + + '@redocly/config@0.22.0': + resolution: {integrity: sha512-gAy93Ddo01Z3bHuVdPWfCwzgfaYgMdaZPcfL7JZ7hWJoK9V0lXDbigTWkhiPFAaLWzbOJ+kbUQG1+XwIm0KRGQ==} + + '@redocly/openapi-core@1.34.18': + resolution: {integrity: sha512-UyKIm0wTPw5BcY7Z2PkbK1Ma260um96LSBWXHrdSMe+ZV0EPMyDfAcUcjjm3qEiGST9OK/1TriekdPCZkn4Q3A==} + engines: {node: '>=18.17.0', npm: '>=9.5.0'} + '@rolldown/binding-android-arm64@1.1.5': resolution: {integrity: sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4481,6 +4495,9 @@ packages: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + change-case@5.4.4: + resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -4571,6 +4588,9 @@ packages: colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} @@ -5875,6 +5895,10 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} + index-to-position@1.2.0: + resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} + engines: {node: '>=18'} + infima@0.2.0-alpha.45: resolution: {integrity: sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==} engines: {node: '>=12'} @@ -6111,9 +6135,17 @@ packages: jquery@3.7.1: resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==} + js-levenshtein@1.1.6: + resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} + engines: {node: '>=0.10.0'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-yaml@4.3.1: + resolution: {integrity: sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==} + hasBin: true + js-yaml@5.2.2: resolution: {integrity: sha512-dayzUzKkJ1MkuUtZglSebU43utNXH0OWQByK9rKOOuYIO8M5TV1y+n8ALMdG0rdzBnfNkOmZEqrURepb0ejqBw==} hasBin: true @@ -6666,6 +6698,10 @@ packages: minimatch@3.1.5: resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} + minimatch@9.0.9: resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} @@ -6853,6 +6889,12 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} + openapi-typescript@7.13.0: + resolution: {integrity: sha512-EFP392gcqXS7ntPvbhBzbF8TyBA+baIYEm791Hy5YkjDYKTnk/Tn5OQeKm5BIZvJihpp8Zzr4hzx0Irde1LNGQ==} + hasBin: true + peerDependencies: + typescript: ^5.x + opener@1.5.2: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true @@ -6994,6 +7036,10 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + parse-json@8.3.0: + resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} + engines: {node: '>=18'} + parse-numeric-range@1.3.0: resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} @@ -7087,6 +7133,10 @@ packages: resolution: {integrity: sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==} engines: {node: '>=16.0.0'} + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -8447,6 +8497,10 @@ packages: stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + supports-color@10.2.2: + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} + engines: {node: '>=18'} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -8761,6 +8815,9 @@ packages: resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} engines: {node: '>=14.16'} + uri-js-replace@1.0.1: + resolution: {integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -9135,6 +9192,9 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yaml-ast-parser@0.0.43: + resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} + yaml@1.10.3: resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} engines: {node: '>= 6'} @@ -9144,6 +9204,10 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + yargs-parser@22.0.0: resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} @@ -9455,16 +9519,16 @@ snapshots: - search-insights - supports-color - '@apify/docs-theme@1.0.269(ca812139c5f47b60fbbbb0a14956ee25)': + '@apify/docs-theme@1.0.269(abc06a45e654bd6c6ee55d75c990d8d5)': dependencies: '@apify/docs-search-modal': 1.4.0(@algolia/client-search@5.56.0)(@babel/core@7.29.7)(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react-is@16.13.1)(react@19.2.8)(search-insights@2.17.3) '@apify/ui-icons': 1.48.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@apify/ui-library': 1.156.11(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(styled-components@5.3.11(@babel/core@7.29.7)(react-dom@19.2.8(react@19.2.8))(react-is@16.13.1)(react@19.2.8)) - '@docusaurus/theme-common': 3.10.2(@docusaurus/plugin-content-docs@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/theme-common': 3.10.2(3b4eb7ca257f60f1ce0050f4c5f8ea37) '@stackql/docusaurus-plugin-hubspot': 1.1.0 algoliasearch: 5.56.0 algoliasearch-helper: 3.29.2(algoliasearch@5.56.0) - babel-loader: 10.1.1(@babel/core@7.29.7)(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + babel-loader: 10.1.1(@babel/core@7.29.7)(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) clsx: 2.1.1 docusaurus-gtm-plugin: 0.0.2 postcss-preset-env: 11.3.2(postcss@8.5.25) @@ -9503,15 +9567,15 @@ snapshots: - webpack - webpack-cli - '@apify/docusaurus-plugin-typedoc-api@5.1.16(875e695ddcff4a72305b12cd4c20b2a8)': + '@apify/docusaurus-plugin-typedoc-api@5.1.16(201b240f784933bff17bf5f20dc23fd5)': dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/plugin-content-docs': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/preset-classic': 3.10.2(@algolia/client-search@5.56.0)(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/theme-common': 3.10.2(@docusaurus/plugin-content-docs@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-content-docs': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/preset-classic': 3.10.2(@algolia/client-search@5.56.0)(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/theme-common': 3.10.2(3b4eb7ca257f60f1ce0050f4c5f8ea37) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@types/react': 19.2.17 '@vscode/codicons': 0.0.35 cheerio: 1.2.0 @@ -9609,11 +9673,11 @@ snapshots: '@babel/helpers': 7.29.7 '@babel/parser': 7.29.7 '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 '@babel/types': 7.29.7 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -9648,7 +9712,7 @@ snapshots: '@babel/helper-optimise-call-expression': 7.29.7 '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -9665,7 +9729,7 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 lodash.debounce: 4.0.8 resolve: 1.22.12 transitivePeerDependencies: @@ -9675,7 +9739,14 @@ snapshots: '@babel/helper-member-expression-to-functions@7.29.7': dependencies: - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.29.7': + dependencies: + '@babel/traverse': 7.29.7 '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color @@ -9690,9 +9761,9 @@ snapshots: '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.29.7(supports-color@5.5.0) + '@babel/helper-module-imports': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -9707,7 +9778,7 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.29.7 '@babel/helper-wrap-function': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -9716,13 +9787,13 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-member-expression-to-functions': 7.29.7 '@babel/helper-optimise-call-expression': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.29.7': dependencies: - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color @@ -9736,7 +9807,7 @@ snapshots: '@babel/helper-wrap-function@7.29.7': dependencies: '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color @@ -9754,7 +9825,7 @@ snapshots: dependencies: '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -9789,7 +9860,7 @@ snapshots: dependencies: '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -9838,14 +9909,14 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7) - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color '@babel/plugin-transform-async-to-generator@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.29.7(supports-color@5.5.0) + '@babel/helper-module-imports': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7) transitivePeerDependencies: @@ -9885,7 +9956,7 @@ snapshots: '@babel/helper-globals': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -9899,7 +9970,7 @@ snapshots: dependencies: '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -9956,7 +10027,7 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -10002,7 +10073,7 @@ snapshots: '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -10042,7 +10113,7 @@ snapshots: '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7) '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7) - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -10115,7 +10186,7 @@ snapshots: dependencies: '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-module-imports': 7.29.7(supports-color@5.5.0) + '@babel/helper-module-imports': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) '@babel/types': 7.29.7 @@ -10147,7 +10218,7 @@ snapshots: '@babel/plugin-transform-runtime@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.29.7(supports-color@5.5.0) + '@babel/helper-module-imports': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7) babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.7) @@ -10333,6 +10404,18 @@ snapshots: '@babel/parser': 7.29.7 '@babel/types': 7.29.7 + '@babel/traverse@7.29.7': + 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.4.3 + transitivePeerDependencies: + - supports-color + '@babel/traverse@7.29.7(supports-color@5.5.0)': dependencies: '@babel/code-frame': 7.29.7 @@ -11159,7 +11242,7 @@ snapshots: - '@algolia/client-search' - algoliasearch - '@docusaurus/babel@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2)': + '@docusaurus/babel@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: '@babel/core': 7.29.7 '@babel/generator': 7.29.7 @@ -11169,9 +11252,9 @@ snapshots: '@babel/preset-react': 7.29.7(@babel/core@7.29.7) '@babel/preset-typescript': 7.29.7(@babel/core@7.29.7) '@babel/runtime': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7 '@docusaurus/logger': 3.10.2 - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) babel-plugin-dynamic-import-node: 2.3.3 fs-extra: 11.4.0 tslib: 2.8.1 @@ -11193,34 +11276,68 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2)': + '@docusaurus/babel@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: '@babel/core': 7.29.7 - '@docusaurus/babel': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@babel/generator': 7.29.7 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-transform-runtime': 7.29.7(@babel/core@7.29.7) + '@babel/preset-env': 7.29.7(@babel/core@7.29.7) + '@babel/preset-react': 7.29.7(@babel/core@7.29.7) + '@babel/preset-typescript': 7.29.7(@babel/core@7.29.7) + '@babel/runtime': 7.29.7 + '@babel/traverse': 7.29.7 + '@docusaurus/logger': 3.10.2 + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + babel-plugin-dynamic-import-node: 2.3.3 + fs-extra: 11.4.0 + tslib: 2.8.1 + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso + - esbuild + - html-minifier-terser + - lightningcss + - postcss + - react + - react-dom + - supports-color + - uglify-js + - webpack-cli + + '@docusaurus/bundler@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': + dependencies: + '@babel/core': 7.29.7 + '@docusaurus/babel': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@docusaurus/cssnano-preset': 3.10.2 '@docusaurus/logger': 3.10.2 - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - babel-loader: 9.2.1(@babel/core@7.29.7)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + babel-loader: 9.2.1(@babel/core@7.29.7)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) clean-css: 5.3.3 - copy-webpack-plugin: 11.0.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) - css-loader: 6.11.0(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(esbuild@0.28.1)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + copy-webpack-plugin: 11.0.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) + css-loader: 6.11.0(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(esbuild@0.28.1)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) cssnano: 6.1.2(postcss@8.5.25) - file-loader: 6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + file-loader: 6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) html-minifier-terser: 7.2.0 - mini-css-extract-plugin: 2.10.2(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) - null-loader: 4.0.1(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + mini-css-extract-plugin: 2.10.2(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) + null-loader: 4.0.1(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) postcss: 8.5.25 - postcss-loader: 7.3.4(postcss@8.5.25)(typescript@6.0.3)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + postcss-loader: 7.3.4(postcss@8.5.25)(typescript@6.0.3)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) postcss-preset-env: 10.6.1(postcss@8.5.25) - terser-webpack-plugin: 5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + terser-webpack-plugin: 5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) - webpackbar: 7.0.0(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + webpackbar: 7.0.0(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) optionalDependencies: - '@docusaurus/faster': 3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2) + '@docusaurus/faster': 3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) transitivePeerDependencies: - '@minify-html/node' - '@parcel/css' @@ -11238,15 +11355,15 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/core@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2)': + '@docusaurus/core@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/babel': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/bundler': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) + '@docusaurus/babel': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/bundler': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@docusaurus/logger': 3.10.2 - '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@mdx-js/react': 3.1.1(@types/react@19.2.17)(react@19.2.8) boxen: 6.2.1 chalk: 4.1.2 @@ -11262,7 +11379,7 @@ snapshots: execa: 5.1.1 fs-extra: 11.4.0 html-tags: 3.3.1 - html-webpack-plugin: 5.6.8(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + html-webpack-plugin: 5.6.8(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) leven: 3.1.0 lodash: 4.18.1 open: 8.4.2 @@ -11272,7 +11389,7 @@ snapshots: react-dom: 19.2.8(react@19.2.8) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)' react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.8)' - react-loadable-ssr-addon-v5-slorber: 1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.8))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + react-loadable-ssr-addon-v5-slorber: 1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.8))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) react-router: 5.3.4(react@19.2.8) react-router-config: 5.1.1(react-router@5.3.4(react@19.2.8))(react@19.2.8) react-router-dom: 5.3.4(react@19.2.8) @@ -11281,12 +11398,12 @@ snapshots: tinypool: 1.1.1 tslib: 2.8.1 update-notifier: 6.0.2 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 5.2.6(tslib@2.8.1)(webpack-cli@7.2.2)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + webpack-dev-server: 5.2.6(tslib@2.8.1)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) webpack-merge: 6.0.1 optionalDependencies: - '@docusaurus/faster': 3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2) + '@docusaurus/faster': 3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) transitivePeerDependencies: - '@minify-html/node' - '@parcel/css' @@ -11316,18 +11433,18 @@ snapshots: postcss-sort-media-queries: 5.2.0(postcss@8.5.25) tslib: 2.8.1 - '@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2)': + '@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@rspack/core': 1.7.12(@swc/helpers@0.5.23) '@swc/core': 1.15.46(@swc/helpers@0.5.23) '@swc/html': 1.15.47 browserslist: 4.28.7 lightningcss: 1.33.0 semver: 7.8.5 - swc-loader: 0.2.7(@swc/core@1.15.46(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + swc-loader: 0.2.7(@swc/core@1.15.46(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) tslib: 2.8.1 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) transitivePeerDependencies: - '@minify-html/node' - '@swc/css' @@ -11346,16 +11463,16 @@ snapshots: chalk: 4.1.2 tslib: 2.8.1 - '@docusaurus/mdx-loader@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2)': + '@docusaurus/mdx-loader@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: '@docusaurus/logger': 3.10.2 - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@mdx-js/mdx': 3.1.1 '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 estree-util-value-to-estree: 3.5.0 - file-loader: 6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + file-loader: 6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) fs-extra: 11.4.0 image-size: 2.0.2 mdast-util-mdx: 3.0.0 @@ -11371,9 +11488,9 @@ snapshots: tslib: 2.8.1 unified: 11.0.5 unist-util-visit: 5.1.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) vfile: 6.0.3 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -11390,9 +11507,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2)': + '@docusaurus/module-type-aliases@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@types/history': 4.7.11 '@types/react': 19.2.17 '@types/react-router-config': 5.0.11 @@ -11417,17 +11534,17 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-content-blog@3.10.2(c94f1d01f844f4a79bc1638044f44382)': + '@docusaurus/plugin-content-blog@3.10.2(7cf34001185872778db195e9c10dfd95)': dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@docusaurus/logger': 3.10.2 - '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/plugin-content-docs': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/theme-common': 3.10.2(@docusaurus/plugin-content-docs@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-content-docs': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/theme-common': 3.10.2(3b4eb7ca257f60f1ce0050f4c5f8ea37) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) cheerio: 1.0.0-rc.12 combine-promises: 1.2.0 feed: 4.2.2 @@ -11440,7 +11557,7 @@ snapshots: tslib: 2.8.1 unist-util-visit: 5.1.0 utility-types: 3.11.0 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -11465,17 +11582,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-docs@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2)': + '@docusaurus/plugin-content-docs@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@docusaurus/logger': 3.10.2 - '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/module-type-aliases': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/theme-common': 3.10.2(@docusaurus/plugin-content-docs@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/module-type-aliases': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/theme-common': 3.10.2(3b4eb7ca257f60f1ce0050f4c5f8ea37) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 fs-extra: 11.4.0 @@ -11486,7 +11603,7 @@ snapshots: schema-dts: 1.1.5 tslib: 2.8.1 utility-types: 3.11.0 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -11511,18 +11628,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-pages@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2)': + '@docusaurus/plugin-content-pages@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) fs-extra: 11.4.0 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) tslib: 2.8.1 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -11547,12 +11664,12 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-css-cascade-layers@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2)': + '@docusaurus/plugin-css-cascade-layers@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -11580,11 +11697,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-debug@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2)': + '@docusaurus/plugin-debug@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) fs-extra: 11.4.0 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) @@ -11614,11 +11731,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-analytics@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2)': + '@docusaurus/plugin-google-analytics@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) tslib: 2.8.1 @@ -11646,11 +11763,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-gtag@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2)': + '@docusaurus/plugin-google-gtag@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) tslib: 2.8.1 @@ -11678,11 +11795,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2)': + '@docusaurus/plugin-google-tag-manager@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) tslib: 2.8.1 @@ -11710,14 +11827,14 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-sitemap@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2)': + '@docusaurus/plugin-sitemap@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@docusaurus/logger': 3.10.2 - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) fs-extra: 11.4.0 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) @@ -11747,18 +11864,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-svgr@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2)': + '@docusaurus/plugin-svgr@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@svgr/core': 8.1.0(typescript@6.0.3) '@svgr/webpack': 8.1.0(typescript@6.0.3) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) tslib: 2.8.1 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -11783,23 +11900,23 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/preset-classic@3.10.2(@algolia/client-search@5.56.0)(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3)(typescript@6.0.3)(webpack-cli@7.2.2)': - dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/plugin-content-blog': 3.10.2(c94f1d01f844f4a79bc1638044f44382) - '@docusaurus/plugin-content-docs': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/plugin-content-pages': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/plugin-css-cascade-layers': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/plugin-debug': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/plugin-google-analytics': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/plugin-google-gtag': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/plugin-google-tag-manager': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/plugin-sitemap': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/plugin-svgr': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/theme-classic': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/theme-common': 3.10.2(@docusaurus/plugin-content-docs@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/theme-search-algolia': 3.10.2(@algolia/client-search@5.56.0)(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/preset-classic@3.10.2(@algolia/client-search@5.56.0)(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': + dependencies: + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-content-blog': 3.10.2(7cf34001185872778db195e9c10dfd95) + '@docusaurus/plugin-content-docs': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-content-pages': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-css-cascade-layers': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-debug': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-google-analytics': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-google-gtag': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-google-tag-manager': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-sitemap': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-svgr': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/theme-classic': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/theme-common': 3.10.2(3b4eb7ca257f60f1ce0050f4c5f8ea37) + '@docusaurus/theme-search-algolia': 3.10.2(@algolia/client-search@5.56.0)(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) transitivePeerDependencies: @@ -11834,21 +11951,21 @@ snapshots: '@types/react': 19.2.17 react: 19.2.8 - '@docusaurus/theme-classic@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2)': + '@docusaurus/theme-classic@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@docusaurus/logger': 3.10.2 - '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/module-type-aliases': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/plugin-content-blog': 3.10.2(c94f1d01f844f4a79bc1638044f44382) - '@docusaurus/plugin-content-docs': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/plugin-content-pages': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/theme-common': 3.10.2(@docusaurus/plugin-content-docs@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/module-type-aliases': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-content-blog': 3.10.2(7cf34001185872778db195e9c10dfd95) + '@docusaurus/plugin-content-docs': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-content-pages': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/theme-common': 3.10.2(3b4eb7ca257f60f1ce0050f4c5f8ea37) '@docusaurus/theme-translations': 3.10.2 - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@mdx-js/react': 3.1.1(@types/react@19.2.17)(react@19.2.8) clsx: 2.1.1 copy-text-to-clipboard: 3.2.2 @@ -11887,13 +12004,13 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-common@3.10.2(@docusaurus/plugin-content-docs@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2)': + '@docusaurus/theme-common@3.10.2(3b4eb7ca257f60f1ce0050f4c5f8ea37)': dependencies: - '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/module-type-aliases': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/plugin-content-docs': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/mdx-loader': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/module-type-aliases': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/plugin-content-docs': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@types/history': 4.7.11 '@types/react': 19.2.17 '@types/react-router-config': 5.0.11 @@ -11920,17 +12037,17 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-search-algolia@3.10.2(@algolia/client-search@5.56.0)(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3)(typescript@6.0.3)(webpack-cli@7.2.2)': + '@docusaurus/theme-search-algolia@3.10.2(@algolia/client-search@5.56.0)(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(@types/react@19.2.17)(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: '@algolia/autocomplete-core': 1.19.9(@algolia/client-search@5.56.0)(algoliasearch@5.56.0)(search-insights@2.17.3) '@docsearch/react': 4.7.0(@algolia/client-search@5.56.0)(@types/react@19.2.17)(algoliasearch@5.56.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(search-insights@2.17.3) - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) '@docusaurus/logger': 3.10.2 - '@docusaurus/plugin-content-docs': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) - '@docusaurus/theme-common': 3.10.2(@docusaurus/plugin-content-docs@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/plugin-content-docs': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/theme-common': 3.10.2(3b4eb7ca257f60f1ce0050f4c5f8ea37) '@docusaurus/theme-translations': 3.10.2 - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-validation': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) algoliasearch: 5.56.0 algoliasearch-helper: 3.29.2(algoliasearch@5.56.0) clsx: 2.1.1 @@ -11973,7 +12090,37 @@ snapshots: fs-extra: 11.4.0 tslib: 2.8.1 - '@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2)': + '@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': + dependencies: + '@mdx-js/mdx': 3.1.1 + '@types/history': 4.7.11 + '@types/mdast': 4.0.4 + '@types/react': 19.2.17 + commander: 5.1.0 + joi: 17.13.4 + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)' + utility-types: 3.11.0 + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + webpack-merge: 5.10.0 + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso + - esbuild + - html-minifier-terser + - lightningcss + - postcss + - supports-color + - uglify-js + - webpack-cli + + '@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: '@mdx-js/mdx': 3.1.1 '@types/history': 4.7.11 @@ -11985,7 +12132,7 @@ snapshots: react-dom: 19.2.8(react@19.2.8) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)' utility-types: 3.11.0 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) webpack-merge: 5.10.0 transitivePeerDependencies: - '@minify-html/node' @@ -12003,9 +12150,31 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2)': + '@docusaurus/utils-common@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': + dependencies: + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + tslib: 2.8.1 + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso + - esbuild + - html-minifier-terser + - lightningcss + - postcss + - react + - react-dom + - supports-color + - uglify-js + - webpack-cli + + '@docusaurus/utils-common@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) tslib: 2.8.1 transitivePeerDependencies: - '@minify-html/node' @@ -12025,11 +12194,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-validation@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2)': + '@docusaurus/utils-validation@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: '@docusaurus/logger': 3.10.2 - '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/utils': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) fs-extra: 11.4.0 joi: 17.13.4 js-yaml: 5.2.2 @@ -12053,15 +12222,15 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2)': + '@docusaurus/utils@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': dependencies: '@11ty/gray-matter': 1.0.0 '@docusaurus/logger': 3.10.2 - '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) - '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2) + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) escape-string-regexp: 4.0.0 execa: 5.1.1 - file-loader: 6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + file-loader: 6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) fs-extra: 11.4.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -12073,9 +12242,50 @@ snapshots: prompts: 2.4.2 resolve-pathname: 3.0.0 tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) utility-types: 3.11.0 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso + - esbuild + - html-minifier-terser + - lightningcss + - postcss + - react + - react-dom + - supports-color + - uglify-js + - webpack-cli + + '@docusaurus/utils@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))': + dependencies: + '@11ty/gray-matter': 1.0.0 + '@docusaurus/logger': 3.10.2 + '@docusaurus/types': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + '@docusaurus/utils-common': 3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + escape-string-regexp: 4.0.0 + execa: 5.1.1 + file-loader: 6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) + fs-extra: 11.4.0 + github-slugger: 1.5.0 + globby: 11.1.0 + jiti: 1.21.7 + js-yaml: 5.2.2 + lodash: 4.18.1 + micromatch: 4.0.8 + p-queue: 6.6.2 + prompts: 2.4.2 + resolve-pathname: 3.0.0 + tslib: 2.8.1 + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) + utility-types: 3.11.0 + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -12155,7 +12365,7 @@ snapshots: '@emotion/babel-plugin@11.13.5': dependencies: - '@babel/helper-module-imports': 7.29.7(supports-color@5.5.0) + '@babel/helper-module-imports': 7.29.7 '@babel/runtime': 7.29.7 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 @@ -13159,6 +13369,29 @@ snapshots: '@react-hook/passive-layout-effect': 1.2.1(react@19.2.8) react: 19.2.8 + '@redocly/ajv@8.11.2': + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js-replace: 1.0.1 + + '@redocly/config@0.22.0': {} + + '@redocly/openapi-core@1.34.18(supports-color@10.2.2)': + dependencies: + '@redocly/ajv': 8.11.2 + '@redocly/config': 0.22.0 + colorette: 1.4.0 + https-proxy-agent: 7.0.6(supports-color@10.2.2) + js-levenshtein: 1.1.6 + js-yaml: 4.3.1 + minimatch: 5.1.9 + pluralize: 8.0.0 + yaml-ast-parser: 0.0.43 + transitivePeerDependencies: + - supports-color + '@rolldown/binding-android-arm64@1.1.5': optional: true @@ -13468,9 +13701,9 @@ snapshots: '@sideway/pinpoint@2.0.0': {} - '@signalwire/docusaurus-plugin-llms-txt@1.2.2(@docusaurus/core@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2))': + '@signalwire/docusaurus-plugin-llms-txt@1.2.2(@docusaurus/core@3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))': dependencies: - '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2) + '@docusaurus/core': 3.10.2(@docusaurus/faster@3.10.2(@docusaurus/types@3.10.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@swc/helpers@0.5.23)(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.8))(@rspack/core@1.7.12(@swc/helpers@0.5.23))(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) fs-extra: 11.4.0 hast-util-select: 6.0.4 hast-util-to-html: 9.0.5 @@ -13731,7 +13964,7 @@ snapshots: '@tokenizer/inflate@0.4.1': dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 token-types: 6.1.2 transitivePeerDependencies: - supports-color @@ -14106,7 +14339,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -14283,20 +14516,20 @@ snapshots: - debug - supports-color - babel-loader@10.1.1(@babel/core@7.29.7)(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + babel-loader@10.1.1(@babel/core@7.29.7)(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: '@babel/core': 7.29.7 find-up: 5.0.0 optionalDependencies: '@rspack/core': 1.7.12(@swc/helpers@0.5.23) - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) - babel-loader@9.2.1(@babel/core@7.29.7)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + babel-loader@9.2.1(@babel/core@7.29.7)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: '@babel/core': 7.29.7 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) babel-plugin-dynamic-import-node@2.3.3: dependencies: @@ -14396,7 +14629,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 2.0.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 http-errors: 2.0.1 iconv-lite: 0.7.3 on-finished: 2.4.1 @@ -14608,6 +14841,8 @@ snapshots: chalk@5.6.2: {} + change-case@5.4.4: {} + char-regex@1.0.2: {} character-entities-html4@2.1.0: {} @@ -14717,6 +14952,8 @@ snapshots: colord@2.9.3: {} + colorette@1.4.0: {} + colorette@2.0.20: {} combine-promises@1.2.0: {} @@ -14806,7 +15043,7 @@ snapshots: copy-text-to-clipboard@3.2.2: {} - copy-webpack-plugin@11.0.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + copy-webpack-plugin@11.0.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -14814,7 +15051,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) core-js-compat@3.49.0: dependencies: @@ -14918,7 +15155,7 @@ snapshots: postcss-selector-parser: 7.1.4 postcss-value-parser: 4.2.0 - css-loader@6.11.0(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + css-loader@6.11.0(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: icss-utils: 5.1.0(postcss@8.5.25) postcss: 8.5.25 @@ -14930,9 +15167,9 @@ snapshots: semver: 7.8.5 optionalDependencies: '@rspack/core': 1.7.12(@swc/helpers@0.5.23) - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(esbuild@0.28.1)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(esbuild@0.28.1)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: '@jridgewell/trace-mapping': 0.3.31 cssnano: 6.1.2(postcss@8.5.25) @@ -14940,7 +15177,7 @@ snapshots: postcss: 8.5.25 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) optionalDependencies: clean-css: 5.3.3 esbuild: 0.28.1 @@ -15066,6 +15303,16 @@ snapshots: dependencies: ms: 2.0.0 + debug@4.4.3: + dependencies: + ms: 2.1.3 + + debug@4.4.3(supports-color@10.2.2): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 10.2.2 + debug@4.4.3(supports-color@5.5.0): dependencies: ms: 2.1.3 @@ -15514,7 +15761,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 depd: 2.0.0 encodeurl: 2.0.0 escape-html: 1.0.3 @@ -15581,11 +15828,11 @@ snapshots: dependencies: xml-js: 1.6.11 - file-loader@6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + file-loader@6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) file-type@21.3.4: dependencies: @@ -15616,7 +15863,7 @@ snapshots: finalhandler@2.1.1: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -15753,7 +16000,7 @@ snapshots: dependencies: basic-ftp: 5.3.1 data-uri-to-buffer: 6.0.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -16163,7 +16410,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.8(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + html-webpack-plugin@5.6.8(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -16172,7 +16419,7 @@ snapshots: tapable: 2.3.3 optionalDependencies: '@rspack/core': 1.7.12(@swc/helpers@0.5.23) - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) htmlparser2@10.1.0: dependencies: @@ -16220,7 +16467,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -16254,14 +16501,21 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.6(supports-color@10.2.2): + dependencies: + agent-base: 7.1.4 + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -16309,6 +16563,8 @@ snapshots: indent-string@4.0.0: {} + index-to-position@1.2.0: {} + infima@0.2.0-alpha.45: {} inherits@2.0.3: {} @@ -16502,8 +16758,14 @@ snapshots: jquery@3.7.1: {} + js-levenshtein@1.1.6: {} + js-tokens@4.0.0: {} + js-yaml@4.3.1: + dependencies: + argparse: 2.0.1 + js-yaml@5.2.2: dependencies: argparse: 2.0.1 @@ -17264,7 +17526,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.13 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 decode-named-character-reference: 1.3.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -17319,11 +17581,11 @@ snapshots: mimic-response@4.0.0: {} - mini-css-extract-plugin@2.10.2(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + mini-css-extract-plugin@2.10.2(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: schema-utils: 4.3.3 tapable: 2.3.3 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) minimalistic-assert@1.0.1: {} @@ -17337,19 +17599,23 @@ snapshots: dependencies: brace-expansion: 1.1.17 + minimatch@5.1.9: + dependencies: + brace-expansion: 2.1.3 + minimatch@9.0.9: dependencies: brace-expansion: 2.1.3 minimist@1.2.8: {} - minimizer-webpack-plugin@5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + minimizer-webpack-plugin@5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.49.0 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) optionalDependencies: '@swc/core': 1.15.46(@swc/helpers@0.5.23) clean-css: 5.3.3 @@ -17358,6 +17624,18 @@ snapshots: html-minifier-terser: 7.2.0 postcss: 8.5.25 + minimizer-webpack-plugin@5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.3.3 + terser: 5.49.0 + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) + optionalDependencies: + '@swc/core': 1.15.46(@swc/helpers@0.5.23) + esbuild: 0.28.1 + postcss: 8.5.25 + minimizer-webpack-plugin@5.6.1(esbuild@0.28.1)(webpack@5.109.2): dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -17425,11 +17703,11 @@ snapshots: dependencies: boolbase: 1.0.0 - null-loader@4.0.1(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + null-loader@4.0.1(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) object-assign@4.1.1: {} @@ -17488,6 +17766,16 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 + openapi-typescript@7.13.0(typescript@6.0.3): + dependencies: + '@redocly/openapi-core': 1.34.18(supports-color@10.2.2) + ansi-colors: 4.1.3 + change-case: 5.4.4 + parse-json: 8.3.0 + supports-color: 10.2.2 + typescript: 6.0.3 + yargs-parser: 21.1.1 + opener@1.5.2: {} os-browserify@0.3.0: {} @@ -17621,7 +17909,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 get-uri: 6.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -17680,6 +17968,12 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse-json@8.3.0: + dependencies: + '@babel/code-frame': 7.29.7 + index-to-position: 1.2.0 + type-fest: 4.41.0 + parse-numeric-range@1.3.0: {} parse5-htmlparser2-tree-adapter@7.1.0: @@ -17769,6 +18063,8 @@ snapshots: pvutils: 1.1.5 tslib: 2.8.1 + pluralize@8.0.0: {} + possible-typed-array-names@1.1.0: {} postcss-attribute-case-insensitive@7.0.1(postcss@8.5.25): @@ -18005,13 +18301,13 @@ snapshots: '@csstools/utilities': 3.0.0(postcss@8.5.25) postcss: 8.5.25 - postcss-loader@7.3.4(postcss@8.5.25)(typescript@6.0.3)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + postcss-loader@7.3.4(postcss@8.5.25)(typescript@6.0.3)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: cosmiconfig: 8.3.6(typescript@6.0.3) jiti: 1.21.7 postcss: 8.5.25 semver: 7.8.5 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) transitivePeerDependencies: - typescript @@ -18465,7 +18761,7 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -18622,11 +18918,11 @@ snapshots: dependencies: react: 19.2.8 - react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.8))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.8))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: '@babel/runtime': 7.29.7 react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.8)' - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) react-markdown@10.1.0(@types/react@19.2.17)(react@19.2.8): dependencies: @@ -19049,7 +19345,7 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -19150,7 +19446,7 @@ snapshots: send@1.2.1: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -19329,7 +19625,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 socks: 2.8.9 transitivePeerDependencies: - supports-color @@ -19358,7 +19654,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -19369,7 +19665,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3 handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -19518,6 +19814,8 @@ snapshots: stylis@4.2.0: {} + supports-color@10.2.2: {} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -19544,23 +19842,23 @@ snapshots: picocolors: 1.1.1 sax: 1.6.1 - swc-loader@0.2.7(@swc/core@1.15.46(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + swc-loader@0.2.7(@swc/core@1.15.46(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: '@swc/core': 1.15.46(@swc/helpers@0.5.23) '@swc/counter': 0.1.3 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) tabbable@6.5.0: {} tapable@2.3.3: {} - terser-webpack-plugin@5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + terser-webpack-plugin@5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.49.0 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) optionalDependencies: '@swc/core': 1.15.46(@swc/helpers@0.5.23) clean-css: 5.3.3 @@ -19793,18 +20091,20 @@ snapshots: semver-diff: 4.0.0 xdg-basedir: 5.1.0 + uri-js-replace@1.0.1: {} + uri-js@4.4.1: dependencies: punycode: 2.3.1 - url-loader@4.1.1(file-loader@6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) optionalDependencies: - file-loader: 6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + file-loader: 6.2.0(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) url@0.11.4: dependencies: @@ -19966,7 +20266,7 @@ snapshots: webpack-bundle-analyzer: 4.10.2 webpack-dev-server: 5.2.6(tslib@2.8.1)(webpack-cli@7.2.2)(webpack@5.109.2) - webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: colorette: 2.0.20 memfs: 4.64.0(tslib@2.8.1) @@ -19975,7 +20275,7 @@ snapshots: range-parser: 1.3.0 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) transitivePeerDependencies: - tslib @@ -19993,7 +20293,7 @@ snapshots: - tslib optional: true - webpack-dev-server@5.2.6(tslib@2.8.1)(webpack-cli@7.2.2)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + webpack-dev-server@5.2.6(tslib@2.8.1)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -20021,10 +20321,10 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) ws: 8.21.1 optionalDependencies: - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) webpack-cli: 7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2) transitivePeerDependencies: - bufferutil @@ -20088,7 +20388,45 @@ snapshots: webpack-sources@3.5.1: {} - webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2): + webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)): + dependencies: + '@types/estree': 1.0.9 + '@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.18.0 + browserslist: 4.28.7 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.24.4 + es-module-lexer: 2.3.1 + eslint-scope: 5.1.1 + events: 3.3.0 + graceful-fs: 4.2.11 + mime-db: 1.54.0 + minimizer-webpack-plugin: 5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) + neo-async: 2.6.2 + schema-utils: 4.3.3 + tapable: 2.3.3 + watchpack: 2.5.2 + webpack-sources: 3.5.1 + optionalDependencies: + webpack-cli: 7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2) + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso + - esbuild + - html-minifier-terser + - lightningcss + - postcss + - uglify-js + + webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)): dependencies: '@types/estree': 1.0.9 '@types/json-schema': 7.0.15 @@ -20104,7 +20442,7 @@ snapshots: events: 3.3.0 graceful-fs: 4.2.11 mime-db: 1.54.0 - minimizer-webpack-plugin: 5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)) + minimizer-webpack-plugin: 5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))) neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 @@ -20164,7 +20502,7 @@ snapshots: - postcss - uglify-js - webpackbar@7.0.0(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2)): + webpackbar@7.0.0(@rspack/core@1.7.12(@swc/helpers@0.5.23))(webpack@5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(@swc/html@1.15.47)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2))): dependencies: ansis: 3.17.0 consola: 3.4.2 @@ -20172,7 +20510,7 @@ snapshots: std-env: 3.10.0 optionalDependencies: '@rspack/core': 1.7.12(@swc/helpers@0.5.23) - webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.25))(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.25)(webpack-cli@7.2.2) + webpack: 5.109.2(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.28.1)(postcss@8.5.25)(webpack-cli@7.2.2(js-yaml@5.2.2)(json5@2.2.3)(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.6)(webpack@5.109.2)) websocket-driver@0.7.5: dependencies: @@ -20254,10 +20592,14 @@ snapshots: yallist@3.1.1: {} + yaml-ast-parser@0.0.43: {} + yaml@1.10.3: {} yaml@2.9.0: {} + yargs-parser@21.1.1: {} + yargs-parser@22.0.0: {} yargs@18.1.0: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index dc9bf54da..d1937bba8 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -32,6 +32,13 @@ onlyBuiltDependencies: overrides: "@puppeteer/browsers": "^3.0.4" js-yaml@4: ^5.0.0 + # Exempt @redocly/openapi-core (openapi-typescript's spec parser) from the + # js-yaml v5 bump above. js-yaml 5 removed the `types` export, and redocly's + # js-yaml wrapper reads `types.merge` at import time, so v5 makes it throw + # `TypeError: Cannot read properties of undefined (reading 'merge')` before + # it parses anything. 4.2.0 is still above the advisory floor the v4 line + # override was originally added for. + "@redocly/openapi-core>js-yaml": ^4.2.0 markdown-it: ^14.2.0 nodeLinker: hoisted diff --git a/scripts/generate_types.mts b/scripts/generate_types.mts new file mode 100644 index 000000000..86845f77e --- /dev/null +++ b/scripts/generate_types.mts @@ -0,0 +1,61 @@ +/** + * Generates `src/generated/api.ts` from the OpenAPI specification downloaded into `tmp/openapi.json`. + * + * Run via `pnpm generate:types`, which downloads the specification first and records its version afterwards. + * Requires a Node release that strips TypeScript syntax natively (>=22.18 or >=23.6). + * + * A path can be passed instead, for a candidate specification that is not published yet. The recorded version + * deliberately stays put in that case -- it names the published specification -- so types generated that way must + * not be committed. + * + * The `openapi-typescript` CLI cannot be used directly because two postprocessing steps need the Node API. Both + * live in `./spec_transform.mts`, where they are unit tested: + * + * 1. `format: date-time` -> `Date`, because the client converts every `*At` field of a response into a `Date` at + * runtime and documents that as a public contract, while `openapi-typescript` types those fields as `string`. + * 2. Absolutizing root-relative Markdown links in the specification's descriptions, which are copied verbatim + * into JSDoc and would otherwise resolve against the docs site's API-reference `baseUrl`. + */ + +import { writeFile } from 'node:fs/promises'; +import { resolve } from 'node:path'; +import { pathToFileURL } from 'node:url'; + +import openapiTS, { astToString, COMMENT_HEADER } from 'openapi-typescript'; + +import { absolutizeDocLinks, transformDateTime } from './spec_transform.mts'; + +const DEFAULT_SPEC_PATH = new URL('../tmp/openapi.json', import.meta.url); + +// `api.ts` rather than `api.d.ts` on purpose: `tsc` does not copy `.d.ts` inputs into `outDir`, so a declaration +// file would leave every published type referencing a path that does not exist in `dist`. +const OUTPUT_PATH = new URL('../src/generated/api.ts', import.meta.url); + +const [inputPath] = process.argv.slice(2); +const specPath = inputPath === undefined ? DEFAULT_SPEC_PATH : pathToFileURL(resolve(inputPath)); + +const ast = await openapiTS(specPath, { + transform: transformDateTime, + // `additionalProperties` is deliberately left off. It is often described as the analogue of the Python + // client's `extra_fields = "allow"`, but it is not: that setting relaxes *runtime* validation, whereas this + // flag appends `& { [key: string]: unknown }` to every object and so relaxes *static* typing. This client + // never validates responses at runtime (`cast()` is `input as T`), so unknown server fields already pass + // through untouched -- the flag would add no forward compatibility and would silently make every property + // typo type-check. + emptyObjectsUnknown: true, + // `rootTypes` is deliberately left off too: its `export type Dataset = components['schemas']['Dataset']` + // aliases would collide by name with the published models, so both consumers of this file go through + // `components` and the aliases would be 300-odd exported lines nothing imports. + silent: true, +}); + +await writeFile(OUTPUT_PATH, absolutizeDocLinks(COMMENT_HEADER + astToString(ast))); + +console.log(`Wrote src/generated/api.ts from ${inputPath ?? 'tmp/openapi.json'}.`); + +if (inputPath !== undefined) { + console.log( + 'Generated from an explicit file - `apify.openapiSpec.version` in package.json still names the published ' + + 'specification, so do not commit these types.', + ); +} diff --git a/scripts/openapi_spec.mts b/scripts/openapi_spec.mts new file mode 100644 index 000000000..1e6c662e7 --- /dev/null +++ b/scripts/openapi_spec.mts @@ -0,0 +1,268 @@ +/** + * Fetch the published Apify API OpenAPI specification and record the version the types were generated from. + * + * `fetch` downloads the specification into git-ignored `tmp/`, and `pnpm generate:types` reads that one copy, so a + * specification redeployed mid-run cannot leave the generated types describing two different inputs. The document + * itself is never committed -- only its version is, in `apify.openapiSpec.version` in `package.json`. + * + * `record-version` writes that stamp last, once generation succeeded, so it names the specification the committed + * `src/generated/api.ts` follows from. `recorded-version` prints it; the nightly workflow reads it before + * regenerating to report whether the stamp moved. + * + * The stamp is a coarse marker, not a content identity: the specification is served latest-only, so it cannot be + * fetched back, and apify-docs bumps it in a follow-up `[skip ci]` commit, so a deploy can publish new content + * under the old stamp. What keeps the value honest is the nightly workflow committing nothing unless the generated + * types changed. A local regeneration that only moves this line is that same case -- drop it rather than + * committing it alone. + * + * Maintainer-only: the generated types are committed, so nothing in the published package or in pull-request CI + * depends on `docs.apify.com` being reachable. + * + * Needs Node 22.18+ or 23.6+ for native type stripping -- above the floor the package itself supports. Older + * versions fail while parsing this file, with `ERR_UNKNOWN_FILE_EXTENSION` and no mention of a version. + */ + +import { mkdir, readFile, writeFile } from 'node:fs/promises'; + +/** The published, bundled specification, built and deployed from the `apify/apify-docs` repository. */ +const SPEC_URL = 'https://docs.apify.com/api/openapi.json'; + +/** Codegen input, deliberately outside version control -- `tmp/` is git-ignored. */ +const SPEC_DIR = new URL('../tmp/', import.meta.url); +const SPEC_PATH = new URL('openapi.json', SPEC_DIR); + +const MANIFEST_PATH = new URL('../package.json', import.meta.url); +const VERSION_ENTRY = 'apify.openapiSpec.version'; + +/** + * Patches the recorded stamp in place, so the rest of `package.json` stays byte for byte as the release tooling + * left it. Bounded to the `openapiSpec` object by `[^{}]`, so a missing key fails loudly instead of hitting some + * other `version` further down the file. + */ +const VERSION_ENTRY_PATTERN = /("openapiSpec"\s*:\s*\{[^{}]*?"version"\s*:\s*")[^"]*(")/u; + +/** Generous for 1 MB on a slow link, but bounded, so a stalled connection still reports. */ +const TIMEOUT_MS = 60_000; + +/** The nightly workflow alerts the team when this fails, so a single network blip should not be worth a ping. */ +const DOWNLOAD_ATTEMPTS = 3; +const RETRY_DELAY_MS = 5_000; + +/** An error page or a truncated response must never be generated from; the real specification is roughly 1 MB. */ +const MIN_SPEC_SIZE_BYTES = 100_000; + +/** The fields this script reads out of a specification and reports on. */ +interface SpecSummary { + openapi: string; + version: string; + pathCount: number; + schemaCount: number; +} + +/** A failure this script diagnosed itself, so the top level can report it without a stack trace. */ +class SpecError extends Error {} + +function fail(message: string): never { + throw new SpecError(message); +} + +function isNonEmptyObject(value: unknown): value is Record { + return typeof value === 'object' && value !== null && !Array.isArray(value) && Object.keys(value).length > 0; +} + +/** + * Reject anything that is not an OpenAPI 3.1 document with content in it, before it is generated from. + * + * A docs redeploy serving an error page with a 200, a response truncated mid-flight or a specification version bump + * has to stop here, or it lands as a diff that looks like an API change. Shape only: a well-formed specification + * that lost most of its endpoints still passes, which is what the printed counts are for. + */ +function summarize(body: Buffer): SpecSummary { + if (body.length < MIN_SPEC_SIZE_BYTES) { + fail(`specification is only ${body.length} bytes, which cannot be the real one`); + } + + let document: unknown; + + try { + document = JSON.parse(body.toString('utf8')); + } catch (error) { + fail(`specification is not valid JSON: ${error instanceof Error ? error.message : String(error)}`); + } + + if (!isNonEmptyObject(document)) { + fail('specification is not a JSON object'); + } + + const { openapi, info, paths, components } = document; + + // Narrower than a major-version check on purpose: 3.0 and a hypothetical 3.2 both describe schemas differently + // enough that the generated types would need a look. + if (typeof openapi !== 'string' || !openapi.startsWith('3.1.')) { + fail(`expected an OpenAPI 3.1.x document, got \`openapi\`: ${JSON.stringify(openapi)}`); + } + + const version = isNonEmptyObject(info) ? info.version : undefined; + + if (typeof version !== 'string' || version === '') { + fail('specification has no `info.version` string'); + } + + if (!isNonEmptyObject(paths)) { + fail('`paths` is missing or empty'); + } + + if (!isNonEmptyObject(components) || !isNonEmptyObject(components.schemas)) { + fail('`components.schemas` is missing or empty'); + } + + return { + openapi, + version, + pathCount: Object.keys(paths).length, + schemaCount: Object.keys(components.schemas).length, + }; +} + +function describe(error: unknown): string { + if (error instanceof SpecError) { + return error.message; + } + + // Node reports network failures as `TypeError: fetch failed` with the real reason on `cause`; the stack above it + // is undici internals. + if (error instanceof Error && error.cause instanceof Error) { + return `${error.name}: ${error.message}: ${error.cause.message}`; + } + + // `AbortSignal.timeout` rejects with a `DOMException` named `TimeoutError` and no `cause`, so a timeout needs + // its own branch to avoid falling through to the stack one. + if (error instanceof DOMException) { + return `${error.name}: ${error.message}`; + } + + // Undiagnosed -- a bug in this script, or an errno nothing here anticipated -- so keep the stack. + if (error instanceof Error) { + return error.stack ?? `${error.name}: ${error.message}`; + } + + return String(error); +} + +/** GETs the specification bytes, retrying transient failures. Does not write anything. */ +async function download(): Promise { + let lastError = ''; + + for (let attempt = 1; attempt <= DOWNLOAD_ATTEMPTS; attempt++) { + try { + const response = await fetch(SPEC_URL, { signal: AbortSignal.timeout(TIMEOUT_MS) }); + + if (response.ok) { + // `arrayBuffer` rather than `text`: `text` would strip a leading BOM and decode a non-UTF-8 body + // into replacement characters that still parse as JSON. + return Buffer.from(await response.arrayBuffer()); + } + + lastError = `HTTP ${response.status} ${response.statusText}`; + + // A rejection the client owns is not going to answer differently in five seconds. 408 and 429 are the + // two that will, so they stay in the retry loop. + if (response.status >= 400 && response.status < 500 && ![408, 429].includes(response.status)) { + fail(`failed to download ${SPEC_URL}: ${lastError}`); + } + } catch (error) { + lastError = describe(error); + } + + console.error(`Attempt ${attempt}/${DOWNLOAD_ATTEMPTS} to download ${SPEC_URL} failed (${lastError}).`); + + if (attempt < DOWNLOAD_ATTEMPTS) { + await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY_MS)); + } + } + + fail(`failed to download ${SPEC_URL} after ${DOWNLOAD_ATTEMPTS} attempts: ${lastError}`); +} + +/** Reads the recorded stamp, failing loudly if the entry the writer targets is gone. */ +async function readRecordedVersion(): Promise { + const manifest: unknown = JSON.parse(await readFile(MANIFEST_PATH, 'utf8')); + const apify = isNonEmptyObject(manifest) ? manifest.apify : undefined; + const spec = isNonEmptyObject(apify) ? apify.openapiSpec : undefined; + const version = isNonEmptyObject(spec) ? spec.version : undefined; + + if (typeof version !== 'string' || version === '') { + fail(`package.json has no \`${VERSION_ENTRY}\` string`); + } + + return version; +} + +/** Writes the downloaded specification to `tmp/openapi.json` for the generator to read. */ +async function fetchSpec(): Promise { + const bytes = await download(); + const spec = summarize(bytes); + + // Written byte for byte, so the key order the generator sees is the published one. + await mkdir(SPEC_DIR, { recursive: true }); + await writeFile(SPEC_PATH, bytes); + + console.log(`Wrote tmp/openapi.json (openapi ${spec.openapi}, version ${spec.version}, ${bytes.length} bytes).`); + console.log(`Specification describes ${spec.pathCount} paths and ${spec.schemaCount} schemas.`); +} + +/** Stamps the fetched specification's version into `package.json`, leaving the rest of the file untouched. */ +async function recordVersion(): Promise { + const bytes = await readFile(SPEC_PATH).catch((error: unknown) => { + if (error instanceof Error && 'code' in error && error.code === 'ENOENT') { + fail('tmp/openapi.json is missing - run `pnpm generate:types` rather than this subcommand alone'); + } + + throw error; + }); + + const { version } = summarize(bytes); + const previous = await readRecordedVersion(); + + if (previous === version) { + console.log(`Specification version ${version} is already recorded in package.json.`); + return; + } + + const manifest = await readFile(MANIFEST_PATH, 'utf8'); + const patched = manifest.replace(VERSION_ENTRY_PATTERN, `$1${version}$2`); + + if (patched === manifest) { + fail(`package.json has no \`${VERSION_ENTRY}\` entry - cannot record the version`); + } + + await writeFile(MANIFEST_PATH, patched); + console.log(`Recorded specification version in package.json: ${previous} -> ${version}.`); +} + +/** Prints the recorded stamp on stdout, for the regeneration workflow to capture. */ +async function printRecordedVersion(): Promise { + console.log(await readRecordedVersion()); +} + +const COMMANDS: Record Promise> = { + fetch: fetchSpec, + 'record-version': recordVersion, + 'recorded-version': printRecordedVersion, +}; + +const [name] = process.argv.slice(2); +const command = name === undefined ? undefined : COMMANDS[name]; + +if (command === undefined) { + console.error(`openapi-spec: expected one of ${Object.keys(COMMANDS).join(', ')}, got ${JSON.stringify(name)}`); + // `process.exitCode` rather than `process.exit`, which can exit before a piped stderr has drained. + process.exitCode = 1; +} else { + try { + await command(); + } catch (error) { + console.error(`openapi-spec: ${describe(error)}`); + process.exitCode = 1; + } +} diff --git a/scripts/spec_transform.mts b/scripts/spec_transform.mts new file mode 100644 index 000000000..658dd1aac --- /dev/null +++ b/scripts/spec_transform.mts @@ -0,0 +1,48 @@ +/** + * The pure spec helpers the maintainer scripts in this directory rely on, kept separate from their CLIs + * so they can be unit tested and type-checked. + */ + +import type { SchemaObject, TransformNodeOptions } from 'openapi-typescript'; +import ts from 'typescript'; + +/** Base that the spec's root-relative Markdown links are resolved against. */ +export const DOCS_BASE_URL = 'https://docs.apify.com'; + +/** + * Types `format: date-time` as `Date`, but only for `#/components/schemas` -- the models that flow through + * `parseDateFields`. + * + * Query parameters are deliberately left as `string`. A `Date` there would be serialized into the query + * string by axios' param serializer, which does not produce ISO 8601. Request bodies are safe because they + * go through `JSON.stringify`, which does. + */ +export function transformDateTime( + schemaObject: SchemaObject, + options: Pick, +): ts.TypeNode | undefined { + if (schemaObject.format !== 'date-time') return undefined; + if (!options.path?.startsWith('#/components/schemas/')) return undefined; + + // A fresh node per call. The TypeScript factory does not support placing one node instance at several + // positions of the same tree, and this transform is invoked once per date-time schema. + const date = ts.factory.createTypeReferenceNode(ts.factory.createIdentifier('Date')); + + // OpenAPI 3.1 spells nullability as `type: ['string', 'null']` rather than `nullable: true`. + const isNullable = Array.isArray(schemaObject.type) && schemaObject.type.includes('null'); + if (!isNullable) return date; + + return ts.factory.createUnionTypeNode([date, ts.factory.createLiteralTypeNode(ts.factory.createNull())]); +} + +/** + * Rewrites `](/api/v2/foo)` into `](https://docs.apify.com/api/v2/foo)`, leaving protocol-relative + * `](//host)` alone. + * + * The spec's descriptions are copied verbatim into JSDoc, where TypeDoc resolves a root-relative link + * against the API-reference `baseUrl` and produces a broken `/api/client/js/api/v2/...` URL that the docs + * link checker flags. + */ +export function absolutizeDocLinks(source: string): string { + return source.replaceAll(/\]\(\/(?!\/)/g, `](${DOCS_BASE_URL}/`); +} diff --git a/src/generated/api.ts b/src/generated/api.ts new file mode 100644 index 000000000..0084143af --- /dev/null +++ b/src/generated/api.ts @@ -0,0 +1,20519 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + "/v2/actors": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of Actors + * @description Gets the list of all Actors that the user created or used. The response is a + * list of objects, where each object contains a basic information about a single Actor. + * + * To only get Actors created by the user, add the `my=1` query parameter. + * + * The endpoint supports pagination using the `limit` and `offset` parameters + * and it will not return more than 1000 records. + * + * By default, the records are sorted by the `createdAt` field in ascending + * order, therefore you can use pagination to incrementally fetch all Actors while new + * ones are still being created. To sort the records in descending order, use the `desc=1` parameter. + * + * You can also sort by your last run by using the `sortBy=stats.lastRunStartedAt` query parameter. + * In this case, descending order means the most recently run Actor appears first. + */ + get: operations["actors_get"]; + put?: never; + /** + * Create Actor + * @description Creates an Actor with the settings specified in an `Actor` object passed as + * JSON in the POST payload. + * + * Returns the full `Actor` object, the same as the + * [Get Actor](https://docs.apify.com/api/v2/actor-get) endpoint. + * + * In the HTTP request, set the `Content-Type` header to `application/json`. + * + * ### Define a source code version + * + * An Actor must specify at least one version of the source code. + * For details, see [Actor versions](https://docs.apify.com/api/v2/actors-actor-versions). + * + * ### Create a public Actor + * + * To make your Actor [public](https://docs.apify.com/platform/actors/publishing): + * - Set `isPublic` to `true`. + * - Provide `title` and `categories`. For reference, see [constants from the `apify-shared-js` + * package](https://github.com/apify/apify-shared-js/blob/2d43ebc41ece9ad31cd6525bd523fb86939bf860/packages/consts/src/consts.ts#L452-L471) + */ + post: operations["actors_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Actor + * @description Gets an object that contains all the details about the Actor with the specified ID. + */ + get: operations["actor_get"]; + /** + * Update Actor + * @description Updates an Actor's settings with the values specified in an `Actor` object + * passed as JSON in the POST payload. Only the fields specified in the request body are updated. + * + * Returns the full `Actor` object, the same as the + * [Get Actor](https://docs.apify.com/api/v2/actor-get) endpoint. + * + * In the HTTP request, set the `Content-Type` header to `application/json`. + * + * ### Authentication + * + * To provide the authentication token, we recommend using the request's + * `Authorization` header, rather than the URL. For details, + * see [Authentication](https://docs.apify.com/api/v2/getting-started#authentication). + * + * ### Make an Actor public + * + * To make your Actor [public](https://docs.apify.com/platform/actors/publishing): + * - Set `isPublic` to `true`. + * - Provide `title` and `categories`. For reference, see [constants from the `apify-shared-js` + * package](https://github.com/apify/apify-shared-js/blob/2d43ebc41ece9ad31cd6525bd523fb86939bf860/packages/consts/src/consts.ts#L452-L471) + * + * ### Update build tags + * + * To change tags assigned to Actor builds, use the `taggedBuilds` object. It's a dictionary that maps tag names + * to specific builds, where: + * - the key is the tag name, for example `latest` or `beta` + * - the value is either `null` or an object with a build ID + * + * Changing tags is a patch operation. Only the tags that you provide in this object are updated. + * + * Note that you can assign multiple tags to a single build, but you can't assign the same tag to multiple builds. + * + * - To create or reassign a tag, provide the tag name with a build ID. For example, to assign + * the `latest` tag to a build, use: + * + * ```json + * { + * "latest": { "buildId": "z2EryhbfhgSyqj6Hn" } + * } + * ``` + * + * - To remove a tag from a build, provide the tag name with a `null` value. For example, to remove the `beta` tag, use: + * + * ```json + * { + * "beta": null + * } + * ``` + * + * - You can perform multiple actions at once. The following example reassigns `latest` + * and removes `beta`, while preserving other existing tags: + * + * ```json + * { + * "latest": { "buildId": "z2EryhbfhgSyqj6Hn" }, + * "beta": null + * } + * ``` + */ + put: operations["actor_put"]; + post?: never; + /** + * Delete Actor + * @description Deletes an Actor with the specified ID. + */ + delete: operations["actor_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/versions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of versions + * @description Gets the list of versions of a specific Actor. The response is a JSON object + * with the list of [Version objects](#/reference/actors/version-object), where each + * contains basic information about a single version. + */ + get: operations["actor_versions_get"]; + put?: never; + /** + * Create version + * @description Creates a version of an Actor using values specified in a [Version + * object](#/reference/actors/version-object) passed as JSON in the POST + * payload. + * + * The request must specify `versionNumber` and `sourceType` parameters (as + * strings) in the JSON payload and a `Content-Type: application/json` HTTP + * header. + * + * Each `sourceType` requires its own additional properties to be passed to the + * JSON payload object. These are outlined in the [Version + * object](#/reference/actors/version-object) table below and in more detail in + * the [Apify + * documentation](https://docs.apify.com/platform/actors/development/deployment/source-types). + * + * For example, if an Actor's source code is stored in a [GitHub + * repository](https://docs.apify.com/platform/actors/development/deployment/source-types#git-repository), + * you will set the `sourceType` to `GIT_REPO` and pass the repository's URL in + * the `gitRepoUrl` property. + * + * ``` + * { + * "versionNumber": "0.1", + * "sourceType": "GIT_REPO", + * "gitRepoUrl": "https://github.com/my-github-account/actor-repo" + * } + * ``` + * + * The response is the [Version object](#/reference/actors/version-object) as + * returned by the [Get version](#/reference/actors/version-object/get-version) endpoint. + */ + post: operations["actor_versions_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/versions/{versionNumber}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get version + * @description Gets a [Version object](#/reference/actors/version-object) that contains all the details about a specific version of an Actor. + */ + get: operations["actor_version_get"]; + /** + * Update version + * @description Updates Actor version using values specified by a [Version object](#/reference/actors/version-object) passed as JSON in the POST payload. + * + * If the object does not define a specific property, its value will not be + * updated. + * + * The request needs to specify the `Content-Type: application/json` HTTP + * header! + * + * When providing your API authentication token, we recommend using the + * request's `Authorization` header, rather than the URL. ([More + * info](#/introduction/authentication)). + * + * The response is the [Version object](#/reference/actors/version-object) as + * returned by the [Get version](#/reference/actors/version-object/get-version) endpoint. + */ + put: operations["actor_version_put"]; + /** + * Update version (POST) + * @description Updates Actor version using values specified by a [Version object](#/reference/actors/version-object) passed as JSON in the POST payload. + * This endpoint is an alias for the [`PUT` update version](#tag/ActorsVersion-object/operation/act_version_put) method and behaves identically. + */ + post: operations["actor_version_post"]; + /** + * Delete version + * @description Deletes a specific version of Actor's source code. + */ + delete: operations["actor_version_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/versions/{versionNumber}/env-vars": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of environment variables + * @description Gets the list of environment variables for a specific version of an Actor. + * The response is a JSON object with the list of [EnvVar objects](#/reference/actors/environment-variable-object), where each contains basic information about a single environment variable. + */ + get: operations["actor_version_envVars_get"]; + put?: never; + /** + * Create environment variable + * @description Creates an environment variable of an Actor using values specified in a + * [EnvVar object](#/reference/actors/environment-variable-object) passed as + * JSON in the POST payload. + * + * The request must specify `name` and `value` parameters (as strings) in the + * JSON payload and a `Content-Type: application/json` HTTP header. + * + * ``` + * { + * "name": "ENV_VAR_NAME", + * "value": "my-env-var" + * } + * ``` + * + * The response is the [EnvVar + * object](#/reference/actors/environment-variable-object) as returned by the [Get environment + * variable](#/reference/actors/environment-variable-object/get-environment-variable) + * endpoint. + */ + post: operations["actor_version_envVars_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/versions/{versionNumber}/env-vars/{envVarName}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get environment variable + * @description Gets a [EnvVar object](#/reference/actors/environment-variable-object) that + * contains all the details about a specific environment variable of an Actor. + * + * If `isSecret` is set to `true`, then `value` will never be returned. + */ + get: operations["actor_version_envVar_get"]; + /** + * Update environment variable + * @description Updates Actor environment variable using values specified by a [EnvVar + * object](#/reference/actors/environment-variable-object) + * passed as JSON in the POST payload. + * If the object does not define a specific property, its value will not be + * updated. + * + * The request needs to specify the `Content-Type: application/json` HTTP + * header! + * + * When providing your API authentication token, we recommend using the + * request's `Authorization` header, rather than the URL. ([More + * info](#/introduction/authentication)). + * + * The response is the [EnvVar object](#/reference/actors/environment-variable-object) as returned by the + * [Get environment variable](#/reference/actors/environment-variable-object/get-environment-variable) + * endpoint. + */ + put: operations["actor_version_envVar_put"]; + /** + * Update environment variable (POST) + * @description Updates Actor environment variable using values specified by a [EnvVar + * object](#/reference/actors/environment-variable-object) + * passed as JSON in the POST payload. + * This endpoint is an alias for the [`PUT` update environment variable](#tag/ActorsEnvironment-variable-object/operation/act_version_envVar_put) method and behaves identically. + */ + post: operations["actor_version_envVar_post"]; + /** + * Delete environment variable + * @description Deletes a specific environment variable. + */ + delete: operations["actor_version_envVar_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/webhooks": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of webhooks + * @description Gets the list of webhooks of a specific Actor. The response is a JSON with + * the list of objects, where each object contains basic information about a single webhook. + * + * The endpoint supports pagination using the `limit` and `offset` parameters + * and it will not return more than 1000 records. + * + * By default, the records are sorted by the `createdAt` field in ascending + * order, to sort the records in descending order, use the `desc=1` parameter. + */ + get: operations["actor_webhooks_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/builds": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of builds + * @description Gets the list of builds of a specific Actor. The response is a JSON with the + * list of objects, where each object contains basic information about a single build. + * + * The endpoint supports pagination using the `limit` and `offset` parameters + * and it will not return more than 1000 records. + * + * By default, the records are sorted by the `startedAt` field in ascending order, + * therefore you can use pagination to incrementally fetch all builds while new + * ones are still being started. To sort the records in descending order, use + * the `desc=1` parameter. + */ + get: operations["actors_builds_get"]; + put?: never; + /** + * Build Actor + * @description Builds an Actor. + * The response is the build object as returned by the + * [Get build](#/reference/actors/build-object/get-build) endpoint. + */ + post: operations["actors_builds_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/builds/default": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get default build + * @description Get the default build for an Actor. + * + * Use the optional `waitForFinish` parameter to synchronously wait for the build to finish. + * This avoids the need for periodic polling when waiting for the build to complete. + * + * This endpoint does not require an authentication token. Instead, calls are authenticated using the Actor's unique ID. + * However, if you access the endpoint without a token, certain attributes (e.g., `usageUsd` and `usageTotalUsd`) will be hidden. + */ + get: operations["actor_build_default_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/builds/{buildId}/openapi.json": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get OpenAPI definition + * @description Get the OpenAPI definition for Actor builds. Two similar endpoints are available: + * + * - [First endpoint](https://docs.apify.com/api/v2/actor-openapi-json-get): Requires both `actorId` and `buildId`. Use `default` as the `buildId` to get the OpenAPI schema for the default Actor build. + * + * - [Second endpoint](https://docs.apify.com/api/v2/actor-build-openapi-json-get): Requires only `buildId`. + * + * Get the OpenAPI definition for a specific Actor build. + * + * To fetch the default Actor build, simply pass `default` as the `buildId`. + * Authentication is based on the build's unique ID. No authentication token is required. + * + * :::note + * + * You can also use the [`/api/v2/actor-build-openapi-json-get`](https://docs.apify.com/api/v2/actor-build-openapi-json-get) endpoint to get the OpenAPI definition for a build. + * + * ::: + */ + get: operations["actor_openapi_json_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/builds/{buildId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get build + * @deprecated + * @description By passing the optional `waitForFinish` parameter the API endpoint will + * synchronously wait for the build to finish. + * This is useful to avoid periodic polling when waiting for an Actor build to + * finish. + * + * This endpoint does not require the authentication token. Instead, calls are authenticated using a hard-to-guess ID of the build. However, + * if you access the endpoint without the token, certain attributes, such as `usageUsd` and `usageTotalUsd`, will be hidden. + */ + get: operations["actors_build_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/builds/{buildId}/abort": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Abort build + * @deprecated + * @description **[DEPRECATED]** API endpoints related to build of the Actor were moved + * under new namespace [`actor-builds`](#/reference/actor-builds). Aborts an + * Actor build and returns an object that contains all the details about the + * build. + * + * Only builds that are starting or running are aborted. For builds with status + * `FINISHED`, `FAILED`, `ABORTING` and `TIMED-OUT` this call does nothing. + */ + post: operations["actors_build_abort_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of runs + * @description Gets the list of runs of a specific Actor. The response is a list of + * objects, where each object contains basic information about a single Actor run. + * + * The endpoint supports pagination using the `limit` and `offset` parameters + * and it will not return more than 1000 array elements. + * + * By default, the records are sorted by the `startedAt` field in ascending + * order, therefore you can use pagination to incrementally fetch all records while + * new ones are still being created. To sort the records in descending order, use + * `desc=1` parameter. You can also filter runs by status ([available + * statuses](https://docs.apify.com/platform/actors/running/runs-and-builds#lifecycle)). + */ + get: operations["actors_runs_get"]; + put?: never; + /** + * Run Actor + * @description Runs an Actor and immediately returns without waiting for the run to finish. + * + * The POST payload including its `Content-Type` header is passed as `INPUT` to + * the Actor (usually `application/json`). + * + * The Actor is started with the default options; you can override them using + * various URL query parameters. + * + * The response is the Run object as returned by the [Get + * run](#/reference/actor-runs/run-object-and-its-storages/get-run) API + * endpoint. + * + * If you want to wait for the run to finish and receive the actual output of + * the Actor as the response, please use one of the [Run Actor + * synchronously](#/reference/actors/run-actor-synchronously) API endpoints + * instead. + * + * To fetch the Actor run results that are typically stored in the default + * dataset, you'll need to pass the ID received in the `defaultDatasetId` field + * received in the response JSON to the [Get dataset items](#/reference/datasets/item-collection/get-items) + * API endpoint. + */ + post: operations["actors_runs_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/run-sync": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Run Actor synchronously without input + * @description Runs a specific Actor and returns a key-value store record. The response contains the + * record stored under the `OUTPUT` key in the run's default key-value store. + * This is a legacy approach that has been replaced by the Actor + * [output object](https://docs.apify.com/platform/actors/development/actor-definition/output-schema#output-object-definition); + * the record may not exist, in which case the response contains no data. Use the + * `outputRecordKey` query parameter to return a different record. + * The run must finish in 300 seconds + * otherwise the API endpoint returns a timeout error. + * The Actor is not passed any input. + * + * Beware that it might be impossible to maintain an idle HTTP connection for a + * long period of time, + * due to client timeout or network conditions. Make sure your HTTP client is + * configured to have a long enough connection timeout. + * If the connection breaks, you will not receive any information about the run + * and its status. + * + * To run the Actor asynchronously, use the [Run + * Actor](#/reference/actors/run-collection/run-actor) API endpoint instead. + */ + get: operations["actor_runSync_get"]; + put?: never; + /** + * Run Actor synchronously and return key-value store record + * @description Runs a specific Actor and returns a key-value store record. + * + * The POST payload including its `Content-Type` header is passed as `INPUT` to + * the Actor (usually application/json). + * + * The response contains the record stored under the `OUTPUT` key in the run's + * default key-value store. This is a legacy approach that has been replaced by + * the Actor [output object](https://docs.apify.com/platform/actors/development/actor-definition/output-schema#output-object-definition); + * Actors aren't required to store a record under this key, so the response may + * not contain any data. Use the `outputRecordKey` query parameter to return a + * different record. + * + * The Actor is started with the default options; you can override them using + * various URL query parameters. + * If the Actor run exceeds 300 seconds, + * the HTTP response will have status 408 (Request Timeout). + * + * Beware that it might be impossible to maintain an idle HTTP connection for a + * long period of time, due to client timeout or network conditions. Make sure your HTTP client is + * configured to have a long enough connection timeout. + * If the connection breaks, you will not receive any information about the run + * and its status. + * + * To run the Actor asynchronously, use the [Run + * Actor](#/reference/actors/run-collection/run-actor) API endpoint instead. + */ + post: operations["actor_runSync_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/run-sync-get-dataset-items": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Run Actor synchronously without input and get dataset items + * @description Runs a specific Actor and returns its dataset items. + * The run must finish in 300 seconds + * otherwise the API endpoint returns a timeout error. + * The Actor is not passed any input. + * + * It allows to send all possible options in parameters from [Get Dataset + * Items](#/reference/datasets/item-collection/get-items) API endpoint. + * + * Beware that it might be impossible to maintain an idle HTTP connection for a + * long period of time, + * due to client timeout or network conditions. Make sure your HTTP client is + * configured to have a long enough connection timeout. + * If the connection breaks, you will not receive any information about the run + * and its status. + * + * To run the Actor asynchronously, use the [Run + * Actor](#/reference/actors/run-collection/run-actor) API endpoint instead. + */ + get: operations["actor_runSyncGetDatasetItems_get"]; + put?: never; + /** + * Run Actor synchronously and get dataset items + * @description Runs a specific Actor and returns its dataset items. + * + * The POST payload including its `Content-Type` header is passed as `INPUT` to + * the Actor (usually `application/json`). + * The HTTP response contains the Actors dataset items, while the format of + * items depends on specifying dataset items' `format` parameter. + * + * You can send all the same options in parameters as the [Get Dataset + * Items](#/reference/datasets/item-collection/get-items) API endpoint. + * + * The Actor is started with the default options; you can override them using + * URL query parameters. + * If the Actor run exceeds 300 seconds, + * the HTTP response will return the 408 status code (Request Timeout). + * + * Beware that it might be impossible to maintain an idle HTTP connection for a + * long period of time, + * due to client timeout or network conditions. Make sure your HTTP client is + * configured to have a long enough connection timeout. + * If the connection breaks, you will not receive any information about the run + * and its status. + * + * To run the Actor asynchronously, use the [Run + * Actor](#/reference/actors/run-collection/run-actor) API endpoint instead. + */ + post: operations["actor_runSyncGetDatasetItems_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/validate-input": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Validate Actor input + * @description Validates the provided input against the Actor's input schema for the specified build. + * + * The endpoint checks whether the JSON payload conforms to the input schema + * defined in the Actor's build. If no `build` query parameter is provided, + * the `latest` build tag is used by default. + */ + post: operations["actor_validateInput_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/{runId}/resurrect": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Resurrect run + * @description **[DEPRECATED]** API endpoints related to run of the Actor were moved under + * new namespace [`actor-runs`](#/reference/actor-runs).Resurrects a finished + * Actor run and returns an object that contains all the details about the + * resurrected run. + * + * Only finished runs, i.e. runs with status `FINISHED`, `FAILED`, `ABORTED` + * and `TIMED-OUT` can be resurrected. + * Run status will be updated to RUNNING and its container will be restarted + * with the same storages + * (the same behaviour as when the run gets migrated to the new server). + * + * For more information, see the [Actor + * docs](https://docs.apify.com/platform/actors/running/runs-and-builds#resurrection-of-finished-run). + */ + post: operations["actor_run_resurrect_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last run + * @description This is not a single endpoint, but an entire group of endpoints that lets you to + * retrieve and manage the last run of given Actor or any of its default storages. + * All the endpoints require an authentication token. + * + * The base path represents the last Actor run object is: + * + * `/v2/actors/{actorId}/runs/last{?token,status,origin}` + * + * Using the `status` query parameter you can ensure to only get a run with a certain status + * (e.g. `status=SUCCEEDED`). Similarly, the `origin` query parameter filters runs by the means + * by which they were started (e.g. `origin=API`). The output of this endpoint and other query + * parameters are the same as in the [Run object](#/reference/actors/run-object) endpoint. + * + * ##### Convenience endpoints for last Actor run + * + * * [Dataset](https://docs.apify.com/api/v2/last-actor-runs-default-dataset) + * + * * [Key-value store](https://docs.apify.com/api/v2/last-actor-runs-default-key-value-store) + * + * * [Request queue](https://docs.apify.com/api/v2/last-actor-runs-default-request-queue) + * + * * [Log](https://docs.apify.com/api/v2/last-actor-runs-log) + */ + get: operations["actor_runs_last_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/dataset": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last run's default dataset + * @description Returns the default dataset associated with the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultDatasetId` and then using the + * [Get dataset](https://docs.apify.com/api/v2/dataset-get) endpoint. + */ + get: operations["actor_runs_last_dataset_get"]; + /** + * Update last run's default dataset + * @description Updates the default dataset associated with the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultDatasetId` and then using the + * [Update dataset](https://docs.apify.com/api/v2/dataset-put) endpoint. + */ + put: operations["actor_runs_last_dataset_put"]; + post?: never; + /** + * Delete last run's default dataset + * @description Deletes the default dataset associated with the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultDatasetId` and then using the + * [Delete dataset](https://docs.apify.com/api/v2/dataset-delete) endpoint. + */ + delete: operations["actor_runs_last_dataset_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/dataset/items": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last run's dataset items + * @description Returns data stored in the default dataset of the last Actor run in the desired format. + * + * This endpoint is a shortcut that resolves the last run's `defaultDatasetId` and proxies to the + * [Get dataset items](https://docs.apify.com/api/v2/dataset-items-get) endpoint. + */ + get: operations["actor_runs_last_dataset_items_get"]; + put?: never; + /** + * Store items in last run's dataset + * @description Appends an item or an array of items to the end of the last Actor run's default dataset. + * + * This endpoint is a shortcut that resolves the last run's `defaultDatasetId` and proxies to the + * [Store items](https://docs.apify.com/api/v2/dataset-items-post) endpoint. + * + * To save bandwidth and speed up your upload, you can send the request payload compressed and set the `Content-Encoding` header accordingly. + * + * Below is a list of supported `Content-Encoding` types. + * + * * Brotli: `Content-Encoding: br` + * * Gzip: `Content-Encoding: gzip` + * * Deflate: `Content-Encoding: deflate` + */ + post: operations["actor_runs_last_dataset_items_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/dataset/statistics": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last run's dataset statistics + * @description Returns statistics for the last Actor run's default dataset. + * + * This endpoint is a shortcut that resolves the last run's `defaultDatasetId` and proxies to the + * [Get dataset statistics](https://docs.apify.com/api/v2/dataset-statistics-get) endpoint. + */ + get: operations["actor_runs_last_dataset_statistics_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/key-value-store": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last run's default store + * @description Gets an object that contains all the details about the default key-value store associated with the last Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultKeyValueStoreId` and then using the + * [Get store](https://docs.apify.com/api/v2/key-value-store-get) endpoint. + */ + get: operations["actor_runs_last_keyValueStore_get"]; + /** + * Update last run's default store + * @description Updates the last Actor run key-value store's name and general resource access level using a value specified by a JSON object + * passed in the PUT payload. + * + * This endpoint is a shortcut for getting the run's `defaultKeyValueStoreId` and then using the + * [Update store](https://docs.apify.com/api/v2/key-value-store-put) endpoint. + */ + put: operations["actor_runs_last_keyValueStore_put"]; + post?: never; + /** + * Delete last run's default store + * @description Deletes the last Actor run key-value store. + * + * This endpoint is a shortcut for getting the run's `defaultKeyValueStoreId` and then using the + * [Delete store](https://docs.apify.com/api/v2/key-value-store-delete) endpoint. + */ + delete: operations["actor_runs_last_keyValueStore_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/key-value-store/keys": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last run's default store's list of keys + * @description Returns a list of keys for the default key-value store of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultKeyValueStoreId` and then using the + * [Get list of keys](https://docs.apify.com/api/v2/key-value-store-keys-get) endpoint. + */ + get: operations["actor_runs_last_keyValueStore_keys_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/key-value-store/records": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Download last run's default store's records + * @description Downloads all records from the default key-value store of the last Actor run as a ZIP archive. + * + * This endpoint is a shortcut for getting the last run's `defaultKeyValueStoreId` and then using the + * [Download records](https://docs.apify.com/api/v2/key-value-store-records-get) endpoint. + */ + get: operations["actor_runs_last_keyValueStore_records_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/key-value-store/records/{recordKey}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last run's default store's record + * @description Gets a value stored under a specific key in the default key-value store of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultKeyValueStoreId` and then using the + * [Get record](https://docs.apify.com/api/v2/key-value-store-record-get) endpoint. + */ + get: operations["actor_runs_last_keyValueStore_record_get"]; + /** + * Store record in last run's default store + * @description Stores a value under a specific key in the default key-value store of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultKeyValueStoreId` and then using the + * [Store record](https://docs.apify.com/api/v2/key-value-store-record-put) endpoint. + */ + put: operations["actor_runs_last_keyValueStore_record_put"]; + /** + * Store record in last run's default store (POST) + * @description Stores a value under a specific key in the default key-value store of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultKeyValueStoreId` and then using the + * [Store record](https://docs.apify.com/api/v2/key-value-store-record-post) endpoint. + */ + post: operations["actor_runs_last_keyValueStore_record_post"]; + /** + * Delete last run's default store's record + * @description Removes a record specified by a key from the default key-value store of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultKeyValueStoreId` and then using the + * [Delete record](https://docs.apify.com/api/v2/key-value-store-record-delete) endpoint. + */ + delete: operations["actor_runs_last_keyValueStore_record_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/request-queue": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last run's default request queue + * @description Returns the default request queue associated with the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Get request queue](https://docs.apify.com/api/v2/request-queue-get) endpoint. + */ + get: operations["actor_runs_last_requestQueue_get"]; + /** + * Update last run's default request queue + * @description Updates the default request queue associated with the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Update request queue](https://docs.apify.com/api/v2/request-queue-put) endpoint. + */ + put: operations["actor_runs_last_requestQueue_put"]; + post?: never; + /** + * Delete last run's default request queue + * @description Deletes the default request queue associated with the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Delete request queue](https://docs.apify.com/api/v2/request-queue-delete) endpoint. + */ + delete: operations["actor_runs_last_requestQueue_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/request-queue/requests": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List last run's default request queue's requests + * @description Returns a list of requests from the default request queue of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [List requests](https://docs.apify.com/api/v2/request-queue-requests-get) endpoint. + */ + get: operations["actor_runs_last_requestQueue_requests_get"]; + put?: never; + /** + * Add request to last run's default request queue + * @description Adds a request to the default request queue of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Add request](https://docs.apify.com/api/v2/request-queue-requests-post) endpoint. + */ + post: operations["actor_runs_last_requestQueue_requests_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/request-queue/requests/batch": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Batch add requests to last run's default request queue + * @description Adds requests to the default request queue of the last Actor run in batch. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Add requests](https://docs.apify.com/api/v2/request-queue-requests-batch-post) endpoint. + */ + post: operations["actor_runs_last_requestQueue_requests_batch_post"]; + /** + * Batch delete requests from last run's default request queue + * @description Batch-deletes requests from the default request queue of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Delete requests](https://docs.apify.com/api/v2/request-queue-requests-batch-delete) endpoint. + */ + delete: operations["actor_runs_last_requestQueue_requests_batch_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/request-queue/requests/unlock": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Unlock requests in last run's default request queue + * @description Unlocks requests in the default request queue of the last Actor run that are currently locked by the client. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Unlock requests](https://docs.apify.com/api/v2/request-queue-requests-unlock-post) endpoint. + */ + post: operations["actor_runs_last_requestQueue_requests_unlock_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/request-queue/requests/{requestId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get request from last run's default request queue + * @description Returns a request from the default request queue of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Get request](https://docs.apify.com/api/v2/request-queue-request-get) endpoint. + */ + get: operations["actor_runs_last_requestQueue_request_get"]; + /** + * Update request in last run's default request queue + * @description Updates a request in the default request queue of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Update request](https://docs.apify.com/api/v2/request-queue-request-put) endpoint. + */ + put: operations["actor_runs_last_requestQueue_request_put"]; + post?: never; + /** + * Delete request from last run's default request queue + * @description Deletes a request from the default request queue of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Delete request](https://docs.apify.com/api/v2/request-queue-request-delete) endpoint. + */ + delete: operations["actor_runs_last_requestQueue_request_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/request-queue/requests/{requestId}/lock": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + /** + * Prolong lock on request in last run's default request queue + * @description Prolongs a request lock in the default request queue of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Prolong request lock](https://docs.apify.com/api/v2/request-queue-request-lock-put) endpoint. + */ + put: operations["actor_runs_last_requestQueue_request_lock_put"]; + post?: never; + /** + * Delete lock on request in last run's default request queue + * @description Deletes a request lock in the default request queue of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Delete request lock](https://docs.apify.com/api/v2/request-queue-request-lock-delete) endpoint. + */ + delete: operations["actor_runs_last_requestQueue_request_lock_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/request-queue/head": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last run's default request queue head + * @description Returns the given number of first requests from the default request queue of the last Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Get head](https://docs.apify.com/api/v2/request-queue-head-get) endpoint. + */ + get: operations["actor_runs_last_requestQueue_head_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/request-queue/head/lock": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Get and lock last run's default request queue head + * @description Returns the given number of first requests from the default request queue of the last Actor run + * and locks them for the given time. + * + * This endpoint is a shortcut for getting the last run's `defaultRequestQueueId` and then using the + * [Get head and lock](https://docs.apify.com/api/v2/request-queue-head-lock-post) endpoint. + */ + post: operations["actor_runs_last_requestQueue_head_lock_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/log": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last Actor run's log + * @description Retrieves last Actor run's logs. + * + * This endpoint is a shortcut for getting last Actor run's log. Same as [Get log](https://docs.apify.com/api/v2/log-get) endpoint. + */ + get: operations["actor_runs_last_log_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/abort": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Abort Actor's last run + * @description Aborts the last run of the specified Actor and returns an object that + * contains all the details about the run. + * + * This endpoint is a shortcut for [Abort run](#/reference/actor-runs/abort-run/abort-run) + * on the Actor's last run. Only runs that are starting or running are aborted. + * For runs with status `FINISHED`, `FAILED`, `ABORTING` and `TIMED-OUT` this call + * does nothing. + */ + post: operations["actor_runs_last_abort_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/metamorph": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Metamorph Actor's last run + * @description Transforms the last run of the specified Actor into a run of another Actor with + * a new input. + * + * This endpoint is a shortcut for [Metamorph run](#/reference/actor-runs/metamorph-run/metamorph-run) + * on the Actor's last run. + */ + post: operations["actor_runs_last_metamorph_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/last/reboot": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Reboot Actor's last run + * @description Reboots the last run of the specified Actor and returns an object that + * contains all the details about the rebooted run. + * + * This endpoint is a shortcut for [Reboot run](#/reference/actor-runs/reboot-run/reboot-run) + * on the Actor's last run. Only runs with status `RUNNING` can be rebooted. The run's + * container will be restarted, so any data not persisted in the key-value store, dataset, + * or request queue will be lost. + */ + post: operations["actor_runs_last_reboot_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/{runId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get run + * @deprecated + * @description **[DEPRECATED]** API endpoints related to run of the Actor were moved under + * new namespace [`actor-runs`](#/reference/actor-runs). + * + * Gets an object that contains all the details about a specific run of an Actor. + * + * By passing the optional `waitForFinish` parameter the API endpoint will + * synchronously wait for the run to finish. + * This is useful to avoid periodic polling when waiting for Actor run to + * complete. + * + * This endpoint does not require the authentication token. Instead, calls are authenticated using a hard-to-guess ID of the run. However, + * if you access the endpoint without the token, certain attributes, such as `usageUsd` and `usageTotalUsd`, will be hidden. + */ + get: operations["actors_run_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/{runId}/abort": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Abort run + * @deprecated + * @description **[DEPRECATED]** API endpoints related to run of the Actor were moved under + * new namespace [`actor-runs`](#/reference/actor-runs). Aborts an Actor run and + * returns an object that contains all the details about the run. + * + * Only runs that are starting or running are aborted. For runs with status + * `FINISHED`, `FAILED`, `ABORTING` and `TIMED-OUT` this call does nothing. + */ + post: operations["actors_run_abort_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actors/{actorId}/runs/{runId}/metamorph": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Metamorph run + * @deprecated + * @description **[DEPRECATED]** API endpoints related to run of the Actor were moved under + * new namespace [`actor-runs`](#/reference/actor-runs). Transforms an Actor run + * into a run of another Actor with a new input. + * + * This is useful if you want to use another Actor to finish the work + * of your current Actor run, without the need to create a completely new run + * and waiting for its finish. + * For the users of your Actors, the metamorph operation is transparent, they + * will just see your Actor got the work done. + * + * There is a limit on how many times you can metamorph a single run. You can + * check the limit in [the Actor runtime limits](https://docs.apify.com/platform/limits#actor-limits). + * + * Internally, the system stops the Docker container corresponding to the Actor + * run and starts a new container using a different Docker image. + * All the default storages are preserved and the new input is stored under the + * `INPUT-METAMORPH-1` key in the same default key-value store. + * + * For more information, see the [Actor docs](https://docs.apify.com/platform/actors/development/programming-interface/metamorph). + */ + post: operations["actors_run_metamorph_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of tasks + * @description Gets the complete list of tasks that a user has created or used. + * + * The response is a list of objects in which each object contains essential + * information about a single task. + * + * The endpoint supports pagination using the `limit` and `offset` parameters, + * and it does not return more than a 1000 records. + * + * By default, the records are sorted by the `createdAt` field in ascending + * order; therefore you can use pagination to incrementally fetch all tasks while new + * ones are still being created. To sort the records in descending order, use + * the `desc=1` parameter. + */ + get: operations["actorTasks_get"]; + put?: never; + /** + * Create task + * @description Create a new task with settings specified by the object passed as JSON in + * the POST payload. + * + * The response is the full task object as returned by the + * [Get task](https://docs.apify.com/api/v2/actor-task-get) endpoint. + * + * The request needs to specify the `Content-Type: application/json` HTTP header! + * + * When providing your API authentication token, we recommend using the + * request's `Authorization` header, rather than the URL. + */ + post: operations["actorTasks_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get task + * @description Get an object that contains all the details about a task. + */ + get: operations["actorTask_get"]; + /** + * Update task + * @description Update settings of a task using values specified by an object passed as JSON + * in the POST payload. + * + * If the object does not define a specific property, its value is not updated. + * + * The response is the full task object as returned by the + * [Get task](https://docs.apify.com/api/v2/actor-task-get) endpoint. + * + * The request needs to specify the `Content-Type: application/json` HTTP + * header! + * + * When providing your API authentication token, we recommend using the + * request's `Authorization` header, rather than the URL. + */ + put: operations["actorTask_put"]; + post?: never; + /** + * Delete task + * @description Delete the task specified through the `actorTaskId` parameter. + */ + delete: operations["actorTask_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/input": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get task input + * @description Returns the input of a given task. + */ + get: operations["actorTask_input_get"]; + /** + * Update task input + * @description Updates the input of a task using values specified by an object passed as + * JSON in the PUT payload. + * + * If the object does not define a specific property, its value is not updated. + * + * The response is the full task input as returned by the + * [Get task input](#/reference/tasks/task-input-object/get-task-input) endpoint. + * + * The request needs to specify the `Content-Type: application/json` HTTP + * header! + * + * When providing your API authentication token, we recommend using the + * request's `Authorization` header, rather than the URL. ([More + * info](#/introduction/authentication)). + */ + put: operations["actorTask_input_put"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/webhooks": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of webhooks + * @description Gets the list of webhooks of a specific Actor task. The response is a JSON + * with the list of objects, where each object contains basic information about a single webhook. + * + * The endpoint supports pagination using the `limit` and `offset` parameters + * and it will not return more than 1000 records. + * + * By default, the records are sorted by the `createdAt` field in ascending + * order, to sort the records in descending order, use the `desc=1` parameter. + */ + get: operations["actorTask_webhooks_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of task runs + * @description Get a list of runs of a specific task. The response is a list of objects, + * where each object contains essential information about a single task run. + * + * The endpoint supports pagination using the `limit` and `offset` parameters, + * and it does not return more than a 1000 array elements. + * + * By default, the records are sorted by the `startedAt` field in ascending + * order; therefore you can use pagination to incrementally fetch all records while + * new ones are still being created. To sort the records in descending order, use + * the `desc=1` parameter. You can also filter runs by status ([available + * statuses](https://docs.apify.com/platform/actors/running/runs-and-builds#lifecycle)). + */ + get: operations["actorTask_runs_get"]; + put?: never; + /** + * Run task + * @description Runs an Actor task and immediately returns without waiting for the run to + * finish. + * + * Optionally, you can override the Actor input configuration by passing a JSON + * object as the POST payload and setting the `Content-Type: application/json` HTTP header. + * + * Note that if the object in the POST payload does not define a particular + * input property, the Actor run uses the default value defined by the task (or Actor's input + * schema if not defined by the task). + * + * The response is the Actor Run object as returned by the [Get + * run](#/reference/actor-runs/run-object-and-its-storages/get-run) endpoint. + * + * If you want to wait for the run to finish and receive the actual output of + * the Actor run as the response, use one of the [Run task + * synchronously](#/reference/actor-tasks/run-task-synchronously) API endpoints + * instead. + * + * To fetch the Actor run results that are typically stored in the default + * dataset, you'll need to pass the ID received in the `defaultDatasetId` field + * received in the response JSON to the + * [Get dataset items](#/reference/datasets/item-collection/get-items) API endpoint. + */ + post: operations["actorTask_runs_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/run-sync": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Run task synchronously + * @description Runs an Actor task and synchronously returns a key-value store record. + * + * The response contains the record stored under the `OUTPUT` key in the run's + * default key-value store. This is a legacy approach that has been replaced by + * the Actor [output object](https://docs.apify.com/platform/actors/development/actor-definition/output-schema#output-object-definition); + * Actors aren't required to store a record under this key, so the response may + * not contain any data. Use the `outputRecordKey` query parameter to return a + * different record. + * + * The run must finish in 300 seconds + * otherwise the HTTP request fails with a timeout error (this won't abort + * the run itself). + * + * Beware that it might be impossible to maintain an idle HTTP connection for + * an extended period, due to client timeout or network conditions. Make sure your HTTP client is + * configured to have a long enough connection timeout. + * + * If the connection breaks, you will not receive any information about the run + * and its status. + * + * To run the Task asynchronously, use the + * [Run task asynchronously](#/reference/actor-tasks/run-collection/run-task) + * endpoint instead. + */ + get: operations["actorTask_runSync_get"]; + put?: never; + /** + * Run task synchronously + * @description Runs an Actor task and synchronously returns a key-value store record. + * + * The response contains the record stored under the `OUTPUT` key in the run's + * default key-value store. This is a legacy approach that has been replaced by + * the Actor [output object](https://docs.apify.com/platform/actors/development/actor-definition/output-schema#output-object-definition); + * Actors aren't required to store a record under this key, so the response may + * not contain any data. Use the `outputRecordKey` query parameter to return a + * different record. + * + * The run must finish in 300 seconds + * otherwise the HTTP request fails with a timeout error (this won't abort + * the run itself). + * + * Optionally, you can override the Actor input configuration by passing a JSON + * object as the POST payload and setting the `Content-Type: application/json` HTTP header. + * + * Note that if the object in the POST payload does not define a particular + * input property, the Actor run uses the default value defined by the task (or Actor's input + * schema if not defined by the task). + * + * Beware that it might be impossible to maintain an idle HTTP connection for + * an extended period, due to client timeout or network conditions. Make sure your HTTP client is + * configured to have a long enough connection timeout. + * + * If the connection breaks, you will not receive any information about the run + * and its status. + * + * Input fields from Actor task configuration can be overloaded with values + * passed as the POST payload. + * + * Just make sure to specify `Content-Type` header to be `application/json` and + * input to be an object. + * + * To run the task asynchronously, use the [Run + * task](#/reference/actor-tasks/run-collection/run-task) API endpoint instead. + */ + post: operations["actorTask_runSync_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/run-sync-get-dataset-items": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Run task synchronously and get dataset items + * @description Run a specific task and return its dataset items. + * + * The run must finish in 300 seconds + * otherwise the HTTP request fails with a timeout error (this won't abort + * the run itself). + * + * You can send all the same options in parameters as the [Get Dataset + * Items](#/reference/datasets/item-collection/get-items) API endpoint. + * + * Beware that it might be impossible to maintain an idle HTTP connection for + * an extended period, due to client timeout or network conditions. Make sure your HTTP client is + * configured to have a long enough connection timeout. + * + * If the connection breaks, you will not receive any information about the run + * and its status. + * + * To run the Task asynchronously, use the [Run task + * asynchronously](#/reference/actor-tasks/run-collection/run-task) endpoint + * instead. + */ + get: operations["actorTask_runSyncGetDatasetItems_get"]; + put?: never; + /** + * Run task synchronously and get dataset items + * @description Runs an Actor task and synchronously returns its dataset items. + * + * The run must finish in 300 seconds + * otherwise the HTTP request fails with a timeout error (this won't abort + * the run itself). + * + * Optionally, you can override the Actor input configuration by passing a JSON + * object as the POST payload and setting the `Content-Type: application/json` HTTP header. + * + * Note that if the object in the POST payload does not define a particular + * input property, the Actor run uses the default value defined by the task (or the Actor's + * input schema if not defined by the task). + * + * You can send all the same options in parameters as the [Get Dataset + * Items](#/reference/datasets/item-collection/get-items) API endpoint. + * + * Beware that it might be impossible to maintain an idle HTTP connection for + * an extended period, due to client timeout or network conditions. Make sure your HTTP client is + * configured to have a long enough connection timeout. + * + * If the connection breaks, you will not receive any information about the run + * and its status. + * + * Input fields from Actor task configuration can be overloaded with values + * passed as the POST payload. + * + * Just make sure to specify the `Content-Type` header as `application/json` + * and that the input is an object. + * + * To run the task asynchronously, use the [Run + * task](#/reference/actor-tasks/run-collection/run-task) API endpoint instead. + */ + post: operations["actorTask_runSyncGetDatasetItems_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last run + * @description This is not a single endpoint, but an entire group of endpoints that lets you to + * retrieve and manage the last run of given actor task or any of its default storages. + * All the endpoints require an authentication token. + * + * The base path represents the last actor task run object is: + * + * `/v2/actor-tasks/{actorTaskId}/runs/last{?token,status,origin}` + * + * Using the `status` query parameter you can ensure to only get a run with a certain status + * (e.g. `status=SUCCEEDED`). Similarly, the `origin` query parameter filters runs by the means + * by which they were started (e.g. `origin=API`). The output of this endpoint and other query + * parameters are the same as in the [Run object](https://docs.apify.com/api/v2/actor-run-get) endpoint. + * + * ##### Convenience endpoints for last Actor task run + * + * * [Dataset](https://docs.apify.com/api/v2/last-actor-task-runs-default-dataset) + * + * * [Key-value store](https://docs.apify.com/api/v2/last-actor-task-runs-default-key-value-store) + * + * * [Request queue](https://docs.apify.com/api/v2/last-actor-task-runs-default-request-queue) + * + * * [Log](https://docs.apify.com/api/v2/last-actor-task-runs-log) + */ + get: operations["actorTask_runs_last_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/log": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last Actor task run's log + * @description Retrieves last Actor task run's logs. + * + * This endpoint is a shortcut for getting last Actor task run's log. Same as [Get log](https://docs.apify.com/api/v2/log-get) endpoint. + */ + get: operations["actorTask_last_log_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/abort": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Abort Actor task's last run + * @description Aborts the last run of the specified Actor task and returns an object that + * contains all the details about the run. + * + * This endpoint is a shortcut for [Abort run](#/reference/actor-runs/abort-run/abort-run) + * on the Actor task's last run. Only runs that are starting or running are aborted. + * For runs with status `FINISHED`, `FAILED`, `ABORTING` and `TIMED-OUT` this call + * does nothing. + */ + post: operations["actorTask_runs_last_abort_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/metamorph": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Metamorph Actor task's last run + * @description Transforms the last run of the specified Actor task into a run of another Actor with + * a new input. + * + * This endpoint is a shortcut for [Metamorph run](#/reference/actor-runs/metamorph-run/metamorph-run) + * on the Actor task's last run. + */ + post: operations["actorTask_runs_last_metamorph_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/reboot": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Reboot Actor task's last run + * @description Reboots the last run of the specified Actor task and returns an object that + * contains all the details about the rebooted run. + * + * This endpoint is a shortcut for [Reboot run](#/reference/actor-runs/reboot-run/reboot-run) + * on the Actor task's last run. Only runs with status `RUNNING` can be rebooted. The run's + * container will be restarted, so any data not persisted in the key-value store, dataset, + * or request queue will be lost. + */ + post: operations["actorTask_runs_last_reboot_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/dataset": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last task run's default dataset + * @description Returns the default dataset associated with the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultDatasetId` and then using the + * [Get dataset](https://docs.apify.com/api/v2/dataset-get) endpoint. + */ + get: operations["actorTask_runs_last_dataset_get"]; + /** + * Update last task run's default dataset + * @description Updates the default dataset associated with the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultDatasetId` and then using the + * [Update dataset](https://docs.apify.com/api/v2/dataset-put) endpoint. + */ + put: operations["actorTask_runs_last_dataset_put"]; + post?: never; + /** + * Delete last task run's default dataset + * @description Deletes the default dataset associated with the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultDatasetId` and then using the + * [Delete dataset](https://docs.apify.com/api/v2/dataset-delete) endpoint. + */ + delete: operations["actorTask_runs_last_dataset_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/dataset/items": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last task run's dataset items + * @description Returns data stored in the default dataset of the last Actor task run in the desired format. + * + * This endpoint is a shortcut that resolves the last task run's `defaultDatasetId` and proxies to the + * [Get dataset items](https://docs.apify.com/api/v2/dataset-items-get) endpoint. + */ + get: operations["actorTask_runs_last_dataset_items_get"]; + put?: never; + /** + * Store items in last task run's dataset + * @description Appends an item or an array of items to the end of the last Actor task run's default dataset. + * + * This endpoint is a shortcut that resolves the last task run's `defaultDatasetId` and proxies to the + * [Store items](https://docs.apify.com/api/v2/dataset-items-post) endpoint. + * + * To save bandwidth and speed up your upload, you can send the request payload compressed and set the `Content-Encoding` header accordingly. + * + * Below is a list of supported `Content-Encoding` types. + * + * * Brotli: `Content-Encoding: br` + * * Gzip: `Content-Encoding: gzip` + * * Deflate: `Content-Encoding: deflate` + */ + post: operations["actorTask_runs_last_dataset_items_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/dataset/statistics": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last task run's dataset statistics + * @description Returns statistics for the last Actor task run's default dataset. + * + * This endpoint is a shortcut that resolves the last task run's `defaultDatasetId` and proxies to the + * [Get dataset statistics](https://docs.apify.com/api/v2/dataset-statistics-get) endpoint. + */ + get: operations["actorTask_runs_last_dataset_statistics_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/key-value-store": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last task run's default store + * @description Gets an object that contains all the details about the default key-value store of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultKeyValueStoreId` and then using the + * [Get store](https://docs.apify.com/api/v2/key-value-store-get) endpoint. + */ + get: operations["actorTask_runs_last_keyValueStore_get"]; + /** + * Update last task run's default store + * @description Updates the default key-value store associated with the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultKeyValueStoreId` and then using the + * [Update store](https://docs.apify.com/api/v2/key-value-store-put) endpoint. + */ + put: operations["actorTask_runs_last_keyValueStore_put"]; + post?: never; + /** + * Delete last task run's default store + * @description Deletes the default key-value store of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultKeyValueStoreId` and then using the + * [Delete store](https://docs.apify.com/api/v2/key-value-store-delete) endpoint. + */ + delete: operations["actorTask_runs_last_keyValueStore_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/key-value-store/keys": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last task run's default store's list of keys + * @description Returns a list of keys for the default key-value store of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultKeyValueStoreId` and then using the + * [Get list of keys](https://docs.apify.com/api/v2/key-value-store-keys-get) endpoint. + */ + get: operations["actorTask_runs_last_keyValueStore_keys_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/key-value-store/records": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Download last task run's default store's records + * @description Downloads all records from the default key-value store of the last Actor task run as a ZIP archive. + * + * This endpoint is a shortcut for getting the last task run's `defaultKeyValueStoreId` and then using the + * [Download records](https://docs.apify.com/api/v2/key-value-store-records-get) endpoint. + */ + get: operations["actorTask_runs_last_keyValueStore_records_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/key-value-store/records/{recordKey}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last task run's default store's record + * @description Gets a value stored under a specific key in the default key-value store of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultKeyValueStoreId` and then using the + * [Get record](https://docs.apify.com/api/v2/key-value-store-record-get) endpoint. + */ + get: operations["actorTask_runs_last_keyValueStore_record_get"]; + /** + * Store record in last task run's default store + * @description Stores a value under a specific key in the default key-value store of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultKeyValueStoreId` and then using the + * [Store record](https://docs.apify.com/api/v2/key-value-store-record-put) endpoint. + */ + put: operations["actorTask_runs_last_keyValueStore_record_put"]; + /** + * Store record in last task run's default store (POST) + * @description Stores a value under a specific key in the default key-value store of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultKeyValueStoreId` and then using the + * [Store record](https://docs.apify.com/api/v2/key-value-store-record-post) endpoint. + */ + post: operations["actorTask_runs_last_keyValueStore_record_post"]; + /** + * Delete last task run's default store's record + * @description Removes a record specified by a key from the default key-value store of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultKeyValueStoreId` and then using the + * [Delete record](https://docs.apify.com/api/v2/key-value-store-record-delete) endpoint. + */ + delete: operations["actorTask_runs_last_keyValueStore_record_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/request-queue": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last task run's default request queue + * @description Returns the default request queue associated with the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Get request queue](https://docs.apify.com/api/v2/request-queue-get) endpoint. + */ + get: operations["actorTask_runs_last_requestQueue_get"]; + /** + * Update last task run's default request queue + * @description Updates the default request queue associated with the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Update request queue](https://docs.apify.com/api/v2/request-queue-put) endpoint. + */ + put: operations["actorTask_runs_last_requestQueue_put"]; + post?: never; + /** + * Delete last task run's default request queue + * @description Deletes the default request queue associated with the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Delete request queue](https://docs.apify.com/api/v2/request-queue-delete) endpoint. + */ + delete: operations["actorTask_runs_last_requestQueue_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/request-queue/head": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get last task run's default request queue head + * @description Returns the given number of first requests from the default request queue of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Get head](https://docs.apify.com/api/v2/request-queue-head-get) endpoint. + */ + get: operations["actorTask_runs_last_requestQueue_head_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/request-queue/head/lock": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Get and lock last task run's default request queue head + * @description Returns the given number of first requests from the default request queue of the last Actor task run + * and locks them for the given time. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Get head and lock](https://docs.apify.com/api/v2/request-queue-head-lock-post) endpoint. + */ + post: operations["actorTask_runs_last_requestQueue_head_lock_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/request-queue/requests": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List last task run's default request queue's requests + * @description Returns a list of requests from the default request queue of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [List requests](https://docs.apify.com/api/v2/request-queue-requests-get) endpoint. + */ + get: operations["actorTask_runs_last_requestQueue_requests_get"]; + put?: never; + /** + * Add request to last task run's default request queue + * @description Adds a request to the default request queue of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Add request](https://docs.apify.com/api/v2/request-queue-requests-post) endpoint. + */ + post: operations["actorTask_runs_last_requestQueue_requests_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/request-queue/requests/batch": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Batch add requests to last task run's default request queue + * @description Adds requests to the default request queue of the last Actor task run in batch. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Add requests](https://docs.apify.com/api/v2/request-queue-requests-batch-post) endpoint. + */ + post: operations["actorTask_runs_last_requestQueue_requests_batch_post"]; + /** + * Batch delete requests from last task run's default request queue + * @description Batch-deletes requests from the default request queue of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Delete requests](https://docs.apify.com/api/v2/request-queue-requests-batch-delete) endpoint. + */ + delete: operations["actorTask_runs_last_requestQueue_requests_batch_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/request-queue/requests/unlock": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Unlock requests in last task run's default request queue + * @description Unlocks requests in the default request queue of the last Actor task run that are currently locked by the client. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Unlock requests](https://docs.apify.com/api/v2/request-queue-requests-unlock-post) endpoint. + */ + post: operations["actorTask_runs_last_requestQueue_requests_unlock_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/request-queue/requests/{requestId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get request from last task run's default request queue + * @description Returns a request from the default request queue of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Get request](https://docs.apify.com/api/v2/request-queue-request-get) endpoint. + */ + get: operations["actorTask_runs_last_requestQueue_request_get"]; + /** + * Update request in last task run's default request queue + * @description Updates a request in the default request queue of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Update request](https://docs.apify.com/api/v2/request-queue-request-put) endpoint. + */ + put: operations["actorTask_runs_last_requestQueue_request_put"]; + post?: never; + /** + * Delete request from last task run's default request queue + * @description Deletes a request from the default request queue of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Delete request](https://docs.apify.com/api/v2/request-queue-request-delete) endpoint. + */ + delete: operations["actorTask_runs_last_requestQueue_request_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-tasks/{actorTaskId}/runs/last/request-queue/requests/{requestId}/lock": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + /** + * Prolong lock on request in last task run's default request queue + * @description Prolongs a request lock in the default request queue of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Prolong request lock](https://docs.apify.com/api/v2/request-queue-request-lock-put) endpoint. + */ + put: operations["actorTask_runs_last_requestQueue_request_lock_put"]; + post?: never; + /** + * Delete lock on request in last task run's default request queue + * @description Deletes a request lock in the default request queue of the last Actor task run. + * + * This endpoint is a shortcut for getting the last task run's `defaultRequestQueueId` and then using the + * [Delete request lock](https://docs.apify.com/api/v2/request-queue-request-lock-delete) endpoint. + */ + delete: operations["actorTask_runs_last_requestQueue_request_lock_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get user runs list + * @description Gets a list of all runs for a user. The response is a list of objects, where + * each object contains basic information about a single Actor run. + * + * The endpoint supports pagination using the `limit` and `offset` parameters + * and it will not return more than 1000 array elements. + * + * By default, the records are sorted by the `startedAt` field in ascending + * order. Therefore, you can use pagination to incrementally fetch all records while + * new ones are still being created. To sort the records in descending order, use + * `desc=1` parameter. You can also filter runs by `startedAt`` and `status`` fields ([available + * statuses](https://docs.apify.com/platform/actors/running/runs-and-builds#lifecycle)). + */ + get: operations["actorRuns_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get run + * @description This is not a single endpoint, but an entire group of endpoints that lets + * you retrieve the run or any of its default storages. + * + * ##### Convenience endpoints for Actor run default storages + * + * * [Dataset](https://docs.apify.com/api/v2/default-dataset) + * + * * [Key-value store](https://docs.apify.com/api/v2/default-key-value-store) + * + * * [Request queue](https://docs.apify.com/api/v2/default-request-queue) + * + * Gets an object that contains all the details about a + * specific run of an Actor. + * + * By passing the optional `waitForFinish` parameter the API endpoint will synchronously wait + * for the run to finish. This is useful to avoid periodic polling when waiting for Actor run to complete. + * Note that the first response after completion can still show preliminary `stats`, costs, and event counts. + * For stable figures, wait about 10 seconds and call the endpoint again. + * + * This endpoint does not require the authentication token. Instead, calls are authenticated using a hard-to-guess ID of the run. However, + * if you access the endpoint without the token, certain attributes, such as `usageUsd` and `usageTotalUsd`, will be hidden. + */ + get: operations["actorRun_get"]; + /** + * Update run + * @description This endpoint can be used to update both the run's status message and to configure its general resource access level. + * + * **Status message:** + * + * You can set a single status message on your run that will be displayed in + * the Apify Console UI. During an Actor run, you will typically do this in order + * to inform users of your Actor about the Actor's progress. + * + * The request body must contain `runId` and `statusMessage` properties. The + * `isStatusMessageTerminal` property is optional and it indicates if the + * status message is the very last one. In the absence of a status message, the + * platform will try to substitute sensible defaults. + * + * **General resource access:** + * + * You can also update the run's general resource access setting, which determines who can view the run and its related data. + * + * Allowed values: + * + * * `FOLLOW_USER_SETTING` - The run inherits the general access setting from the account level. + * * `ANYONE_WITH_ID_CAN_READ` - The run can be viewed anonymously by anyone who has its ID. + * * `RESTRICTED` - Only users with explicit access to the resource can access the run. + * + * When a run is accessible anonymously, all of the run's default storages and logs also become accessible anonymously. + */ + put: operations["actorRun_put"]; + post?: never; + /** + * Delete run + * @description Delete the run. Only finished runs can be deleted. Only the person or + * organization that initiated the run can delete it. + */ + delete: operations["actorRun_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/abort": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Abort run + * @description Aborts an Actor run and returns an object that contains all the details + * about the run. + * + * Only runs that are starting or running are aborted. For runs with status + * `FINISHED`, `FAILED`, `ABORTING` and `TIMED-OUT` this call does nothing. + */ + post: operations["actorRun_abort_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/metamorph": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Metamorph run + * @description Transforms an Actor run into a run of another Actor with a new input. + * + * This is useful if you want to use another Actor to finish the work + * of your current Actor run, without the need to create a completely new run + * and waiting for its finish. + * + * For the users of your Actors, the metamorph operation is transparent, they + * will just see your Actor got the work done. + * + * Internally, the system stops the Docker container corresponding to the Actor + * run and starts a new container using a different Docker image. + * + * All the default storages are preserved and the new input is stored under the + * `INPUT-METAMORPH-1` key in the same default key-value store. + * + * For more information, see the [Actor docs](https://docs.apify.com/platform/actors/development/programming-interface/metamorph). + */ + post: operations["actorRun_metamorph_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/reboot": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Reboot run + * @description Reboots an Actor run and returns an object that contains all the details + * about the rebooted run. + * + * Only runs that are running, i.e. runs with status `RUNNING` can be rebooted. + * + * The run's container will be restarted, so any data not persisted in the + * key-value store, dataset, or request queue will be lost. + */ + post: operations["actorRun_reboot_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/resurrect": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Resurrect run + * @description Resurrects a finished Actor run and returns an object that contains all the details about the resurrected run. + * Only finished runs, i.e. runs with status `FINISHED`, `FAILED`, `ABORTED` and `TIMED-OUT` can be resurrected. + * Run status will be updated to RUNNING and its container will be restarted with the same storages + * (the same behaviour as when the run gets migrated to the new server). + * + * For more information, see the [Actor docs](https://docs.apify.com/platform/actors/running/runs-and-builds#resurrection-of-finished-run). + */ + post: operations["PostResurrectRun"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/charge": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Charge events in run + * @description Charge for events in the run of your [pay per event Actor](https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event). + * The event you are charging for must be one of the configured events in your Actor. If the Actor is not set up as pay per event, or if the event is not configured, + * the endpoint will return an error. The endpoint must be called from the Actor run itself, with the same API token that the run was started with. + * + * :::info Learn more about pay-per-event pricing + * + * For more details about pay-per-event (PPE) pricing, refer to our [PPE documentation](https://docs.apify.com/actors/publishing/monetize/pay-per-event). + * + * ::: + */ + post: operations["PostChargeRun"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/dataset": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get default dataset + * @description Returns the default dataset associated with an Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultDatasetId` and then using the + * [Get dataset](https://docs.apify.com/api/v2/dataset-get) endpoint. + */ + get: operations["actorRun_dataset_get"]; + /** + * Update default dataset + * @description Updates the default dataset associated with an Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultDatasetId` and then using the + * [Put dataset](https://docs.apify.com/api/v2/dataset-put) endpoint. + */ + put: operations["actorRun_dataset_put"]; + post?: never; + /** + * Delete default dataset + * @description Deletes default dataset associated with an Actor run. + * + * This endpoint is a shortcut for getting the last run's `defaultDatasetId` and then using the + * [ Delete dataset ](https://docs.apify.com/api/v2/dataset-delete) endpoint. + */ + delete: operations["actorRun_dataset_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/dataset/items": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get default dataset items + * @description Returns data stored in the default dataset of the Actor run in the desired format. + * + * This endpoint is a shortcut that resolves the run's `defaultDatasetId` and proxies to the + * [Get dataset items](https://docs.apify.com/api/v2/dataset-items-get) endpoint. + */ + get: operations["actorRun_dataset_items_get"]; + put?: never; + /** + * Store items + * @description Appends an item or an array of items to the end of the Actor run's default dataset. + * + * This endpoint is a shortcut that resolves the run's `defaultDatasetId` and proxies to the + * [Store items](https://docs.apify.com/api/v2/dataset-items-post) endpoint. + * + * To save bandwidth and speed up your upload, you can send the request payload compressed and set the `Content-Encoding` header accordingly. + * + * Below is a list of supported `Content-Encoding` types. + * + * * Brotli: `Content-Encoding: br` + * * Gzip: `Content-Encoding: gzip` + * * Deflate: `Content-Encoding: deflate` + */ + post: operations["actorRun_dataset_items_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/dataset/statistics": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get default dataset statistics + * @description Returns statistics for the Actor run's default dataset. + * + * This endpoint is a shortcut that resolves the run's `defaultDatasetId` and proxies to the + * [Get dataset statistics](https://docs.apify.com/api/v2/dataset-statistics-get) endpoint. + */ + get: operations["actorRun_dataset_statistics_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/key-value-store": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get default store + * @description Gets an object that contains all the details about the default key-value + * store. + * + * This endpoint is a shortcut for getting the run's `defaultKeyValueStoreId` and then using the + * [Get store](https://docs.apify.com/api/v2/key-value-store-get) endpoint. + */ + get: operations["actorRun_keyValueStore_get"]; + /** + * Update default store + * @description Updates the default key-value store's name and general resource access level using a value specified by a JSON object + * passed in the PUT payload. + * + * This endpoint is a shortcut for getting the run's `defaultKeyValueStoreId` and then using the + * [Update store](https://docs.apify.com/api/v2/key-value-store-put) endpoint. + */ + put: operations["actorRun_keyValueStore_put"]; + post?: never; + /** + * Delete default store + * @description Delete the default key-value store. + * + * This endpoint is a shortcut for getting the run's `defaultKeyValueStoreId` and then using the + * [Delete store](https://docs.apify.com/api/v2/key-value-store-delete) endpoint. + */ + delete: operations["actorRun_keyValueStore_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/key-value-store/keys": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get default store's list of keys + * @description Returns a list of keys for the default key-value store of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultKeyValueStoreId` and then using the + * [Get list of keys](https://docs.apify.com/api/v2/key-value-store-keys-get) endpoint. + */ + get: operations["actorRun_keyValueStore_keys_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/key-value-store/records": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Download default store's records + * @description Downloads all records from the default key-value store of the Actor run as a ZIP archive. + * + * This endpoint is a shortcut for getting the run's `defaultKeyValueStoreId` and then using the + * [Download records](https://docs.apify.com/api/v2/key-value-store-records-get) endpoint. + */ + get: operations["actorRun_keyValueStore_records_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/key-value-store/records/{recordKey}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get default store's record + * @description Gets a value stored under a specific key in the default key-value store of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultKeyValueStoreId` and then using the + * [Get record](https://docs.apify.com/api/v2/key-value-store-record-get) endpoint. + */ + get: operations["actorRun_keyValueStore_record_get"]; + /** + * Store record in default store + * @description Stores a value under a specific key in the default key-value store of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultKeyValueStoreId` and then using the + * [Store record](https://docs.apify.com/api/v2/key-value-store-record-put) endpoint. + */ + put: operations["actorRun_keyValueStore_record_put"]; + /** + * Store record in default store (POST) + * @description Stores a value under a specific key in the default key-value store of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultKeyValueStoreId` and then using the + * [Store record](https://docs.apify.com/api/v2/key-value-store-record-post) endpoint. + */ + post: operations["actorRun_keyValueStore_record_post"]; + /** + * Delete default store's record + * @description Removes a record specified by a key from the default key-value store of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultKeyValueStoreId` and then using the + * [Delete record](https://docs.apify.com/api/v2/key-value-store-record-delete) endpoint. + */ + delete: operations["actorRun_keyValueStore_record_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/request-queue": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get default request queue + * @description Returns the default request queue associated with an Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Get request queue](https://docs.apify.com/api/v2/request-queue-get) endpoint. + */ + get: operations["actorRun_requestQueue_get"]; + /** + * Update default request queue + * @description Updates the default request queue associated with an Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Update request queue](https://docs.apify.com/api/v2/request-queue-put) endpoint. + */ + put: operations["actorRun_requestQueue_put"]; + post?: never; + /** + * Delete default request queue + * @description Deletes the default request queue associated with an Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Delete request queue](https://docs.apify.com/api/v2/request-queue-delete) endpoint. + */ + delete: operations["actorRun_requestQueue_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/request-queue/requests": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List default request queue's requests + * @description Returns a list of requests from the default request queue of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [List requests](https://docs.apify.com/api/v2/request-queue-requests-get) endpoint. + */ + get: operations["actorRun_requestQueue_requests_get"]; + put?: never; + /** + * Add request to default request queue + * @description Adds a request to the default request queue of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Add request](https://docs.apify.com/api/v2/request-queue-requests-post) endpoint. + */ + post: operations["actorRun_requestQueue_requests_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/request-queue/requests/batch": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Batch add requests to default request queue + * @description Adds requests to the default request queue of the Actor run in batch. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Add requests](https://docs.apify.com/api/v2/request-queue-requests-batch-post) endpoint. + */ + post: operations["actorRun_requestQueue_requests_batch_post"]; + /** + * Batch delete requests from default request queue + * @description Batch-deletes requests from the default request queue of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Delete requests](https://docs.apify.com/api/v2/request-queue-requests-batch-delete) endpoint. + */ + delete: operations["actorRun_requestQueue_requests_batch_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/request-queue/requests/unlock": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Unlock requests in default request queue + * @description Unlocks requests in the default request queue of the Actor run that are currently locked by the client. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Unlock requests](https://docs.apify.com/api/v2/request-queue-requests-unlock-post) endpoint. + */ + post: operations["actorRun_requestQueue_requests_unlock_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/request-queue/requests/{requestId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get request from default request queue + * @description Returns a request from the default request queue of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Get request](https://docs.apify.com/api/v2/request-queue-request-get) endpoint. + */ + get: operations["actorRun_requestQueue_request_get"]; + /** + * Update request in default request queue + * @description Updates a request in the default request queue of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Update request](https://docs.apify.com/api/v2/request-queue-request-put) endpoint. + */ + put: operations["actorRun_requestQueue_request_put"]; + post?: never; + /** + * Delete request from default request queue + * @description Deletes a request from the default request queue of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Delete request](https://docs.apify.com/api/v2/request-queue-request-delete) endpoint. + */ + delete: operations["actorRun_requestQueue_request_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/request-queue/requests/{requestId}/lock": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + /** + * Prolong lock on request in default request queue + * @description Prolongs a request lock in the default request queue of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Prolong request lock](https://docs.apify.com/api/v2/request-queue-request-lock-put) endpoint. + */ + put: operations["actorRun_requestQueue_request_lock_put"]; + post?: never; + /** + * Delete lock on request in default request queue + * @description Deletes a request lock in the default request queue of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Delete request lock](https://docs.apify.com/api/v2/request-queue-request-lock-delete) endpoint. + */ + delete: operations["actorRun_requestQueue_request_lock_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/request-queue/head": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get default request queue head + * @description Returns the given number of first requests from the default request queue of the Actor run. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Get head](https://docs.apify.com/api/v2/request-queue-head-get) endpoint. + */ + get: operations["actorRun_requestQueue_head_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/request-queue/head/lock": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Get and lock default request queue head + * @description Returns the given number of first requests from the default request queue of the Actor run + * and locks them for the given time. + * + * This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the + * [Get head and lock](https://docs.apify.com/api/v2/request-queue-head-lock-post) endpoint. + */ + post: operations["actorRun_requestQueue_head_lock_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-runs/{runId}/log": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get run's log + * @description Retrieves Actor run's logs. + * + * This endpoint is a shortcut for getting the run's log. Same as [Get log](https://docs.apify.com/api/v2/log-get) endpoint. + */ + get: operations["actorRun_log_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-builds": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get user builds list + * @description Gets a list of all builds for a user. The response is a JSON array of + * objects, where each object contains basic information about a single build. + * + * The endpoint supports pagination using the `limit` and `offset` parameters + * and it will not return more than 1000 records. + * + * By default, the records are sorted by the `startedAt` field in ascending + * order. Therefore, you can use pagination to incrementally fetch all builds while + * new ones are still being started. To sort the records in descending order, use + * the `desc=1` parameter. + */ + get: operations["actorBuilds_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-builds/{buildId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get build + * @description Gets an object that contains all the details about a specific build of an + * Actor. + * + * By passing the optional `waitForFinish` parameter the API endpoint will + * synchronously wait for the build to finish. This is useful to avoid periodic + * polling when waiting for an Actor build to finish. + * + * This endpoint does not require the authentication token. Instead, calls are authenticated using a hard-to-guess ID of the build. However, + * if you access the endpoint without the token, certain attributes, such as `usageUsd` and `usageTotalUsd`, will be hidden. + */ + get: operations["actorBuild_get"]; + put?: never; + post?: never; + /** + * Delete build + * @description Delete the build. The build that is the current default build for the Actor + * cannot be deleted. + * + * Only users with build permissions for the Actor can delete builds. + */ + delete: operations["actorBuild_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-builds/{buildId}/abort": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Abort build + * @description Aborts an Actor build and returns an object that contains all the details + * about the build. + * + * Only builds that are starting or running are aborted. For builds with status + * `FINISHED`, `FAILED`, `ABORTING` and `TIMED-OUT` this call does nothing. + */ + post: operations["actorBuild_abort_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-builds/{buildId}/log": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get build's Log + * @description Retrieves Actor build's logs. + * + * This endpoint is a shortcut for getting the build's log. Same as [Get log](https://docs.apify.com/api/v2/log-get) endpoint. + */ + get: operations["actorBuild_log_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/actor-builds/{buildId}/openapi.json": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get OpenAPI definition + * @description Get the OpenAPI definition for Actor builds. Two similar endpoints are available: + * + * - [First endpoint](https://docs.apify.com/api/v2/actor-openapi-json-get): Requires both `actorId` and `buildId`. Use `default` as the `buildId` to get the OpenAPI schema for the default Actor build. + * - [Second endpoint](https://docs.apify.com/api/v2/actor-build-openapi-json-get): Requires only `buildId`. + * + * Get the OpenAPI definition for a specific Actor build. + * Authentication is based on the build's unique ID. No authentication token is required. + * + * :::note + * + * You can also use the [`/api/v2/actor-openapi-json-get`](https://docs.apify.com/api/v2/actor-openapi-json-get) endpoint to get the OpenAPI definition for a build. + * + * ::: + */ + get: operations["actorBuild_openapi_json_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/key-value-stores": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of key-value stores + * @description Gets the list of key-value stores owned by the user. + * + * The response is a list of objects, where each objects contains a basic + * information about a single key-value store. + * + * The endpoint supports pagination using the `limit` and `offset` parameters + * and it will not return more than 1000 array elements. + * + * By default, the records are sorted by the `createdAt` field in ascending + * order, therefore you can use pagination to incrementally fetch all key-value stores + * while new ones are still being created. To sort the records in descending order, use + * the `desc=1` parameter. + */ + get: operations["keyValueStores_get"]; + put?: never; + /** + * Create key-value store + * @description Creates a key-value store and returns its object. The response is the same + * object as returned by the [Get store](#/reference/key-value-stores/store-object/get-store) + * endpoint. + * + * Keep in mind that data stored under unnamed store follows [data retention + * period](https://docs.apify.com/platform/storage#data-retention). + * + * It creates a store with the given name if the parameter name is used. + * If there is another store with the same name, the endpoint does not create a + * new one and returns the existing object instead. + */ + post: operations["keyValueStores_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/key-value-stores/{storeId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get store + * @description Gets an object that contains all the details about a specific key-value + * store. + */ + get: operations["keyValueStore_get"]; + /** + * Update store + * @description Updates a key-value store's name and general resource access level using a value specified by a JSON object + * passed in the PUT payload. + * + * The response is the updated key-value store object, as returned by the [Get + * store](#/reference/key-value-stores/store-object/get-store) API endpoint. + */ + put: operations["keyValueStore_put"]; + post?: never; + /** + * Delete store + * @description Deletes a key-value store. + */ + delete: operations["keyValueStore_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/key-value-stores/{storeId}/keys": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of keys + * @description Returns a list of objects describing keys of a given key-value store, as + * well as some information about the values (e.g. size). + * + * This endpoint is paginated using `exclusiveStartKey` and `limit` parameters + * - see [Pagination](https://docs.apify.com/api/v2#using-key) for more details. + */ + get: operations["keyValueStore_keys_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/key-value-stores/{storeId}/records": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Download records + * @description Downloads all records from the key-value store as a ZIP archive. + * Each record is stored as a separate file in the archive, with the filename equal to the record key. + * + * You can optionally filter the records by `collection` or `prefix` to download only a subset of the store. + */ + get: operations["keyValueStore_records_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/key-value-stores/{storeId}/records/{recordKey}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get record + * @description Gets a value stored in the key-value store under a specific key. + * + * The response body has the same `Content-Encoding` header as it was set in + * [Put record](#tag/Key-value-storesRecord/operation/keyValueStore_record_put). + * + * If the request does not define the `Accept-Encoding` HTTP header with the + * right encoding, the record will be decompressed. + * + * Most HTTP clients support decompression by default. After using the HTTP + * client with decompression support, the `Accept-Encoding` header is set by + * the client and body is decompressed automatically. + * + * Please note that for security reasons, Apify API can perform small modifications + * to HTML documents before they are served via this endpoint. To fetch the raw HTML + * content without any modifications, use the `attachment` query parameter. + */ + get: operations["keyValueStore_record_get"]; + /** + * Store record + * @description Stores a value under a specific key to the key-value store. + * + * The value is passed as the PUT payload and it is stored with a MIME content + * type defined by the `Content-Type` header and with encoding defined by the + * `Content-Encoding` header. + * + * To save bandwidth, storage, and speed up your upload, send the request + * payload compressed with Gzip compression and add the `Content-Encoding: gzip` + * header. It is possible to set up another compression type with `Content-Encoding` + * request header. + * + * Below is a list of supported `Content-Encoding` types. + * + * * Brotli compression: `Content-Encoding: br` + * * Gzip compression: `Content-Encoding: gzip` + * * Deflate compression: `Content-Encoding: deflate` + */ + put: operations["keyValueStore_record_put"]; + /** + * Store record (POST) + * @description Stores a value under a specific key to the key-value store. + * + * This endpoint is an alias for the [`PUT` record](#tag/Key-value-storesRecord/operation/keyValueStore_record_put) method and behaves identically. + */ + post: operations["keyValueStore_record_post"]; + /** + * Delete record + * @description Removes a record specified by a key from the key-value store. + */ + delete: operations["keyValueStore_record_delete"]; + options?: never; + /** + * Check if a record exists + * @description Check if a value is stored in the key-value store under a specific key. + */ + head: operations["keyValueStore_record_head"]; + patch?: never; + trace?: never; + }; + "/v2/datasets": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of datasets + * @description Lists all of a user's datasets. + * + * The response is a JSON array of objects, + * where each object contains basic information about one dataset. + * + * By default, the objects are sorted by the `createdAt` field in ascending + * order, therefore you can use pagination to incrementally fetch all datasets while new + * ones are still being created. To sort them in descending order, use `desc=1` + * parameter. The endpoint supports pagination using `limit` and `offset` + * parameters and it will not return more than 1000 array elements. + */ + get: operations["datasets_get"]; + put?: never; + /** + * Create dataset + * @description Creates a dataset and returns its object. + * Keep in mind that data stored under unnamed dataset follows [data retention period](https://docs.apify.com/platform/storage#data-retention). + * It creates a dataset with the given name if the parameter name is used. + * If a dataset with the given name already exists then returns its object. + */ + post: operations["datasets_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/datasets/{datasetId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get dataset + * @description Returns dataset object for given dataset ID. + * + * This does not return dataset items, only information about the storage itself. + * To retrieve dataset items, use the [List dataset items](https://docs.apify.com/api/v2/dataset-items-get) endpoint. + * + * :::note + * + * Keep in mind that attributes `itemCount` and `cleanItemCount` are not propagated right away after data are pushed into a dataset. + * + * ::: + * + * There is a short period (up to 5 seconds) during which these counters may not match with exact counts in dataset items. + */ + get: operations["dataset_get"]; + /** + * Update dataset + * @description Updates a dataset's name and general resource access level using a value specified by a JSON object passed in the PUT payload. + * The response is the updated dataset object, as returned by the [Get dataset](https://docs.apify.com/api/v2/dataset-get) API endpoint. + */ + put: operations["dataset_put"]; + post?: never; + /** + * Delete dataset + * @description Deletes a specific dataset. + */ + delete: operations["dataset_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/datasets/{datasetId}/items": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get dataset items + * @description Returns data stored in the dataset in a desired format. + * + * ### Response format + * + * The format of the response depends on format query parameter. + * + * The format parameter can have one of the following values: + * json, jsonl, xml, html, + * csv, xlsx and rss. + * + * The following table describes how each format is treated. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
FormatItems
jsonThe response is a JSON, JSONL or XML array of raw item objects.
jsonl
xml
htmlThe response is a HTML, CSV or XLSX table, where columns correspond to the + * properties of the item and rows correspond to each dataset item.
csv
xlsx
rssThe response is a RSS file. Each item is displayed as child elements of one + * <item>.
+ * + * Note that CSV, XLSX and HTML tables are limited to 2000 columns and the column names cannot be longer than 200 characters. + * JSON, XML and RSS formats do not have such restrictions. + * + * ### Hidden fields + * + * The top-level fields starting with the `#` character are considered hidden. + * These are useful to store debugging information and can be omitted from the output by providing the `skipHidden=1` or `clean=1` query parameters. + * For example, if you store the following object to the dataset: + * + * ``` + * { + * productName: "iPhone Xs", + * description: "Welcome to the big screens." + * #debug: { + * url: "https://www.apple.com/lae/iphone-xs/", + * crawledAt: "2019-01-21T16:06:03.683Z" + * } + * } + * ``` + * + * The `#debug` field will be considered as hidden and can be omitted from the + * results. This is useful to + * provide nice cleaned data to end users, while keeping debugging info + * available if needed. The Dataset object + * returned by the API contains the number of such clean items in the`dataset.cleanItemCount` property. + * + * ### XML format extension + * + * When exporting results to XML or RSS formats, the names of object properties become XML tags and the corresponding values become tag's children. For example, the following JavaScript object: + * + * ``` + * { + * name: "Paul Newman", + * address: [ + * { type: "home", street: "21st", city: "Chicago" }, + * { type: "office", street: null, city: null } + * ] + * } + * ``` + * + * will be transformed to the following XML snippet: + * + * ``` + * Paul Newman + *
+ * home + * 21st + * Chicago + *
+ *
+ * office + * + * + *
+ * ``` + * + * If the JavaScript object contains a property named `@` then its sub-properties are exported as attributes of the parent XML + * element. + * If the parent XML element does not have any child elements then its value is taken from a JavaScript object property named `#`. + * + * For example, the following JavaScript object: + * + * ``` + * { + * "address": [{ + * "@": { + * "type": "home" + * }, + * "street": "21st", + * "city": "Chicago" + * }, + * { + * "@": { + * "type": "office" + * }, + * "#": 'unknown' + * }] + * } + * ``` + * + * will be transformed to the following XML snippet: + * + * ``` + *
+ * 21st + * Chicago + *
+ *
unknown
+ * ``` + * + * This feature is also useful to customize your RSS feeds generated for various websites. + * + * By default the whole result is wrapped in a `` element and each page object is wrapped in a `` element. + * You can change this using xmlRoot and xmlRow url parameters. + * + * ### Pagination + * + * The generated response supports [pagination](#/introduction/pagination). + * The pagination is always performed with the granularity of a single item, regardless whether unwind parameter was provided. + * By default, the **Items** in the response are sorted by the time they were stored to the database, therefore you can use pagination to incrementally fetch the items as they are being added. + * No limit exists to how many items can be returned in one response. + * + * If you specify `desc=1` query parameter, the results are returned in the reverse order than they were stored (i.e. from newest to oldest items). + * Note that only the order of **Items** is reversed, but not the order of the `unwind` array elements. + */ + get: operations["dataset_items_get"]; + put?: never; + /** + * Store items + * @description Appends an item or an array of items to the end of the dataset. + * The POST payload is a JSON object or a JSON array of objects to save into the dataset. + * + * If the data you attempt to store in the dataset is invalid (meaning any of the items received by the API fails the validation), the whole request is discarded and the API will return a response with status code 400. + * For more information about dataset schema validation, see [Dataset schema](https://docs.apify.com/platform/actors/development/actor-definition/dataset-schema/validation). + * + * **IMPORTANT:** The limit of request payload size for the dataset is 5 MB. If the array exceeds the size, you'll need to split it into a number of smaller arrays. + * + * To save bandwidth and speed up your upload, you can send the request payload compressed and set the `Content-Encoding` header accordingly. + * + * Below is a list of supported `Content-Encoding` types. + * + * * Brotli: `Content-Encoding: br` + * * Gzip: `Content-Encoding: gzip` + * * Deflate: `Content-Encoding: deflate` + */ + post: operations["dataset_items_post"]; + delete?: never; + options?: never; + /** + * Get dataset items headers + * @description Returns only the HTTP headers for the dataset items endpoint, without the response body. + * This is useful to check pagination metadata or verify access without downloading the full dataset. + */ + head: operations["dataset_items_head"]; + patch?: never; + trace?: never; + }; + "/v2/datasets/{datasetId}/statistics": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get dataset statistics + * @description Returns statistics for given dataset. + * + * Provides only [field statistics](https://docs.apify.com/platform/actors/development/actor-definition/dataset-schema/validation#dataset-field-statistics). + */ + get: operations["dataset_statistics_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/request-queues": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of request queues + * @description Lists all of a user's request queues. The response is a JSON array of + * objects, where each object + * contains basic information about one queue. + * + * By default, the objects are sorted by the `createdAt` field in ascending order, + * therefore you can use pagination to incrementally fetch all queues while new + * ones are still being created. To sort them in descending order, use `desc=1` + * parameter. The endpoint supports pagination using `limit` and `offset` + * parameters and it will not return more than 1000 + * array elements. + */ + get: operations["requestQueues_get"]; + put?: never; + /** + * Create request queue + * @description Creates a request queue and returns its object. + * Keep in mind that requests stored under unnamed queue follows [data + * retention period](https://docs.apify.com/platform/storage#data-retention). + * + * It creates a queue of given name if the parameter name is used. If a queue + * with the given name already exists then the endpoint returns + * its object. + */ + post: operations["requestQueues_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/request-queues/{queueId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get request queue + * @description Returns queue object for given queue ID. + */ + get: operations["requestQueue_get"]; + /** + * Update request queue + * @description Updates a request queue's name and general resource access level using a value specified by a JSON object + * passed in the PUT payload. + * + * The response is the updated request queue object, as returned by the + * [Get request queue](#/reference/request-queues/queue-collection/get-request-queue) API endpoint. + */ + put: operations["requestQueue_put"]; + post?: never; + /** + * Delete request queue + * @description Deletes given queue. + */ + delete: operations["requestQueue_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/request-queues/{queueId}/requests/batch": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Add requests + * @description Adds requests to the queue in batch. The maximum requests in batch is limited + * to 25. The response contains an array of unprocessed and processed requests. + * If any add operation fails because the request queue rate limit is exceeded + * or an internal failure occurs, + * the failed request is returned in the unprocessedRequests response + * parameter. + * You can resend these requests to add. It is recommended to use an + * exponential backoff algorithm for these retries. + * If a request with the same `uniqueKey` was already present in the queue, + * then it returns an ID of the existing request. + */ + post: operations["requestQueue_requests_batch_post"]; + /** + * Delete requests + * @description Batch-deletes given requests from the queue. The number of requests in a + * batch is limited to 25. The response contains an array of unprocessed and + * processed requests. + * If any delete operation fails because the request queue rate limit is + * exceeded or an internal failure occurs, + * the failed request is returned in the `unprocessedRequests` response + * parameter. + * You can re-send these delete requests. It is recommended to use an + * exponential backoff algorithm for these retries. + * Each request is identified by its ID or uniqueKey parameter. You can use + * either of them to identify the request. + */ + delete: operations["requestQueue_requests_batch_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/request-queues/{queueId}/requests/unlock": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Unlock requests + * @description Unlocks requests in the queue that are currently locked by the client. + * + * * If the client is within an Actor run, it unlocks all requests locked by that specific run plus all requests locked by the same clientKey. + * * If the client is outside of an Actor run, it unlocks all requests locked using the same clientKey. + */ + post: operations["requestQueue_requests_unlock_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/request-queues/{queueId}/requests": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List requests + * @description Returns a list of requests. This endpoint is paginated using + * cursor (pagination by `exclusiveStartId` is deprecated) and limit parameters. + */ + get: operations["requestQueue_requests_get"]; + put?: never; + /** + * Add request + * @description Adds request to the queue. Response contains ID of the request and info if + * request was already present in the queue or handled. + * + * If request with same `uniqueKey` was already present in the queue then + * returns an ID of existing request. + */ + post: operations["requestQueue_requests_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/request-queues/{queueId}/requests/{requestId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get request + * @description Returns request from queue. + */ + get: operations["requestQueue_request_get"]; + /** + * Update request + * @description Updates a request in a queue. Mark request as handled by setting + * `request.handledAt = new Date()`. + * If `handledAt` is set, the request will be removed from head of the queue (and unlocked, if applicable). + */ + put: operations["requestQueue_request_put"]; + post?: never; + /** + * Delete request + * @description Deletes given request from queue. + */ + delete: operations["requestQueue_request_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/request-queues/{queueId}/head": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get head + * @description Returns given number of first requests from the queue. + * + * The response contains the `hadMultipleClients` boolean field which indicates + * that the queue was accessed by more than one client (with unique or empty + * `clientKey`). + * This field is used by [Apify SDK](https://sdk.apify.com) to determine + * whether the local cache is consistent with the request queue, and thus + * optimize performance of certain operations. + */ + get: operations["requestQueue_head_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/request-queues/{queueId}/head/lock": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Get head and lock + * @description Returns the given number of first requests from the queue and locks them for + * the given time. + * + * If this endpoint locks the request, no other client or run will be able to get and + * lock these requests. + * + * The response contains the `hadMultipleClients` boolean field which indicates + * that the queue was accessed by more than one client (with unique or empty + * `clientKey`). + */ + post: operations["requestQueue_head_lock_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/request-queues/{queueId}/requests/{requestId}/lock": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + /** + * Prolong request lock + * @description Prolongs request lock. The request lock can be prolonged only by the client + * that has locked it using [Get and lock head + * operation](#/request-queue-head-lock-post). + * + * The clientKey identifier is used for locking and unlocking requests. + * You can delete or prolong the lock only for requests that were locked by the same client key or from the same Actor run. + */ + put: operations["requestQueue_request_lock_put"]; + post?: never; + /** + * Delete request lock + * @description Deletes a request lock. The request lock can be deleted only by the client + * that has locked it using [Get and lock head + * operation](#/request-queue-head-lock-post). + * + * The clientKey identifier is used for locking and unlocking requests. + * You can delete or prolong the lock only for requests that were locked by the same client key or from the same Actor run. + */ + delete: operations["requestQueue_request_lock_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/webhooks": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of webhooks + * @description Gets the list of webhooks that the user created. + * + * The endpoint supports pagination using the `limit` and `offset` parameters + * and it will not return more than 1000 records. + * By default, the records are sorted by the `createdAt` field in ascending + * order. To sort the records in descending order, use the `desc=1` + * parameter. + */ + get: operations["webhooks_get"]; + put?: never; + /** + * Create webhook + * @description Creates a new webhook with settings provided by the webhook object passed as + * JSON in the payload. + * The response is the created webhook object. + * + * To avoid duplicating a webhook, use the `idempotencyKey` parameter in the + * request body. + * Multiple calls to create a webhook with the same `idempotencyKey` will only + * create the webhook with the first call and return the existing webhook on + * subsequent calls. + * Idempotency keys must be unique, so use a UUID or another random string with + * enough entropy. + * + * To assign the new webhook to an Actor or task, the request body must contain + * `requestUrl`, `eventTypes`, and `condition` properties. + * + * * `requestUrl` is the webhook's target URL, to which data is sent as a POST + * request with a JSON payload. + * * `eventTypes` is a list of events that will trigger the webhook, e.g. when + * the Actor run succeeds. + * * `condition` should be an object containing the ID of the Actor or task to + * which the webhook will be assigned. + * * `payloadTemplate` is a JSON-like string, whose syntax is extended with the + * use of variables. + * * `headersTemplate` is a JSON-like string, whose syntax is extended with the + * use of variables. Following values will be re-written to defaults: "host", + * "Content-Type", "X-Apify-Webhook", "X-Apify-Webhook-Dispatch-Id", + * "X-Apify-Request-Origin" + * * `description` is an optional string. + * * `shouldInterpolateStrings` is a boolean indicating whether to interpolate + * variables contained inside strings in the `payloadTemplate` + * + * ``` + * "isAdHoc" : false, + * "requestUrl" : "https://example.com", + * "eventTypes" : [ + * "ACTOR.RUN.SUCCEEDED", + * "ACTOR.RUN.ABORTED" + * ], + * "condition" : { + * "actorId": "5sTMwDQywwsLzKRRh", + * "actorTaskId" : "W9bs9JE9v7wprjAnJ" + * }, + * "payloadTemplate": "", + * "headersTemplate": "", + * "description": "my awesome webhook", + * "shouldInterpolateStrings": false, + * ``` + * + * **Important**: The request must specify the `Content-Type: application/json` + * HTTP header. + */ + post: operations["webhooks_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/webhooks/{webhookId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get webhook + * @description Gets webhook object with all details. + */ + get: operations["webhook_get"]; + /** + * Update webhook + * @description Updates a webhook using values specified by a webhook object passed as JSON + * in the POST payload. + * If the object does not define a specific property, its value will not be + * updated. + * + * The response is the full webhook object as returned by the + * [Get webhook](#/reference/webhooks/webhook-object/get-webhook) endpoint. + * + * The request needs to specify the `Content-Type: application/json` HTTP + * header! + * + * When providing your API authentication token, we recommend using the + * request's `Authorization` header, rather than the URL. ([More + * info](#/introduction/authentication)). + */ + put: operations["webhook_put"]; + post?: never; + /** + * Delete webhook + * @description Deletes a webhook. + */ + delete: operations["webhook_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/webhooks/{webhookId}/test": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Test webhook + * @description Tests a webhook. Creates a webhook dispatch with a dummy payload. + */ + post: operations["webhook_test_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/webhooks/{webhookId}/dispatches": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get collection + * @description Gets a given webhook's list of dispatches. + */ + get: operations["webhook_webhookDispatches_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/webhook-dispatches": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of webhook dispatches + * @description Gets the list of webhook dispatches that the user have. + * + * The endpoint supports pagination using the `limit` and `offset` parameters + * and it will not return more than 1000 records. + * By default, the records are sorted by the `createdAt` field in ascending + * order. To sort the records in descending order, use the `desc=1` + * parameter. + */ + get: operations["webhookDispatches_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/webhook-dispatches/{dispatchId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get webhook dispatch + * @description Gets webhook dispatch object with all details. + */ + get: operations["webhookDispatch_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/schedules": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of schedules + * @description Gets the list of schedules that the user created. + * + * The endpoint supports pagination using the `limit` and `offset` parameters. + * It will not return more than 1000 records. + * + * By default, the records are sorted by the `createdAt` field in ascending + * order. To sort the records in descending order, use the `desc=1` parameter. + */ + get: operations["schedules_get"]; + put?: never; + /** + * Create schedule + * @description Creates a new schedule with settings provided by the schedule object passed + * as JSON in the payload. The response is the created schedule object. + * + * The request needs to specify the `Content-Type: application/json` HTTP header! + * + * When providing your API authentication token, we recommend using the + * request's `Authorization` header, rather than the URL. ([More + * info](#/introduction/authentication)). + */ + post: operations["schedules_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/schedules/{scheduleId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get schedule + * @description Gets the schedule object with all details. + */ + get: operations["schedule_get"]; + /** + * Update schedule + * @description Updates a schedule using values specified by a schedule object passed as + * JSON in the POST payload. If the object does not define a specific property, + * its value will not be updated. + * + * The response is the full schedule object as returned by the + * [Get schedule](#/reference/schedules/schedule-object/get-schedule) endpoint. + * + * **The request needs to specify the `Content-Type: application/json` HTTP + * header!** + * + * When providing your API authentication token, we recommend using the + * request's `Authorization` header, rather than the URL. ([More + * info](#/introduction/authentication)). + */ + put: operations["schedule_put"]; + post?: never; + /** + * Delete schedule + * @description Deletes a schedule. + */ + delete: operations["schedule_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/schedules/{scheduleId}/log": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get schedule log + * @description Gets the schedule log as a JSON array containing information about up to a + * 1000 invocations of the schedule. + */ + get: operations["schedule_log_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/store": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of Actors in Store + * @description Gets the list of public Actors in Apify Store. You can use `search` + * parameter to search Actors by string in title, name, description, username + * and readme. + * If you need detailed info about a specific Actor, use the [Get + * Actor](#/reference/actors/actor-object/get-actor) endpoint. + * + * The endpoint supports pagination using the `limit` and `offset` parameters. + * It will not return more than 1,000 records. + */ + get: operations["store_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/logs/{buildOrRunId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get log + * @description Retrieves logs for a specific Actor build or run. + */ + get: operations["log_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/users/{userId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get public user data + * @description Returns public information about a specific user account, similar to what + * can be seen on public profile pages (e.g. https://apify.com/apify). + * + * This operation requires no authentication token. + */ + get: operations["user_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/users/me": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get private user data + * @description Returns information about the current user account, including both public + * and private information. + * + * The user account is identified by the provided authentication token. + * + * The fields `plan`, `email` and `profile` are omitted when this endpoint is accessed from Actor run. + */ + get: operations["users_me_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/users/me/usage/monthly": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get monthly usage + * @description Returns a complete summary of your usage for the current monthly usage cycle, + * an overall sum, as well as a daily breakdown of usage. It is the same + * information you will see on your account's [Billing > Historical usage page](https://console.apify.com/billing/historical-usage). The information + * includes your use of Actors, compute, data transfer, and storage. + * + * Using the `date` parameter will show your usage in the monthly usage cycle that + * includes that date. + */ + get: operations["users_me_usage_monthly_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/users/me/limits": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get limits + * @description Returns a complete summary of your account's limits. It is the same + * information you will see on your account's [Limits page](https://console.apify.com/billing#/limits). The returned data + * includes the current usage cycle, a summary of your limits, and your current usage. + */ + get: operations["users_me_limits_get"]; + /** + * Update limits + * @description Updates the account's limits manageable on your account's [Limits page](https://console.apify.com/billing#/limits). + * Specifically the: `maxMonthlyUsageUsd` and `dataRetentionDays` limits (see request body schema for more details). + */ + put: operations["users_me_limits_put"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/browser-info": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get browser info + * @description Returns information about the HTTP request, including the client IP address, + * country code, request headers, and body length. + * + * This endpoint is designed for proxy testing. It accepts any HTTP method so you + * can verify that your proxy correctly forwards requests of any type and that + * client IP addresses are anonymized. + */ + get: operations["tools_browser_info_get"]; + /** + * Get browser info + * @description Returns information about the HTTP request, including the client IP address, + * country code, request headers, and body length. + * + * This endpoint is designed for proxy testing. It accepts any HTTP method so you + * can verify that your proxy correctly forwards requests of any type and that + * client IP addresses are anonymized. + */ + put: operations["tools_browser_info_put"]; + /** + * Get browser info + * @description Returns information about the HTTP request, including the client IP address, + * country code, request headers, and body length. + * + * This endpoint is designed for proxy testing. It accepts any HTTP method so you + * can verify that your proxy correctly forwards requests of any type and that + * client IP addresses are anonymized. + */ + post: operations["tools_browser_info_post"]; + /** + * Get browser info + * @description Returns information about the HTTP request, including the client IP address, + * country code, request headers, and body length. + * + * This endpoint is designed for proxy testing. It accepts any HTTP method so you + * can verify that your proxy correctly forwards requests of any type and that + * client IP addresses are anonymized. + */ + delete: operations["tools_browser_info_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/tools/encode-and-sign": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Encode and sign object + * @description Encodes and signs any JSON object. The encoded value includes a signature + * tied to the authenticated user's ID, which can later be verified using the + * decode-and-verify endpoint. + * + * **Important**: The request must specify the `Content-Type: application/json` + * HTTP header. + */ + post: operations["tools_encode_and_sign_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/tools/decode-and-verify": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Decode and verify object + * @description Decodes and verifies an encoded value previously created by the + * encode-and-sign endpoint. Returns the original decoded object along with + * information about the user who encoded it and whether that user is verified. + * + * **Important**: The request must specify the `Content-Type: application/json` + * HTTP header. + */ + post: operations["tools_decode_and_verify_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: { + /** + * PaginationResponse + * @description Common pagination fields for list responses. + */ + PaginationResponse: { + /** + * @description The total number of items available across all pages. + * @example 1 + */ + total: number; + /** + * @description The starting position for this page of results. + * @example 0 + */ + offset: number; + /** + * @description The maximum number of items returned per page. + * @example 1000 + */ + limit: number; + /** + * @description Whether the results are sorted in descending order. + * @example false + */ + desc: boolean; + /** + * @description The number of items returned in this response. + * @example 1 + */ + count: number; + }; + /** + * ActorStats + * @description Usage statistics and Apify Store metrics for the Actor. + */ + ActorStats: { + /** + * @description The total number of builds of the Actor. + * @example 9 + */ + totalBuilds?: number; + /** + * @description The total number of runs of the Actor. + * @example 16 + */ + totalRuns?: number; + /** + * @description The total number of Actor users, including its owner. + * @example 6 + */ + totalUsers?: number; + /** + * @description The number of active users of the Actor in the last 7 days. + * @example 2 + */ + totalUsers7Days?: number; + /** + * @description The number of active users of the Actor in the last 30 days. + * @example 6 + */ + totalUsers30Days?: number; + /** + * @description The number of active users of the Actor in the last 90 days. + * @example 6 + */ + totalUsers90Days?: number; + /** + * @description The total number of times a run of another Actor was [metamorphed](https://docs.apify.com/platform/actors/development/programming-interface/metamorph) into this Actor. + * @example 2 + */ + totalMetamorphs?: number; + /** + * Format: date-time + * @description The date and time the most recent run of the Actor started. + * @example 2019-07-08T14:01:05.546Z + */ + lastRunStartedAt?: Date; + /** + * @description The number of reviews the Actor has received in Apify Store. + * @example 69 + */ + actorReviewCount?: number; + /** + * @description The average rating of the Actor in Apify Store. + * @example 4.7 + */ + actorReviewRating?: number; + /** + * @description The number of users who bookmarked the Actor in Apify Store. + * @example 1269 + */ + bookmarkCount?: number; + /** + * @description Run status counts from the last 30 days. Only for public Actors. + * Excludes runs started by the Actor's owner. + */ + publicActorRunStats30Days?: { + /** + * @description The number of runs that were aborted. + * @example 2542 + */ + ABORTED?: number; + /** + * @description The number of runs that failed. + * @example 1234 + */ + FAILED?: number; + /** + * @description The number of runs that succeeded. + * @example 732805 + */ + SUCCEEDED?: number; + /** + * @description The number of runs that timed out. + * @example 12556 + */ + "TIMED-OUT"?: number; + /** + * @description The total number of runs. + * @example 749137 + */ + TOTAL?: number; + }; + }; + /** ActorShort */ + ActorShort: { + /** @example br9CKmk457 */ + id: string; + /** + * Format: date-time + * @example 2019-10-29T07:34:24.202Z + */ + createdAt: Date; + /** + * Format: date-time + * @example 2019-10-30T07:34:24.202Z + */ + modifiedAt: Date; + /** @example MyAct */ + name: string; + /** @example janedoe */ + username: string; + /** @example Hello World Example */ + title?: string; + stats?: components["schemas"]["ActorStats"] | null; + }; + /** ListOfActors */ + ListOfActors: components["schemas"]["PaginationResponse"] & { + items: components["schemas"]["ActorShort"][]; + }; + /** ListOfActorsResponse */ + ListOfActorsResponse: { + data: components["schemas"]["ListOfActors"]; + }; + /** + * ErrorType + * @description Machine-processable error type identifier. + * @enum {string} + */ + ErrorType: "3d-secure-auth-failed" | "access-right-already-exists" | "action-not-found" | "actor-already-rented" | "actor-can-not-be-rented" | "actor-disabled" | "actor-is-not-rented" | "actor-memory-limit-exceeded" | "actor-name-exists-new-owner" | "actor-name-not-unique" | "actor-not-found" | "actor-not-github-actor" | "actor-not-public" | "actor-permission-level-not-supported-for-agentic-payments" | "actor-review-already-exists" | "actor-run-failed" | "actor-standby-not-supported-for-agentic-payments" | "actor-task-name-not-unique" | "agentic-payment-info-retrieval-error" | "agentic-payment-information-missing" | "agentic-payment-insufficient-amount" | "agentic-payment-provider-internal-error" | "agentic-payment-provider-unauthorized" | "airtable-webhook-deprecated" | "already-subscribed-to-paid-actor" | "apify-plan-required-to-use-paid-actor" | "apify-signup-not-allowed" | "auth-method-not-supported" | "authorization-server-not-found" | "auto-issue-date-invalid" | "background-check-required" | "billing-system-error" | "black-friday-plan-expired" | "braintree-error" | "braintree-not-linked" | "braintree-operation-timed-out" | "braintree-unsupported-currency" | "build-not-found" | "build-outdated" | "cannot-add-apify-events-to-ppe-actor" | "cannot-add-multiple-pricing-infos" | "cannot-add-pricing-info-that-alters-past" | "cannot-add-second-future-pricing-info" | "cannot-build-actor-from-webhook" | "cannot-change-billing-interval" | "cannot-change-owner" | "cannot-charge-apify-event" | "cannot-charge-non-pay-per-event-actor" | "cannot-comment-as-other-user" | "cannot-copy-actor-task" | "cannot-create-payout" | "cannot-create-public-actor" | "cannot-create-tax-transaction" | "cannot-delete-critical-actor" | "cannot-delete-invoice" | "cannot-delete-paid-actor" | "cannot-disable-one-time-event-for-apify-start-event" | "cannot-disable-organization-with-enabled-members" | "cannot-disable-user-with-subscription" | "cannot-link-oauth-to-unverified-email" | "cannot-metamorph-to-pay-per-result-actor" | "cannot-modify-actor-pricing-too-frequently" | "cannot-modify-actor-pricing-with-immediate-effect" | "cannot-monetize-without-payout-billing-info" | "cannot-override-paid-actor-trial" | "cannot-permanently-delete-subscription" | "cannot-publish-actor" | "cannot-reduce-last-full-token" | "cannot-reimburse-more-than-original-charge" | "cannot-reimburse-non-rental-charge" | "cannot-remove-own-actor-from-recently-used" | "cannot-remove-payment-method" | "cannot-remove-pricing-info" | "cannot-remove-running-run" | "cannot-remove-user-with-public-actors" | "cannot-remove-user-with-subscription" | "cannot-remove-user-with-unpaid-invoice" | "cannot-rename-env-var" | "cannot-rent-paid-actor" | "cannot-review-own-actor" | "cannot-set-access-rights-for-owner" | "cannot-set-is-status-message-terminal" | "cannot-unpublish-critical-actor" | "cannot-unpublish-paid-actor" | "cannot-unpublish-profile" | "cannot-update-invoice-field" | "concurrent-runs-limit-exceeded" | "concurrent-update-detected" | "conference-token-not-found" | "content-encoding-forbidden-for-html" | "coupon-already-redeemed" | "coupon-expired" | "coupon-for-new-customers" | "coupon-for-subscribed-users" | "coupon-limits-are-in-conflict-with-current-limits" | "coupon-max-number-of-redemptions-reached" | "coupon-not-found" | "coupon-not-unique" | "coupons-disabled" | "create-github-issue-not-allowed" | "creator-plan-not-available" | "cron-expression-invalid" | "daily-ai-token-limit-exceeded" | "daily-publication-limit-exceeded" | "dataset-does-not-have-fields-schema" | "dataset-does-not-have-schema" | "dataset-locked" | "dataset-schema-invalid" | "dcr-not-supported" | "default-dataset-not-found" | "deleting-default-build" | "deleting-unfinished-build" | "email-already-taken" | "email-already-taken-removed-user" | "email-domain-not-allowed-for-coupon" | "email-invalid" | "email-not-allowed" | "email-not-valid" | "email-update-too-soon" | "elevated-permissions-needed" | "env-var-already-exists" | "exchange-rate-fetch-failed" | "expired-conference-token" | "failed-to-charge-user" | "final-invoice-negative" | "full-permission-actor-blocked-for-admin" | "full-permission-actor-not-approved" | "github-branch-empty" | "github-issue-already-exists" | "github-public-key-not-found" | "github-repository-not-found" | "github-signature-does-not-match-payload" | "github-user-not-authorized-for-issues" | "gmail-not-allowed" | "id-does-not-match" | "incompatible-billing-interval" | "incomplete-payout-billing-info" | "inconsistent-currencies" | "incorrect-pricing-modifier-prefix" | "input-json-invalid-characters" | "input-json-not-object" | "input-json-too-long" | "input-update-collision" | "insufficient-permissions" | "insufficient-permissions-to-change-field" | "insufficient-security-measures" | "insufficient-tax-country-evidence" | "integration-auth-error" | "internal-server-error" | "invalid-billing-info" | "invalid-billing-period-for-payout" | "invalid-build" | "invalid-client-key" | "invalid-collection" | "invalid-conference-login-password" | "invalid-content-type-header" | "invalid-credentials" | "invalid-git-auth-token" | "invalid-github-issue-url" | "invalid-header" | "invalid-id" | "invalid-idempotency-key" | "invalid-input" | "invalid-input-schema" | "invalid-invoice" | "invalid-invoice-type" | "invalid-issue-date" | "invalid-label-params" | "invalid-main-account-user-id" | "invalid-oauth-app" | "invalid-oauth-scope" | "invalid-one-time-invoice" | "invalid-parameter" | "invalid-payout-status" | "invalid-picture-url" | "invalid-record-key" | "invalid-request" | "invalid-resource-type" | "invalid-signature" | "invalid-subscription-plan" | "invalid-tax-number" | "invalid-tax-number-format" | "invalid-token" | "invalid-token-type" | "invalid-two-factor-code" | "invalid-two-factor-code-or-recovery-code" | "invalid-two-factor-recovery-code" | "invalid-username" | "invalid-value" | "invitation-invalid-resource-type" | "invitation-no-longer-valid" | "invoice-canceled" | "invoice-cannot-be-refunded-due-to-too-high-amount" | "invoice-incomplete" | "invoice-is-draft" | "invoice-locked" | "invoice-must-be-buffer" | "invoice-not-canceled" | "invoice-not-draft" | "invoice-not-found" | "invoice-outdated" | "invoice-paid-already" | "issue-already-connected-to-github" | "issue-not-found" | "issues-bad-request" | "issuer-not-registered" | "job-finished" | "label-already-linked" | "last-api-token" | "limit-reached" | "max-items-must-be-greater-than-zero" | "max-metamorphs-exceeded" | "max-total-charge-usd-below-minimum" | "max-total-charge-usd-must-be-greater-than-zero" | "method-not-allowed" | "migration-disabled" | "missing-actor-rights" | "missing-api-token" | "missing-billing-info" | "missing-line-items" | "missing-payment-date" | "missing-payout-billing-info" | "missing-proxy-password" | "missing-reporting-fields" | "missing-resource-name" | "missing-settings" | "missing-username" | "monthly-usage-limit-too-low" | "more-than-one-update-not-allowed" | "multiple-records-found" | "must-be-admin" | "name-not-unique" | "next-runtime-computation-failed" | "no-columns-in-exported-dataset" | "no-payment-attempt-for-refund-found" | "no-payment-method-available" | "no-team-account-seats-available" | "non-temporary-email" | "not-enough-usage-to-run-paid-actor" | "not-implemented" | "not-supported-currencies" | "o-auth-service-already-connected" | "o-auth-service-not-connected" | "oauth-resource-access-failed" | "one-time-invoice-already-marked-paid" | "only-drafts-can-be-deleted" | "operation-canceled" | "operation-not-allowed" | "operation-timed-out" | "organization-cannot-own-itself" | "organization-role-not-found" | "overlapping-payout-billing-periods" | "own-token-required" | "page-not-found" | "param-not-one-of" | "parameter-required" | "parameters-mismatched" | "password-reset-email-already-sent" | "password-reset-token-expired" | "pay-as-you-go-without-monthly-interval" | "payment-attempt-status-message-required" | "payout-already-paid" | "payout-canceled" | "payout-invalid-state" | "payout-must-be-approved-to-be-marked-paid" | "payout-not-found" | "payout-number-already-exists" | "phone-number-invalid" | "phone-number-landline" | "phone-number-opted-out" | "phone-verification-disabled" | "platform-feature-disabled" | "price-overrides-validation-failed" | "pricing-model-not-supported" | "promotional-plan-not-available" | "proxy-auth-ip-not-unique" | "public-actor-disabled" | "query-timeout" | "quoted-price-outdated" | "rate-limit-exceeded" | "recaptcha-invalid" | "recaptcha-required" | "record-not-found" | "record-not-public" | "record-or-token-not-found" | "record-too-large" | "redirect-uri-mismatch" | "reduced-plan-not-available" | "rental-charge-already-reimbursed" | "rental-not-allowed" | "request-aborted-prematurely" | "request-handled-or-locked" | "request-id-invalid" | "request-queue-duplicate-requests" | "request-too-large" | "requested-dataset-view-does-not-exist" | "resume-token-expired" | "run-failed" | "run-input-body-not-valid-json" | "run-timeout-exceeded" | "russia-is-evil" | "same-user" | "schedule-actor-not-found" | "schedule-actor-task-not-found" | "schedule-name-not-unique" | "schema-validation" | "schema-validation-error" | "schema-validation-failed" | "service-worker-registration-not-allowed" | "sign-up-method-not-allowed" | "slack-integration-not-custom" | "socket-closed" | "socket-destroyed" | "store-schema-invalid" | "store-terms-not-accepted" | "stripe-enabled" | "stripe-generic-decline" | "stripe-not-enabled" | "stripe-not-enabled-for-user" | "tagged-build-required" | "tax-country-invalid" | "tax-number-invalid" | "tax-number-validation-failed" | "taxamo-call-failed" | "taxamo-request-failed" | "testing-error" | "token-not-provided" | "too-few-versions" | "too-many-actor-tasks" | "too-many-actors" | "too-many-labels-on-resource" | "too-many-mcp-connectors" | "too-many-o-auth-apps" | "too-many-organizations" | "too-many-requests" | "too-many-schedules" | "too-many-ui-access-keys" | "too-many-user-labels" | "too-many-values" | "too-many-versions" | "too-many-webhooks" | "unexpected-route" | "unknown-build-tag" | "unknown-payment-provider" | "unsubscribe-token-invalid" | "unsupported-actor-pricing-model-for-agentic-payments" | "unsupported-content-encoding" | "unsupported-file-type-for-issue" | "unsupported-file-type-image-expected" | "unsupported-file-type-text-or-json-expected" | "unsupported-permission" | "upcoming-subscription-bill-not-up-to-date" | "user-already-exists" | "user-already-verified" | "user-creates-organizations-too-fast" | "user-disabled" | "user-email-is-disposable" | "user-email-not-set" | "user-email-not-verified" | "user-has-no-subscription" | "user-integration-not-found" | "user-is-already-invited" | "user-is-already-organization-member" | "user-is-not-member-of-organization" | "user-is-not-organization" | "user-is-organization" | "user-is-organization-owner" | "user-is-removed" | "user-not-found" | "user-not-logged-in" | "user-not-verified" | "user-or-token-not-found" | "user-plan-not-allowed-for-coupon" | "user-problem-with-card" | "user-record-not-found" | "username-already-taken" | "username-missing" | "username-not-allowed" | "username-removal-forbidden" | "username-required" | "verification-email-already-sent" | "verification-token-expired" | "version-already-exists" | "versions-size-exceeded" | "weak-password" | "x402-agentic-payment-already-finalized" | "x402-agentic-payment-insufficient-amount" | "x402-agentic-payment-malformed-token" | "x402-agentic-payment-settlement-failed" | "x402-agentic-payment-settlement-in-progress" | "x402-agentic-payment-settlement-stuck" | "x402-agentic-payment-unauthorized" | "x402-payment-required" | "zero-invoice"; + /** ErrorDetail */ + ErrorDetail: { + type?: components["schemas"]["ErrorType"]; + /** @description Human-readable error message describing what went wrong. */ + message?: string; + }; + /** ErrorResponse */ + ErrorResponse: { + error: components["schemas"]["ErrorDetail"]; + }; + /** + * VersionSourceType + * @enum {string} + */ + VersionSourceType: "SOURCE_FILES" | "GIT_REPO" | "TARBALL" | "GITHUB_GIST" | "SOURCE_CODE"; + /** EnvVar */ + EnvVar: { + /** + * @description The name of the environment variable. + * @example MY_ENV_VAR + */ + name: string; + /** + * @description The value of the environment variable. If `isSecret` is `true`, this value isn't returned by the API. + * @example my-value + */ + value?: string; + /** + * @description Whether the environment variable is encrypted. Secret values aren't returned by the API. + * @example false + */ + isSecret?: boolean | null; + }; + /** + * @example TEXT + * @enum {string} + */ + SourceCodeFileFormat: "BASE64" | "TEXT"; + /** + * SourceCodeFile + * @description Represents a single file in the Actor's source code. + */ + SourceCodeFile: { + /** @description Format of the file's content, `TEXT` for plain text and `BASE64` for encoded content. */ + format?: components["schemas"]["SourceCodeFileFormat"]; + /** + * @description The contents of the file. Interpreted based on the value of `format`. + * @example console.log('This is the main.js file'); + */ + content?: string; + /** + * @description The path of the file relative to the Actor's root directory. + * @example src/main.js + */ + name: string; + }; + /** + * SourceCodeFolder + * @description Represents a folder in the Actor's source code structure. Distinguished from + * SourceCodeFile by the presence of the `folder` property set to `true`. + */ + SourceCodeFolder: { + /** + * @description The path of the folder relative to the Actor's root directory. + * @example src/utils + */ + name: string; + /** + * @description Whether it's a folder. Distinguishes folders from files. + * @example true + */ + folder: boolean; + }; + /** VersionSourceFiles */ + VersionSourceFiles: (components["schemas"]["SourceCodeFile"] | components["schemas"]["SourceCodeFolder"])[]; + /** Version */ + Version: { + /** + * @description The version number of the Actor. Two numbers separated by a dot, that represent the `MAJOR.MINOR` part of the semantic versioning. + * @example 0.0 + */ + versionNumber: string; + /** @description Where the source code of the version lives. */ + sourceType: components["schemas"]["VersionSourceType"] | null; + /** @description Environment variables for the version. */ + envVars?: components["schemas"]["EnvVar"][] | null; + /** + * @description Whether to inject the environment variables at build time. + * @example false + */ + applyEnvVarsToBuild?: boolean | null; + /** + * @description The tag name to apply to a successful build of this version. Can be `null` when the version has no build tag. + * @example latest + */ + buildTag?: string | null; + /** @description Applies when the `sourceType` is `SOURCE_FILES`. Represents the Actor's file structure as an array of files and folders. */ + sourceFiles?: components["schemas"]["VersionSourceFiles"]; + /** @description URL of the Git repository to clone the source code from. Applies when the `sourceType` is `GIT_REPO`. */ + gitRepoUrl?: string | null; + /** @description URL to download the source code from as a tarball or ZIP file. Applies when the `sourceType` is `TARBALL`. */ + tarballUrl?: string | null; + /** @description URL of the GitHub Gist to clone the source code from. Applies when the `sourceType` is `GITHUB_GIST`. */ + gitHubGistUrl?: string | null; + }; + /** CommonActorPricingInfo */ + CommonActorPricingInfo: { + /** @description In [0, 1], fraction of pricePerUnitUsd that goes to Apify */ + apifyMarginPercentage: number; + /** + * Format: date-time + * @description When this pricing info record has been created + */ + createdAt: Date; + /** + * Format: date-time + * @description Since when is this pricing info record effective for a given Actor + */ + startedAt: Date; + /** Format: date-time */ + notifiedAboutFutureChangeAt?: Date | null; + /** Format: date-time */ + notifiedAboutChangeAt?: Date | null; + reasonForChange?: string | null; + isPriceChangeNotificationSuppressed?: boolean; + forceContainsSignificantPriceChange?: boolean; + }; + /** + * TieredPricingPerEventEntry + * @description A single tier's price-per-event entry. + */ + TieredPricingPerEventEntry: { + /** @description Price per event in USD for this tier. */ + tieredEventPriceUsd: number; + }; + /** + * TieredPricingPerEvent + * @description Tiered price-per-event pricing for a single charge event, keyed by subscription tier (e.g. `FREE`, `BRONZE`, + * `SILVER`, `GOLD`, `PLATINUM`, `DIAMOND`). The actual price applied is resolved from the user's tier. + */ + TieredPricingPerEvent: { + [key: string]: components["schemas"]["TieredPricingPerEventEntry"]; + }; + /** + * ActorChargeEvent + * @description Definition of a single chargeable event for a pay-per-event Actor. Each event is either flat-priced + * (`eventPriceUsd` is set) or tier-priced (`eventTieredPricingUsd` is set); the two are mutually exclusive. + */ + ActorChargeEvent: { + /** @description Human-readable title shown to users in the billing UI. */ + eventTitle: string; + /** @description Human-readable description of what triggers this event. */ + eventDescription: string; + /** @description Flat price per event in USD. Present only for non-tiered events. Mutually exclusive with `eventTieredPricingUsd`. */ + eventPriceUsd?: number; + eventTieredPricingUsd?: components["schemas"]["TieredPricingPerEvent"]; + /** @description Whether this event is the Actor's primary chargeable event. */ + isPrimaryEvent?: boolean; + /** @description Whether this event can only be charged once per Actor run. */ + isOneTimeEvent?: boolean; + }; + /** PayPerEventActorPricingInfo */ + PayPerEventActorPricingInfo: components["schemas"]["CommonActorPricingInfo"] & { + /** @constant */ + pricingModel: "PAY_PER_EVENT"; + pricingPerEvent: { + actorChargeEvents?: { + [key: string]: components["schemas"]["ActorChargeEvent"]; + }; + }; + minimalMaxTotalChargeUsd?: number | null; + } & { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + pricingModel: "PAY_PER_EVENT"; + }; + /** + * TieredPricingPerDatasetItemEntry + * @description A single tier's price-per-dataset-item entry. + */ + TieredPricingPerDatasetItemEntry: { + /** @description Price per unit in USD for this tier. */ + tieredPricePerUnitUsd: number; + }; + /** + * TieredPricingPerDatasetItem + * @description Tiered price-per-dataset-item pricing, keyed by subscription tier (e.g. `FREE`, `BRONZE`, `SILVER`, `GOLD`, + * `PLATINUM`, `DIAMOND`). The actual price applied to a run is resolved from the user's tier. + */ + TieredPricingPerDatasetItem: { + [key: string]: components["schemas"]["TieredPricingPerDatasetItemEntry"]; + }; + /** PricePerDatasetItemActorPricingInfo */ + PricePerDatasetItemActorPricingInfo: components["schemas"]["CommonActorPricingInfo"] & { + /** @constant */ + pricingModel: "PRICE_PER_DATASET_ITEM"; + /** @description Name of the unit that is being charged */ + unitName: string; + /** + * @description Price per unit in USD. Mutually exclusive with `tieredPricing` - exactly one of the two is present + * on a pricing record. + */ + pricePerUnitUsd?: number; + tieredPricing?: components["schemas"]["TieredPricingPerDatasetItem"]; + } & { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + pricingModel: "PRICE_PER_DATASET_ITEM"; + }; + /** FlatPricePerMonthActorPricingInfo */ + FlatPricePerMonthActorPricingInfo: components["schemas"]["CommonActorPricingInfo"] & { + /** @constant */ + pricingModel: "FLAT_PRICE_PER_MONTH"; + /** @description For how long this Actor can be used for free in trial period */ + trialMinutes: number; + /** @description Monthly flat price in USD */ + pricePerUnitUsd: number; + } & { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + pricingModel: "FLAT_PRICE_PER_MONTH"; + }; + /** FreeActorPricingInfo */ + FreeActorPricingInfo: components["schemas"]["CommonActorPricingInfo"] & { + /** @constant */ + pricingModel: "FREE"; + } & { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + pricingModel: "FREE"; + }; + /** ActorRunPricingInfo */ + ActorRunPricingInfo: components["schemas"]["PayPerEventActorPricingInfo"] | components["schemas"]["PricePerDatasetItemActorPricingInfo"] | components["schemas"]["FlatPricePerMonthActorPricingInfo"] | components["schemas"]["FreeActorPricingInfo"]; + /** + * @description Determines the permission level that the Actor requires to run. For details, see [Actor permissions](https://docs.apify.com/platform/actors/development/permissions). + * @example LIMITED_PERMISSIONS + * @enum {string} + */ + ActorPermissionLevel: "LIMITED_PERMISSIONS" | "FULL_PERMISSIONS"; + /** + * DefaultRunOptions + * @description The default settings applied to an Actor run. Can be overridden elsewhere. + */ + DefaultRunOptions: { + /** + * @description Which build to run. Either a build tag or a version number. + * @example latest + */ + build?: string; + /** + * @description Timeout in seconds. 0 if no timeout. + * @example 3600 + */ + timeoutSecs?: number; + /** + * @description In MB, the amount of memory allocated to the run. + * @example 2048 + */ + memoryMbytes?: number; + /** + * @description Whether to automatically restart the run if it fails. + * @example false + */ + restartOnError?: boolean; + /** @description Maximum number of items the run might produce. */ + maxItems?: number | null; + forcePermissionLevel?: components["schemas"]["ActorPermissionLevel"] | null; + }; + /** ActorStandby */ + ActorStandby: { + /** @description Whether standby mode is enabled for the Actor. */ + isEnabled?: boolean | null; + /** @description Target number of concurrent HTTP requests a single run is configured to handle. */ + desiredRequestsPerActorRun?: number | null; + /** @description Maximum number of concurrent HTTP requests that can be routed to a single run. */ + maxRequestsPerActorRun?: number | null; + /** @description In seconds, how long a run can stay idle without incoming requests before it's terminated. */ + idleTimeoutSecs?: number | null; + /** @description Which build to run in standby mode. Either a build tag or a version number. */ + build?: string | null; + /** @description In MB, the amount of memory allocated to the run. */ + memoryMbytes?: number | null; + /** @description If `true`, prevents the standby mode configuration from being overridden elsewhere. */ + disableStandbyFieldsOverride?: boolean | null; + /** @description Whether to pass the Actor's input to the standby run. If `false`, the standby runs start with no input. */ + shouldPassActorInput?: boolean | null; + }; + /** ExampleRunInput */ + ExampleRunInput: { + /** + * @description Sample input, serialized as a string. + * @example { "helloWorld": 123 } + */ + body?: string; + /** + * @description MIME type of `body`. + * @example application/json; charset=utf-8 + */ + contentType?: string; + }; + /** CreateActorRequest */ + CreateActorRequest: { + /** + * @description The identifier of the Actor. Use lowercase letters, numbers, and hyphens. Spaces or special characters aren't allowed. Must be unique across your account. + * @example instagram-scraper + */ + name?: string | null; + /** + * @description Short description of the Actor, displayed in Apify Store and Console. + * @example This scraper extracts posts and comments from Instagram. + */ + description?: string | null; + /** + * @description Human-readable name of the Actor, displayed in Apify Store and Console. Can contain spaces and capital letters. Recommended length is 40-50 characters. You can change this title without affecting the Actor's URL or SEO. + * @example Instagram scraper + */ + title?: string | null; + /** + * @description Whether the Actor is available to users in Apify Store. If `false`, the Actor is private and only visible to you. + * @example false + */ + isPublic?: boolean | null; + /** + * @description Name of the Actor to display by search engines such as Google. Can be different from the Actor's name displayed in Apify Store and Console. Recommended length is 40-50 characters. + * @example Free Instagram scraper + */ + seoTitle?: string | null; + /** + * @description Description of the Actor to display by search engines such as Google. Recommended length is 140-156 characters. + * @example The best scraper for Instagram + */ + seoDescription?: string | null; + /** + * @deprecated + * @example false + */ + restartOnError?: boolean; + /** @description An array of `Version` objects. Each object represents a specific version of the Actor's source code: its location, builds, and environment configuration. */ + versions?: components["schemas"]["Version"][] | null; + pricingInfos?: components["schemas"]["ActorRunPricingInfo"][]; + /** + * @description A list of categories that best define the Actor. Reflected in Apify Store's search and filtering options. + * @example [ + * "SOCIAL_MEDIA" + * ] + */ + categories?: string[] | null; + defaultRunOptions?: components["schemas"]["DefaultRunOptions"]; + /** @description The configuration of the Actor's standby mode. For details, see [Standby mode](https://docs.apify.com/platform/actors/development/programming-interface/standby). */ + actorStandby?: components["schemas"]["ActorStandby"] | null; + /** @description Sample input payload that demonstrates what a typical run input for an Actor looks like. Used when no explicit input for a run is provided. */ + exampleRunInput?: components["schemas"]["ExampleRunInput"] | null; + /** @description Whether the Actor is deprecated. */ + isDeprecated?: boolean | null; + }; + /** + * TaggedBuildInfo + * @description Information about a tagged build. + */ + TaggedBuildInfo: { + /** + * @description The ID of the build associated with this tag. + * @example z2EryhbfhgSyqj6Hn + */ + buildId?: string; + /** + * @description The build number/version string. Can be `null` for legacy builds that lack a valid build number. + * @example 0.0.2 + */ + buildNumber?: string | null; + /** + * @description The build number encoded as a single integer. + * @example 42 + */ + buildNumberInt?: number; + /** + * Format: date-time + * @description The timestamp when the build finished. + * @example 2019-06-10T11:15:49.286Z + */ + finishedAt?: Date | null; + }; + /** + * TaggedBuilds + * @description A dictionary mapping build tag names (e.g., "latest", "beta") to their build information. + * @example { + * "latest": { + * "buildId": "z2EryhbfhgSyqj6Hn", + * "buildNumber": "0.0.2", + * "finishedAt": "2019-06-10T11:15:49.286Z" + * }, + * "beta": { + * "buildId": "abc123def456", + * "buildNumber": "1.0.5", + * "finishedAt": "2019-07-15T14:30:00.000Z" + * } + * } + */ + TaggedBuilds: { + [key: string]: components["schemas"]["TaggedBuildInfo"] | null; + }; + /** + * ActorNotice + * @description A warning displayed on the Actor's page in Apify Store and Console. Can be set by the Actor's developer or automatically by Apify's quality checks. + * @example UNDER_MAINTENANCE + * @enum {string|null} + */ + ActorNotice: "NONE" | "RESIDENTIAL_PROXY_REQUIRED" | "UNDER_MAINTENANCE" | null; + /** Actor */ + Actor: { + /** + * @description The ID of the Actor. + * @example zdc3Pyhyz3m8vjDeM + */ + id: string; + /** + * @description The ID of the user who owns the Actor. + * @example wRsJZtadYvn4mBZmm + */ + userId: string; + /** + * @description The name of the Actor. + * @example google-search-extractor + */ + name: string; + /** + * @description The username of the Actor owner. + * @example compass + */ + username: string; + /** + * @description Short description of the Actor, displayed in Apify Store and Console. + * @example Extract data from hundreds of places fast. + */ + description?: string | null; + /** + * @deprecated + * @example false + */ + restartOnError?: boolean; + /** + * @description Whether the Actor is available to users in Apify Store. + * @example false + */ + isPublic: boolean; + actorPermissionLevel?: components["schemas"]["ActorPermissionLevel"]; + /** + * Format: date-time + * @description The date and time the Actor was created. Follows the ISO 8601 format. + * @example 2019-07-08T11:27:57.401Z + */ + createdAt: Date; + /** + * Format: date-time + * @description The date and time the Actor was last modified. Follows the ISO 8601 format. + * @example 2019-07-08T14:01:05.546Z + */ + modifiedAt: Date; + stats: components["schemas"]["ActorStats"]; + /** @description An array of `Version` objects. Each object represents a specific version of the Actor's source code: its location, builds, and environment configuration. */ + versions: components["schemas"]["Version"][]; + pricingInfos?: components["schemas"]["ActorRunPricingInfo"][]; + defaultRunOptions: components["schemas"]["DefaultRunOptions"]; + exampleRunInput?: components["schemas"]["ExampleRunInput"] | null; + /** + * @description Whether the Actor is deprecated. + * @example false + */ + isDeprecated?: boolean | null; + /** + * @description The Actor's public SSH key, used as a deployment key for private Git repositories. + * @example ssh-rsa AAAA ... + */ + deploymentKey?: string; + /** + * @description Human-readable name of the Actor, displayed in Apify Store and Console. + * @example Google Search Extractor + */ + title?: string | null; + taggedBuilds?: components["schemas"]["TaggedBuilds"] | null; + actorStandby?: components["schemas"]["ActorStandby"] | null; + /** @description An AI-generated Markdown summary of the Actor's README, optimized for search and AI agents. Contains an overview and a list of use cases. Generated only for public Actors. */ + readmeSummary?: string; + /** + * @description Name of the Actor to display by search engines such as Google. Can be different from the Actor's name displayed in Apify Store and Console. + * @example Web Scraper + */ + seoTitle?: string | null; + /** + * @description Description of the Actor to display by search engines such as Google. + * @example Crawls websites using Chrome and extracts data from pages using JavaScript. + */ + seoDescription?: string | null; + /** + * @description URL of the Actor's icon, displayed on the Actor's page in Apify Store and Console. + * @example https://apify-image-uploads-prod.s3.amazonaws.com/.../actor-picture.png + */ + pictureUrl?: string | null; + /** + * @description URL for sending requests to the Actor in Standby mode. + * `null` if the Standby mode isn't enabled. + * @example https://jane35--my-actor.apify.actor + */ + standbyUrl?: string | null; + notice?: components["schemas"]["ActorNotice"]; + /** + * @description A list of categories that best define the Actor. Reflected in Apify Store's search and filtering options. + * @example [ + * "DEVELOPER_TOOLS", + * "OPEN_SOURCE" + * ] + */ + categories?: string[]; + /** + * @description Whether the Actor is maintained by Apify. + * @example false + */ + isCritical?: boolean; + /** + * @description Whether the Actor is intended for developers. Set by Apify. + * @example false + */ + isGeneric?: boolean; + /** + * @description Whether the Actor's source files are hidden on its detail page. + * @default true + * @example true + */ + isSourceCodeHidden: boolean; + /** + * @description Whether the Actor stores results in a dataset. Set by Apify. + * @example false + */ + hasNoDataset?: boolean; + }; + /** + * ActorResponse + * @description Response containing Actor data. + */ + ActorResponse: { + data: components["schemas"]["Actor"]; + }; + /** CreateOrUpdateVersionRequest */ + CreateOrUpdateVersionRequest: { + /** + * @description The version number of the Actor. Two numbers separated by a dot, that represent the `MAJOR.MINOR` part of the semantic versioning. + * @example 1.6 + */ + versionNumber?: string | null; + /** @description Where the source code of the version lives. */ + sourceType?: components["schemas"]["VersionSourceType"] | null; + /** @description Environment variables for the version. */ + envVars?: components["schemas"]["EnvVar"][] | null; + /** + * @description Whether to inject the environment variables at build time. + * @example false + */ + applyEnvVarsToBuild?: boolean | null; + /** + * @description The tag name to apply to a successful build of this version. Can be `null` when the version has no build tag. + * @example latest + */ + buildTag?: string | null; + /** @description Applies when the `sourceType` is `SOURCE_FILES`. Represents the Actor's file structure as an array of files and folders. */ + sourceFiles?: components["schemas"]["VersionSourceFiles"]; + /** @description URL of the Git repository to clone the source code from. Applies when the `sourceType` is `GIT_REPO`. */ + gitRepoUrl?: string | null; + /** @description URL of the tarball to download the source code from. Applies when the `sourceType` is `TARBALL`. */ + tarballUrl?: string | null; + /** @description URL of the GitHub Gist to clone the source code from. Applies when the `sourceType` is `GITHUB_GIST`. */ + gitHubGistUrl?: string | null; + }; + /** + * BuildTag + * @description The name of the build tag. + */ + BuildTag: { + /** @description The ID of the build to assign to the tag. */ + buildId: string; + } | null; + /** UpdateActorRequest */ + UpdateActorRequest: { + /** + * @description The identifier of the Actor. Use lowercase letters, numbers, and hyphens. Spaces or special characters aren't allowed. Must be unique across your account. + * @example instagram-scraper + */ + name?: string; + /** + * @description Short description of the Actor, displayed in Apify Store and Console. + * @example This scraper extracts posts and comments from Instagram. + */ + description?: string | null; + /** + * @description Whether the Actor is available to users in Apify Store. If `false`, the Actor is private and only visible to you. + * @example false + */ + isPublic?: boolean; + actorPermissionLevel?: components["schemas"]["ActorPermissionLevel"] | null; + /** + * @description Name of the Actor to display by search engines such as Google. Can be different from the Actor's name displayed in Apify Store and Console. Recommended length is 40-50 characters. + * @example Free Instagram scraper + */ + seoTitle?: string | null; + /** + * @description Description of the Actor to display by search engines such as Google. Recommended length is 140-156 characters. + * @example The best scraper for Instagram + */ + seoDescription?: string | null; + /** + * @description Human-readable name of the Actor, displayed in Apify Store and Console. Can contain spaces and capital letters. Recommended length is 40-50 characters. You can change this title without affecting the Actor's URL or SEO. + * @example Instagram scraper + */ + title?: string | null; + /** + * @deprecated + * @example false + */ + restartOnError?: boolean; + /** @description An array of `Version` objects. Each object represents a specific version of the Actor's source code: its location, builds, and environment configuration. */ + versions?: components["schemas"]["CreateOrUpdateVersionRequest"][]; + pricingInfos?: components["schemas"]["ActorRunPricingInfo"][]; + /** + * @description A list of categories that best define the Actor. Reflected in Apify Store's search and filtering options. + * @example [ + * "SOCIAL_MEDIA" + * ] + */ + categories?: string[] | null; + /** @description The default settings applied to an Actor run. Can be overridden by the user. */ + defaultRunOptions?: components["schemas"]["DefaultRunOptions"] | null; + /** + * @description A dictionary that maps tag names to specific builds. For details, see [Update build tags](#update-build-tags). + * @example { + * "latest": { + * "buildId": "z2EryhbfhgSyqj6Hn" + * }, + * "beta": null + * } + */ + taggedBuilds?: { + [key: string]: components["schemas"]["BuildTag"]; + } | null; + /** @description The configuration of the Actor's standby mode. For details, see [Standby mode](https://docs.apify.com/platform/actors/development/programming-interface/standby). */ + actorStandby?: components["schemas"]["ActorStandby"] | null; + /** @description Sample input payload that demonstrates what a typical run input for an Actor looks like. Used when no explicit input for a run is provided. */ + exampleRunInput?: components["schemas"]["ExampleRunInput"] | null; + /** @description Whether the Actor is deprecated. */ + isDeprecated?: boolean | null; + }; + /** ListOfVersions */ + ListOfVersions: { + /** @example 5 */ + total: number; + items: components["schemas"]["Version"][]; + }; + /** ListOfVersionsResponse */ + ListOfVersionsResponse: { + data: components["schemas"]["ListOfVersions"]; + }; + /** VersionResponse */ + VersionResponse: { + data: components["schemas"]["Version"]; + }; + /** ListOfEnvVars */ + ListOfEnvVars: { + /** @example 5 */ + total: number; + items: components["schemas"]["EnvVar"][]; + }; + /** ListOfEnvVarsResponse */ + ListOfEnvVarsResponse: { + data: components["schemas"]["ListOfEnvVars"]; + }; + /** EnvVarRequest */ + EnvVarRequest: components["schemas"]["EnvVar"] & unknown; + /** EnvVarResponse */ + EnvVarResponse: { + data: components["schemas"]["EnvVar"]; + }; + /** + * WebhookEventType + * @description Type of event that triggers the webhook. + * @enum {string} + */ + WebhookEventType: "ACTOR.BUILD.ABORTED" | "ACTOR.BUILD.CREATED" | "ACTOR.BUILD.FAILED" | "ACTOR.BUILD.SUCCEEDED" | "ACTOR.BUILD.TIMED_OUT" | "ACTOR.RUN.ABORTED" | "ACTOR.RUN.CREATED" | "ACTOR.RUN.FAILED" | "ACTOR.RUN.RESURRECTED" | "ACTOR.RUN.SUCCEEDED" | "ACTOR.RUN.TIMED_OUT" | "TEST"; + /** WebhookCondition */ + WebhookCondition: { + /** @example hksJZtadYvn4mBuin */ + actorId?: string | null; + /** @example asdLZtadYvn4mBZmm */ + actorTaskId?: string | null; + /** @example hgdKZtadYvn4mBpoi */ + actorRunId?: string | null; + }; + /** + * WebhookDispatchStatus + * @description Status of the webhook dispatch indicating whether the HTTP request was successful. + * @enum {string} + */ + WebhookDispatchStatus: "ACTIVE" | "SUCCEEDED" | "FAILED"; + /** ExampleWebhookDispatch */ + ExampleWebhookDispatch: { + status: components["schemas"]["WebhookDispatchStatus"]; + /** + * Format: date-time + * @example 2019-12-13T08:36:13.202Z + */ + finishedAt?: Date | null; + /** + * Format: date-time + * @example null + */ + removedAt?: Date | null; + }; + /** WebhookStats */ + WebhookStats: { + /** @example 1 */ + totalDispatches?: number; + }; + /** WebhookShort */ + WebhookShort: { + /** @example YiKoxjkaS9gjGTqhF */ + id: string; + /** + * Format: date-time + * @example 2019-12-12T07:34:14.202Z + */ + createdAt: Date; + /** + * Format: date-time + * @example 2019-12-13T08:36:13.202Z + */ + modifiedAt: Date; + /** @example wRsJZtadYvn4mBZmm */ + userId: string; + /** @example false */ + isAdHoc?: boolean | null; + /** @example false */ + isApifyIntegration?: boolean; + /** @example true */ + isEnabled?: boolean; + /** @example HTTP_REQUEST */ + actionType?: string; + /** @example false */ + shouldInterpolateStrings?: boolean | null; + /** + * @example [ + * "ACTOR.RUN.SUCCEEDED" + * ] + */ + eventTypes: components["schemas"]["WebhookEventType"][]; + condition: components["schemas"]["WebhookCondition"]; + /** @example false */ + ignoreSslErrors: boolean; + /** @example false */ + doNotRetry: boolean; + /** + * Format: uri + * @example http://example.com/ + */ + requestUrl: string; + lastDispatch?: components["schemas"]["ExampleWebhookDispatch"] | null; + stats?: components["schemas"]["WebhookStats"] | null; + }; + /** ListOfWebhooks */ + ListOfWebhooks: components["schemas"]["PaginationResponse"] & { + items: components["schemas"]["WebhookShort"][]; + }; + /** ListOfWebhooksResponse */ + ListOfWebhooksResponse: { + data: components["schemas"]["ListOfWebhooks"]; + }; + /** + * ActorJobStatus + * @description Status of an Actor job (run or build). + * @enum {string} + */ + ActorJobStatus: "READY" | "RUNNING" | "SUCCEEDED" | "FAILED" | "TIMING-OUT" | "TIMED-OUT" | "ABORTING" | "ABORTED"; + /** + * RunOrigin + * @enum {string} + */ + RunOrigin: "DEVELOPMENT" | "WEB" | "API" | "SCHEDULER" | "TEST" | "WEBHOOK" | "ACTOR" | "CLI" | "CI" | "STANDBY" | "MCP"; + /** BuildsMeta */ + BuildsMeta: { + origin: components["schemas"]["RunOrigin"]; + /** + * @description IP address of the client that started the build. + * @example 172.234.12.34 + */ + clientIp?: string; + /** + * @description User agent of the client that started the build. + * @example Mozilla/5.0 (iPad) + */ + userAgent?: string; + }; + /** BuildShort */ + BuildShort: { + /** @example HG7ML7M8z78YcAPEB */ + id: string; + /** @example janedoe~my-actor */ + actId?: string; + /** @example klmdEpoiojmdEMlk3 */ + userId?: string; + status: components["schemas"]["ActorJobStatus"]; + /** + * Format: date-time + * @example 2019-11-30T07:34:24.202Z + */ + startedAt: Date; + /** + * Format: date-time + * @example 2019-12-12T09:30:12.202Z + */ + finishedAt?: Date | null; + /** @example 0.02 */ + usageTotalUsd: number; + /** @example 0.1.1 */ + buildNumber: string; + /** @example 10000 */ + buildNumberInt?: number; + meta?: components["schemas"]["BuildsMeta"]; + }; + /** ListOfBuilds */ + ListOfBuilds: components["schemas"]["PaginationResponse"] & { + items: components["schemas"]["BuildShort"][]; + }; + /** ListOfBuildsResponse */ + ListOfBuildsResponse: { + data: components["schemas"]["ListOfBuilds"]; + }; + /** BuildStats */ + BuildStats: { + /** @example 1000 */ + durationMillis?: number; + /** @example 45.718 */ + runTimeSecs?: number; + /** @example 0.0126994444444444 */ + computeUnits?: number; + /** @example 975770223 */ + imageSizeBytes?: number | null; + }; + /** BuildOptions */ + BuildOptions: { + /** @example false */ + useCache?: boolean | null; + /** @example false */ + betaPackages?: boolean | null; + /** @example 1024 */ + memoryMbytes?: number | null; + /** @example 2048 */ + diskMbytes?: number | null; + }; + /** BuildUsage */ + BuildUsage: { + /** @example 0.08 */ + ACTOR_COMPUTE_UNITS?: number | null; + }; + /** + * ActorDefinition + * @description The definition of the Actor, the full specification of this field can be found in [Apify docs](https://docs.apify.com/platform/actors/development/actor-definition/actor-json) + */ + ActorDefinition: { + /** + * @description The Actor specification version that this Actor follows. This property must be set to 1. + * @constant + */ + actorSpecification?: 1; + /** @description The name of the Actor. */ + name?: string; + /** @description The version of the Actor, typically a dot-separated sequence of numbers (e.g., `0.1`, `1.0`, or `0.0.1`). */ + version?: string; + /** @description The tag name to be applied to a successful build of the Actor. Defaults to 'latest' if not specified. */ + buildTag?: string; + /** @description A map of environment variables to be used during local development and deployment. */ + environmentVariables?: { + [key: string]: string; + }; + /** @description The path to the Dockerfile used for building the Actor on the platform. */ + dockerfile?: string; + /** @description The path to the directory used as the Docker context when building the Actor. */ + dockerContextDir?: string; + /** @description The path to the README file for the Actor. */ + readme?: string; + /** @description The input schema object, the full specification can be found in [Apify docs](https://docs.apify.com/platform/actors/development/actor-definition/input-schema) */ + input?: Record; + /** @description The path to the CHANGELOG file displayed in the Actor's information tab. */ + changelog?: string; + storages?: { + /** @description Defines the schema of items in your dataset, the full specification can be found in [Apify docs](https://docs.apify.com/platform/actors/development/actor-definition/dataset-schema) */ + dataset?: Record; + }; + /** @description Specifies the default amount of memory in megabytes to be used when the Actor is started. Can be an integer or a [dynamic memory expression](https://docs.apify.com/actors/development/actor-definition/dynamic-actor-memory). */ + defaultMemoryMbytes?: string | number; + /** @description Specifies the minimum amount of memory in megabytes required by the Actor. */ + minMemoryMbytes?: number; + /** @description Specifies the maximum amount of memory in megabytes required by the Actor. */ + maxMemoryMbytes?: number; + /** @description Specifies whether Standby mode is enabled for the Actor. */ + usesStandbyMode?: boolean; + }; + /** + * Build + * @example { + * "id": "HG7ML7M8z78YcAPEB", + * "actId": "janedoe~my-actor", + * "userId": "klmdEpoiojmdEMlk3", + * "startedAt": "2019-11-30T07:34:24.202Z", + * "finishedAt": "2019-12-12T09:30:12.202Z", + * "status": "SUCCEEDED", + * "meta": { + * "origin": "WEB", + * "clientIp": "172.234.12.34", + * "userAgent": "Mozilla/5.0 (iPad)" + * }, + * "stats": { + * "durationMillis": 1000, + * "runTimeSecs": 45.718, + * "computeUnits": 0.012699444444444444 + * }, + * "options": { + * "useCache": false, + * "betaPackages": false, + * "memoryMbytes": 1024, + * "diskMbytes": 2048 + * }, + * "usage": { + * "ACTOR_COMPUTE_UNITS": 0.08 + * }, + * "usageTotalUsd": 0.02, + * "usageUsd": { + * "ACTOR_COMPUTE_UNITS": 0.02 + * }, + * "inputSchema": "{\\n \"title\": \"Schema for ...\"}", + * "readme": "# Magic Actor\\nThis Actor is magic.", + * "buildNumber": "0.1.1", + * "actorDefinition": { + * "actorSpecification": 1, + * "name": "example-actor", + * "version": "1.0", + * "buildTag": "latest", + * "environmentVariables": { + * "DEBUG_MODE": "false" + * }, + * "input": { + * "type": "object", + * "properties": { + * "prompt": { + * "type": "string", + * "description": "The text prompt to generate completions for." + * }, + * "maxTokens": { + * "type": "integer", + * "description": "The maximum number of tokens to generate." + * } + * }, + * "required": [ + * "prompt" + * ] + * }, + * "storages": { + * "dataset": { + * "type": "object", + * "$schema": "http://json-schema.org/draft-07/schema#", + * "properties": { + * "id": { + * "type": "string", + * "description": "Unique identifier for the generated text." + * }, + * "text": { + * "type": "string", + * "description": "The generated text output from the model." + * } + * }, + * "required": [ + * "id", + * "text" + * ] + * } + * }, + * "minMemoryMbytes": 512, + * "maxMemoryMbytes": 2048, + * "usesStandbyMode": false + * } + * } + */ + Build: { + /** @example HG7ML7M8z78YcAPEB */ + id: string; + /** @example janedoe~my-actor */ + actId: string; + /** @example klmdEpoiojmdEMlk3 */ + userId: string; + /** + * Format: date-time + * @example 2019-11-30T07:34:24.202Z + */ + startedAt: Date; + /** + * Format: date-time + * @example 2019-12-12T09:30:12.202Z + */ + finishedAt?: Date | null; + status: components["schemas"]["ActorJobStatus"]; + meta: components["schemas"]["BuildsMeta"]; + stats?: components["schemas"]["BuildStats"] | null; + options?: components["schemas"]["BuildOptions"] | null; + usage?: components["schemas"]["BuildUsage"] | null; + /** + * @description Total cost in USD for this build. Requires authentication token to access. + * @example 0.02 + */ + usageTotalUsd?: number | null; + /** @description Platform usage costs breakdown in USD for this build. Requires authentication token to access. */ + usageUsd?: components["schemas"]["BuildUsage"] | null; + /** + * @deprecated + * @example {\n "title": "Schema for ... } + */ + inputSchema?: string | null; + /** + * @deprecated + * @example # Magic Actor\nThis Actor is magic. + */ + readme?: string | null; + /** @example 0.1.1 */ + buildNumber: string; + /** + * BuildActVersion + * @description Snapshot of the Actor version that this build was created from. + */ + actVersion?: { + sourceType?: components["schemas"]["VersionSourceType"]; + /** @example experimental */ + buildTag?: string; + /** @example 0.0 */ + versionNumber?: string; + /** + * @description URL of the git repository, present when sourceType is GIT_REPO. + * @example https://github.com/apifytech/actor-crawler.git#experimental:web-scraper + */ + gitRepoUrl?: string; + /** @description Inline source files, present when sourceType is SOURCE_FILES. */ + sourceFiles?: components["schemas"]["SourceCodeFile"][]; + }; + actorDefinition?: components["schemas"]["ActorDefinition"] | null; + }; + /** + * BuildResponse + * @description Response containing Actor build data. + */ + BuildResponse: { + data: components["schemas"]["Build"]; + }; + /** RunMeta */ + RunMeta: { + origin: components["schemas"]["RunOrigin"]; + /** @description IP address of the client that started the run. */ + clientIp?: string | null; + /** @description User agent of the client that started the run. */ + userAgent?: string | null; + /** @description ID of the schedule that triggered the run. */ + scheduleId?: string | null; + /** + * Format: date-time + * @description Time when the run was scheduled. + */ + scheduledAt?: Date | null; + }; + /** RunShort */ + RunShort: { + /** @example HG7ML7M8z78YcAPEB */ + id: string; + /** @example HDSasDasz78YcAPEB */ + actId: string; + /** @example 7sT5jcggjjA9fNcxF */ + userId?: string; + /** @example KJHSKHausidyaJKHs */ + actorTaskId?: string | null; + status: components["schemas"]["ActorJobStatus"]; + /** + * Format: date-time + * @example 2019-11-30T07:34:24.202Z + */ + startedAt: Date; + /** + * Format: date-time + * @example 2019-12-12T09:30:12.202Z + */ + finishedAt?: Date | null; + /** @example HG7ML7M8z78YcAPEB */ + buildId: string; + /** @example 0.0.2 */ + buildNumber?: string; + /** @example 10000 */ + buildNumberInt?: number; + meta: components["schemas"]["RunMeta"]; + /** @example 0.2 */ + usageTotalUsd: number; + /** @example sfAjeR4QmeJCQzTfe */ + defaultKeyValueStoreId: string; + /** @example 3ZojQDdFTsyE7Moy4 */ + defaultDatasetId: string; + /** @example so93g2shcDzK3pA85 */ + defaultRequestQueueId: string; + }; + /** ListOfRuns */ + ListOfRuns: components["schemas"]["PaginationResponse"] & { + items: components["schemas"]["RunShort"][]; + }; + /** ListOfRunsResponse */ + ListOfRunsResponse: { + data: components["schemas"]["ListOfRuns"]; + }; + /** + * WebhookRepresentation + * @description Minimal representation of an ad-hoc webhook attached to a single Actor run or build via the + * `webhooks` query parameter. The query parameter value is a Base64-encoded JSON array whose + * items match this schema. Persistent webhook fields (e.g. `condition`) are not used here. + */ + WebhookRepresentation: { + /** + * @example [ + * "ACTOR.RUN.SUCCEEDED" + * ] + */ + eventTypes: components["schemas"]["WebhookEventType"][]; + /** + * @description The URL to which the webhook sends its payload. + * @example http://example.com/ + */ + requestUrl: string; + /** + * @description Optional template for the JSON payload sent by the webhook. + * @example {\n "userId": {{userId}}... + */ + payloadTemplate?: string | null; + /** + * @description Optional template for the HTTP headers sent by the webhook. + * @example {\n "Authorization": "Bearer ..."} + */ + headersTemplate?: string | null; + /** + * @description Flag to also interpolate `{{...}}` variables inside string values of the payload and headers templates. + * @example false + */ + shouldInterpolateStrings?: boolean | null; + /** + * @description Key that prevents creating duplicate webhooks, e.g. when the run-starting request is retried. + * @example fdSJmdP3nfs7sfk3y + */ + idempotencyKey?: string | null; + /** + * @description Flag to ignore SSL errors when the webhook sends the request. + * @example false + */ + ignoreSslErrors?: boolean | null; + /** + * @description Flag to skip retrying the webhook request on failure. + * @example false + */ + doNotRetry?: boolean | null; + }; + /** RunStats */ + RunStats: { + /** @example 240 */ + inputBodyLen?: number | null; + /** @example 0 */ + migrationCount?: number; + /** @example 0 */ + rebootCount?: number; + /** @example 0 */ + restartCount?: number; + /** @example 2 */ + resurrectCount?: number; + /** @example 267874071.9 */ + memAvgBytes?: number; + /** @example 404713472 */ + memMaxBytes?: number; + /** @example 0 */ + memCurrentBytes?: number; + /** @example 33.7532101107538 */ + cpuAvgUsage?: number; + /** @example 169.650735534941 */ + cpuMaxUsage?: number; + /** @example 0 */ + cpuCurrentUsage?: number; + /** @example 103508042 */ + netRxBytes?: number; + /** @example 4854600 */ + netTxBytes?: number; + /** @example 248472 */ + durationMillis?: number; + /** @example 248.472 */ + runTimeSecs?: number; + /** @example 0 */ + metamorph?: number; + /** @example 0.13804 */ + computeUnits?: number; + }; + /** RunOptions */ + RunOptions: { + /** @example latest */ + build: string; + /** @example 300 */ + timeoutSecs: number; + /** @example 1024 */ + memoryMbytes: number; + /** @example 2048 */ + diskMbytes: number; + /** @example 1000 */ + maxItems?: number | null; + /** @example 5 */ + maxTotalChargeUsd?: number | null; + }; + /** + * GeneralAccess + * @description Defines the general access level for the resource. + * @example RESTRICTED + * @enum {string} + */ + GeneralAccess: "ANYONE_WITH_ID_CAN_READ" | "ANYONE_WITH_NAME_CAN_READ" | "FOLLOW_USER_SETTING" | "RESTRICTED"; + /** RunUsage */ + RunUsage: { + /** @example 3 */ + ACTOR_COMPUTE_UNITS?: number | null; + /** @example 4 */ + DATASET_READS?: number | null; + /** @example 4 */ + DATASET_WRITES?: number | null; + /** @example 5 */ + KEY_VALUE_STORE_READS?: number | null; + /** @example 3 */ + KEY_VALUE_STORE_WRITES?: number | null; + /** @example 5 */ + KEY_VALUE_STORE_LISTS?: number | null; + /** @example 2 */ + REQUEST_QUEUE_READS?: number | null; + /** @example 1 */ + REQUEST_QUEUE_WRITES?: number | null; + /** @example 1 */ + DATA_TRANSFER_INTERNAL_GBYTES?: number | null; + /** @example 3 */ + DATA_TRANSFER_EXTERNAL_GBYTES?: number | null; + /** @example 34 */ + PROXY_RESIDENTIAL_TRANSFER_GBYTES?: number | null; + /** @example 3 */ + PROXY_SERPS?: number | null; + }; + /** + * RunUsageUsd + * @description Resource usage costs in USD. All values are monetary amounts in US dollars. + */ + RunUsageUsd: { + /** @example 0.0003 */ + ACTOR_COMPUTE_UNITS?: number | null; + /** @example 0.0001 */ + DATASET_READS?: number | null; + /** @example 0.0001 */ + DATASET_WRITES?: number | null; + /** @example 0.0001 */ + KEY_VALUE_STORE_READS?: number | null; + /** @example 0.00005 */ + KEY_VALUE_STORE_WRITES?: number | null; + /** @example 0.0001 */ + KEY_VALUE_STORE_LISTS?: number | null; + /** @example 0.0001 */ + REQUEST_QUEUE_READS?: number | null; + /** @example 0.0001 */ + REQUEST_QUEUE_WRITES?: number | null; + /** @example 0.001 */ + DATA_TRANSFER_INTERNAL_GBYTES?: number | null; + /** @example 0.003 */ + DATA_TRANSFER_EXTERNAL_GBYTES?: number | null; + /** @example 0.034 */ + PROXY_RESIDENTIAL_TRANSFER_GBYTES?: number | null; + /** @example 0.003 */ + PROXY_SERPS?: number | null; + }; + /** + * Metamorph + * @description Information about a metamorph event that occurred during the run. + */ + Metamorph: { + /** + * Format: date-time + * @description Time when the metamorph occurred. + * @example 2019-11-30T07:39:24.202Z + */ + createdAt: Date; + /** + * @description ID of the Actor that the run was metamorphed to. + * @example nspoEjklmnsF2oosD + */ + actorId: string; + /** + * @description ID of the build used for the metamorphed Actor. + * @example ME6oKecqy5kXDS4KQ + */ + buildId: string; + /** + * @description Key of the input record in the key-value store. + * @example INPUT-METAMORPH-1 + */ + inputKey?: string | null; + }; + /** + * Run + * @description Represents an Actor run and its associated data. + */ + Run: { + /** + * @description Unique identifier of the Actor run. + * @example HG7ML7M8z78YcAPEB + */ + id: string; + /** + * @description ID of the Actor that was run. + * @example HDSasDasz78YcAPEB + */ + actId: string; + /** + * @description ID of the user who started the run. + * @example 7sT5jcggjjA9fNcxF + */ + userId: string; + /** + * @description ID of the Actor task, if the run was started from a task. + * @example KJHSKHausidyaJKHs + */ + actorTaskId?: string | null; + /** + * Format: date-time + * @description Time when the Actor run started. + * @example 2019-11-30T07:34:24.202Z + */ + startedAt: Date; + /** + * Format: date-time + * @description Time when the Actor run finished. + * @example 2019-12-12T09:30:12.202Z + */ + finishedAt?: Date | null; + /** @description Current status of the Actor run. */ + status: components["schemas"]["ActorJobStatus"]; + /** + * @description Detailed message about the run status. + * @example Actor is running + */ + statusMessage?: string | null; + /** + * @description Whether the status message is terminal (final). + * @example false + */ + isStatusMessageTerminal?: boolean | null; + /** @description Metadata about the Actor run. */ + meta: components["schemas"]["RunMeta"]; + /** @description Pricing information for the Actor. */ + pricingInfo?: components["schemas"]["ActorRunPricingInfo"]; + /** @description Statistics of the Actor run. */ + stats: components["schemas"]["RunStats"]; + /** + * @description A map of charged event types to their counts. The keys are event type identifiers defined by the Actor's pricing model (pay-per-event), and the values are the number of times each event was charged during this run. + * @example { + * "actor-start": 1, + * "page-crawled": 150, + * "data-extracted": 75 + * } + */ + chargedEventCounts?: { + [key: string]: number; + }; + /** @description Configuration options for the Actor run. */ + options: components["schemas"]["RunOptions"]; + /** + * @description ID of the Actor build used for this run. + * @example 7sT5jcggjjA9fNcxF + */ + buildId: string; + /** + * @description Exit code of the Actor run process. + * @example 0 + */ + exitCode?: number | null; + /** @description General access level for the Actor run. */ + generalAccess: components["schemas"]["GeneralAccess"]; + /** + * @description ID of the default key-value store for this run. + * @example eJNzqsbPiopwJcgGQ + */ + defaultKeyValueStoreId: string; + /** + * @description ID of the default dataset for this run. + * @example wmKPijuyDnPZAPRMk + */ + defaultDatasetId: string; + /** + * @description ID of the default request queue for this run. + * @example FL35cSF7jrxr3BY39 + */ + defaultRequestQueueId: string; + /** @description A map of aliased storage IDs associated with this run, grouped by storage type. */ + storageIds?: { + /** @description Aliased dataset IDs for this run. */ + datasets?: { + /** + * @description ID of the default dataset for this run. + * @example wmKPijuyDnPZAPRMk + */ + default?: string; + } & { + [key: string]: string; + }; + /** @description Aliased key-value store IDs for this run. */ + keyValueStores?: { + /** + * @description ID of the default key-value store for this run. + * @example eJNzqsbPiopwJcgGQ + */ + default?: string; + } & { + [key: string]: string; + }; + /** @description Aliased request queue IDs for this run. */ + requestQueues?: { + /** + * @description ID of the default request queue for this run. + * @example FL35cSF7jrxr3BY39 + */ + default?: string; + } & { + [key: string]: string; + }; + }; + /** + * @description Build number of the Actor build used for this run. + * @example 0.0.36 + */ + buildNumber?: string | null; + /** + * Format: uri + * @description URL of the container running the Actor. + * @example https://g8kd8kbc5ge8.runs.apify.net + */ + containerUrl?: string; + /** + * @description Whether the container's HTTP server is ready to accept requests. + * @example true + */ + isContainerServerReady?: boolean | null; + /** + * @description Name of the git branch used for the Actor build. + * @example master + */ + gitBranchName?: string | null; + /** @description Resource usage statistics for the run. */ + usage?: components["schemas"]["RunUsage"] | null; + /** + * @description Total cost in USD for this run. Represents what you actually pay. For run owners: includes platform usage (compute units) and/or event costs depending on the Actor's pricing model. For run non-owners: only available for Pay-Per-Event Actors (event costs only). Requires authentication token to access. + * @example 0.2654 + */ + usageTotalUsd?: number | null; + /** @description Platform usage costs breakdown in USD. Only present if you own the run AND are paying for platform usage (Pay-Per-Usage, Rental, or Pay-Per-Event with usage costs like standby Actors). Not available for standard Pay-Per-Event Actors. Requires authentication token to access. */ + usageUsd?: components["schemas"]["RunUsageUsd"] | null; + /** @description List of metamorph events that occurred during the run. */ + metamorphs?: components["schemas"]["Metamorph"][] | null; + /** + * @description Indicates which party covers platform usage costs for this run. + * @example USER + */ + platformUsageBillingModel?: string; + }; + /** RunResponse */ + RunResponse: { + data: components["schemas"]["Run"]; + }; + /** DatasetStats */ + DatasetStats: { + /** @example 22 */ + readCount?: number; + /** @example 3 */ + writeCount?: number; + /** + * @description Total storage size in bytes. Only returned by the single-dataset endpoint. + * @example 783 + */ + storageBytes?: number; + /** + * @description Uncompressed size in bytes. Only returned by the dataset list endpoint. + * @example 0 + */ + inflatedBytes?: number; + }; + /** Dataset */ + Dataset: { + /** @example WkzbQMuFYuamGv3YF */ + id: string; + /** @example d7b9MDYsbtX5L7XAj */ + name?: string | null; + /** @example wRsJZtadYvn4mBZmm */ + userId: string; + /** + * Format: date-time + * @example 2019-12-12T07:34:14.202Z + */ + createdAt: Date; + /** + * Format: date-time + * @example 2019-12-13T08:36:13.202Z + */ + modifiedAt: Date; + /** + * Format: date-time + * @example 2019-12-14T08:36:13.202Z + */ + accessedAt: Date; + /** @example 7 */ + itemCount: number; + /** @example 5 */ + cleanItemCount: number; + actId?: string | null; + actRunId?: string | null; + fields?: string[] | null; + /** + * @description Defines the schema of items in your dataset, the full specification can be found in [Apify docs](https://docs.apify.com/storage/dataset-schema) + * @example { + * "actorSpecification": 1, + * "title": "My dataset", + * "views": { + * "overview": { + * "title": "Overview", + * "transformation": { + * "fields": [ + * "linkUrl" + * ] + * }, + * "display": { + * "component": "table", + * "properties": { + * "linkUrl": { + * "label": "Link URL", + * "format": "link" + * } + * } + * } + * } + * } + * } + */ + schema?: Record | null; + /** + * Format: uri + * @example https://console.apify.com/storage/datasets/27TmTznX9YPeAYhkC + */ + consoleUrl: string; + /** + * Format: uri + * @description A public link to access the dataset items directly. + * @example https://api.apify.com/v2/datasets/WkzbQMuFYuamGv3YF/items?signature=abc123 + */ + itemsPublicUrl?: string; + /** @description A secret key for generating signed public URLs. It is only provided to clients with WRITE permission for the dataset. */ + urlSigningSecretKey?: string | null; + generalAccess?: components["schemas"]["GeneralAccess"]; + stats?: components["schemas"]["DatasetStats"]; + }; + /** + * DatasetResponse + * @description Response containing dataset metadata. + */ + DatasetResponse: { + data: components["schemas"]["Dataset"]; + }; + /** + * UpdateDatasetRequest + * @example { + * "name": "new-dataset-name", + * "generalAccess": "RESTRICTED" + * } + */ + UpdateDatasetRequest: { + name?: string | null; + generalAccess?: components["schemas"]["GeneralAccess"]; + }; + /** + * PutItemsRequest + * @description The request body containing the item(s) to add to the dataset. Can be a single + * object or an array of objects. Each object represents one dataset item. + * @example { + * "title": "Example Item", + * "url": "https://example.com", + * "price": 19.99 + * } + */ + PutItemsRequest: { + [key: string]: unknown; + }; + /** ValidationError */ + ValidationError: { + /** @description The path to the instance being validated. */ + instancePath?: string; + /** @description The path to the schema that failed the validation. */ + schemaPath?: string; + /** @description The validation keyword that caused the error. */ + keyword?: string; + /** @description A message describing the validation error. */ + message?: string; + /** @description Additional parameters specific to the validation error. */ + params?: Record; + }; + /** InvalidItem */ + InvalidItem: { + /** + * @description The position of the invalid item in the array. + * @example 2 + */ + itemPosition?: number; + /** @description A complete list of AJV validation error objects for the invalid item. */ + validationErrors?: components["schemas"]["ValidationError"][]; + }; + /** SchemaValidationErrorData */ + SchemaValidationErrorData: { + /** @description A list of invalid items in the received array of items. */ + invalidItems: components["schemas"]["InvalidItem"][]; + }; + /** DatasetSchemaValidationError */ + DatasetSchemaValidationError: { + /** + * @description The type of the error. + * @example schema-validation-error + */ + type?: string; + /** + * @description A human-readable message describing the error. + * @example Schema validation failed + */ + message?: string; + data?: components["schemas"]["SchemaValidationErrorData"]; + }; + /** + * PutItemResponseError + * @example { + * "error": { + * "type": "schema-validation-error", + * "message": "Schema validation failed", + * "data": { + * "invalidItems": [ + * { + * "itemPosition": 2, + * "validationErrors": [ + * { + * "instancePath": "/1/stringField", + * "schemaPath": "/items/properties/stringField/type", + * "keyword": "type", + * "params": { + * "type": "string" + * }, + * "message": "must be string" + * } + * ] + * } + * ] + * } + * } + * } + */ + PutItemResponseError: { + error: components["schemas"]["DatasetSchemaValidationError"]; + }; + /** DatasetFieldStatistics */ + DatasetFieldStatistics: { + /** @description Minimum value of the field. For numbers, this is calculated directly. For strings, this is the length of the shortest string. For arrays, this is the length of the shortest array. For objects, this is the number of keys in the smallest object. */ + min?: number | null; + /** @description Maximum value of the field. For numbers, this is calculated directly. For strings, this is the length of the longest string. For arrays, this is the length of the longest array. For objects, this is the number of keys in the largest object. */ + max?: number | null; + /** @description How many items in the dataset have a null value for this field. */ + nullCount?: number | null; + /** @description How many items in the dataset are `undefined`, meaning that for example empty string is not considered empty. */ + emptyCount?: number | null; + }; + /** + * DatasetStatistics + * @example { + * "fieldStatistics": { + * "name": { + * "nullCount": 122 + * }, + * "price": { + * "min": 59, + * "max": 89 + * } + * } + * } + */ + DatasetStatistics: { + /** @description When you configure the dataset [fields schema](https://docs.apify.com/platform/actors/development/actor-definition/dataset-schema/validation), we measure the statistics such as `min`, `max`, `nullCount` and `emptyCount` for each field. This property provides statistics for each field from dataset fields schema.

See dataset field statistics [documentation](https://docs.apify.com/platform/actors/development/actor-definition/dataset-schema/validation#dataset-field-statistics) for more information. */ + fieldStatistics?: { + [key: string]: components["schemas"]["DatasetFieldStatistics"]; + } | null; + }; + /** DatasetStatisticsResponse */ + DatasetStatisticsResponse: { + data: components["schemas"]["DatasetStatistics"]; + }; + /** KeyValueStoreStats */ + KeyValueStoreStats: { + /** @example 9 */ + readCount?: number; + /** @example 3 */ + writeCount?: number; + /** @example 6 */ + deleteCount?: number; + /** @example 2 */ + listCount?: number; + /** @example 18 */ + s3StorageBytes?: number; + /** @example 457225 */ + storageBytes?: number; + }; + /** KeyValueStore */ + KeyValueStore: { + /** @example WkzbQMuFYuamGv3YF */ + id: string; + /** @example d7b9MDYsbtX5L7XAj */ + name?: string | null; + /** @example BPWDBd7Z9c746JAnF */ + userId?: string | null; + /** @example janedoe */ + username?: string | null; + /** + * Format: date-time + * @example 2019-12-12T07:34:14.202Z + */ + createdAt: Date; + /** + * Format: date-time + * @example 2019-12-13T08:36:13.202Z + */ + modifiedAt: Date; + /** + * Format: date-time + * @example 2019-12-14T08:36:13.202Z + */ + accessedAt: Date; + /** @example null */ + actId?: string | null; + /** @example null */ + actRunId?: string | null; + /** + * Format: uri + * @example https://console.apify.com/storage/key-value-stores/27TmTznX9YPeAYhkC + */ + consoleUrl?: string; + /** + * Format: uri + * @description A public link to access keys of the key-value store directly. + * @example https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/keys?signature=abc123 + */ + keysPublicUrl?: string; + /** + * Format: uri + * @description A public link to access records of the key-value store directly. + * @example https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/records + */ + recordsPublicUrl?: string; + /** @description Optional JSON schema describing the keys stored in the key-value store. */ + schema?: Record | null; + /** @description A secret key for generating signed public URLs. It is only provided to clients with WRITE permission for the key-value store. */ + urlSigningSecretKey?: string | null; + generalAccess?: components["schemas"]["GeneralAccess"]; + stats?: components["schemas"]["KeyValueStoreStats"]; + }; + /** + * KeyValueStoreResponse + * @description Response containing key-value store data. + */ + KeyValueStoreResponse: { + data: components["schemas"]["KeyValueStore"]; + }; + /** + * UpdateStoreRequest + * @example { + * "name": "new-store-name", + * "generalAccess": "RESTRICTED" + * } + */ + UpdateStoreRequest: { + name?: string | null; + generalAccess?: components["schemas"]["GeneralAccess"]; + }; + /** KeyValueStoreKey */ + KeyValueStoreKey: { + /** @example second-key */ + key: string; + /** @example 36 */ + size: number; + /** + * Format: uri + * @description A public link to access this record directly. + * @example https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/records/some-key?signature=abc123 + */ + recordPublicUrl: string; + }; + /** ListOfKeys */ + ListOfKeys: { + items: components["schemas"]["KeyValueStoreKey"][]; + /** @example 2 */ + count: number; + /** @example 2 */ + limit: number; + /** @example some-key */ + exclusiveStartKey?: string | null; + /** @example true */ + isTruncated: boolean; + /** @example third-key */ + nextExclusiveStartKey?: string | null; + }; + /** + * ListOfKeysResponse + * @example { + * "data": { + * "items": [ + * { + * "key": "second-key", + * "size": 36, + * "recordPublicUrl": "https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/records/second-key?signature=abc123" + * }, + * { + * "key": "third-key", + * "size": 128, + * "recordPublicUrl": "https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/records/third-key?signature=abc123" + * } + * ], + * "count": 2, + * "limit": 2, + * "exclusiveStartKey": "some-key", + * "isTruncated": true, + * "nextExclusiveStartKey": "third-key" + * } + * } + */ + ListOfKeysResponse: { + data: components["schemas"]["ListOfKeys"]; + }; + /** + * RecordResponse + * @description The response body contains the value of the record. The content type of the response + * is determined by the Content-Type header stored with the record. + * @example { + * "message": "Hello, world!", + * "count": 42 + * } + */ + RecordResponse: { + [key: string]: unknown; + }; + /** + * PutRecordRequest + * @description The request body contains the value to store in the record. The content type + * should be specified in the Content-Type header. + * @example { + * "message": "Hello, world!", + * "count": 42 + * } + */ + PutRecordRequest: { + [key: string]: unknown; + }; + /** + * @description A unique identifier assigned to the request queue. + * @example WkzbQMuFYuamGv3YF + */ + QueueId: string; + /** + * @description The ID of the user who owns the request queue. + * @example wRsJZtadYvn4mBZmm + */ + QueueUserId: string; + /** + * Format: date-time + * @description The timestamp when the request queue was created. + * @example 2019-12-12T07:34:14.202Z + */ + QueueCreatedAt: Date; + /** + * Format: date-time + * @description The timestamp when the request queue was last modified. Modifications include adding, updating, or removing requests, as well as locking or unlocking requests in the request queue. + * @example 2019-12-13T08:36:13.202Z + */ + QueueModifiedAt: Date; + /** + * Format: date-time + * @description The timestamp when the request queue was last accessed. + * @example 2019-12-14T08:36:13.202Z + */ + QueueAccessedAt: Date; + /** + * @description The total number of requests in the request queue. + * @example 870 + */ + TotalRequestCount: number; + /** + * @description The number of requests that have been handled. + * @example 100 + */ + HandledRequestCount: number; + /** + * @description The number of requests that are pending and have not been handled yet. + * @example 670 + */ + PendingRequestCount: number; + /** + * @description Whether the request queue has been accessed by multiple different clients. + * @example true + */ + HadMultipleClients: boolean; + /** + * RequestQueueStats + * @description Statistics about request queue operations and storage. + */ + RequestQueueStats: { + /** + * @description The number of delete operations performed on the request queue. + * @example 0 + */ + deleteCount?: number; + /** + * @description The number of times requests from the head were read. + * @example 5 + */ + headItemReadCount?: number; + /** + * @description The total number of read operations performed on the request queue. + * @example 100 + */ + readCount?: number; + /** + * @description The total storage size in bytes used by the request queue. + * @example 1024 + */ + storageBytes?: number; + /** + * @description The total number of write operations performed on the request queue. + * @example 10 + */ + writeCount?: number; + }; + /** + * RequestQueue + * @description A request queue object containing metadata and statistics. + */ + RequestQueue: { + id: components["schemas"]["QueueId"]; + /** + * @description The name of the request queue. + * @example some-name + */ + name?: string | null; + userId: components["schemas"]["QueueUserId"]; + /** @description The ID of the Actor that created this request queue. */ + actId?: string | null; + /** @description The ID of the Actor run that created this request queue. */ + actRunId?: string | null; + createdAt: components["schemas"]["QueueCreatedAt"]; + modifiedAt: components["schemas"]["QueueModifiedAt"]; + accessedAt: components["schemas"]["QueueAccessedAt"]; + totalRequestCount: components["schemas"]["TotalRequestCount"]; + handledRequestCount: components["schemas"]["HandledRequestCount"]; + pendingRequestCount: components["schemas"]["PendingRequestCount"]; + hadMultipleClients: components["schemas"]["HadMultipleClients"]; + /** + * Format: uri + * @description The URL to view the request queue in the Apify console. + * @example https://api.apify.com/v2/request-queues/27TmTznX9YPeAYhkC + */ + consoleUrl: string; + stats?: components["schemas"]["RequestQueueStats"]; + generalAccess?: components["schemas"]["GeneralAccess"]; + }; + /** + * RequestQueueResponse + * @description Response containing request queue data. + */ + RequestQueueResponse: { + data: components["schemas"]["RequestQueue"]; + }; + /** + * UpdateRequestQueueRequest + * @description Request object for updating a request queue. + * @example { + * "name": "new-request-queue-name", + * "generalAccess": "RESTRICTED" + * } + */ + UpdateRequestQueueRequest: { + /** @description The new name for the request queue. */ + name?: string | null; + generalAccess?: components["schemas"]["GeneralAccess"]; + }; + /** + * @description A unique key used for request de-duplication. Requests with the same unique key are considered identical. + * @example GET|60d83e70|e3b0c442|https://apify.com + */ + UniqueKey: string; + /** + * @description The URL of the request. + * @example https://apify.com + */ + RequestUrl: string; + /** + * @example GET + * @enum {string} + */ + HttpMethod: "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "CONNECT" | "OPTIONS" | "TRACE" | "PATCH"; + /** + * @description The number of times this request has been retried. + * @example 0 + */ + RetryCount: number; + /** + * RequestUserData + * @description Custom user data attached to the request. Can contain arbitrary fields. + * @example { + * "label": "DETAIL", + * "customField": "custom-value" + * } + */ + RequestUserData: { + [key: string]: unknown; + }; + /** RequestBase */ + RequestBase: { + uniqueKey?: components["schemas"]["UniqueKey"]; + url?: components["schemas"]["RequestUrl"]; + method?: components["schemas"]["HttpMethod"]; + retryCount?: components["schemas"]["RetryCount"]; + /** + * @description The final URL that was loaded, after redirects (if any). + * @example https://apify.com/jobs + */ + loadedUrl?: string | null; + /** + * @description The request payload, typically used with POST or PUT requests. + * @example null + */ + payload?: string | Record | null; + /** + * @description HTTP headers sent with the request. + * @example null + */ + headers?: Record | null; + userData?: components["schemas"]["RequestUserData"]; + /** + * @description Indicates whether the request should not be retried if processing fails. + * @example false + */ + noRetry?: boolean | null; + /** + * @description Error messages recorded from failed processing attempts. + * @example null + */ + errorMessages?: string[] | null; + /** + * Format: date-time + * @description The timestamp when the request was marked as handled, if applicable. + * @example 2019-06-16T10:23:31.607Z + */ + handledAt?: Date | null; + }; + /** + * @description A unique identifier assigned to the request. + * @example sbJ7klsdf7ujN9l + */ + RequestId: string; + /** + * Request + * @description A request stored in the request queue, including its metadata and processing state. + */ + Request: components["schemas"]["RequestBase"] & { + id?: components["schemas"]["RequestId"]; + }; + /** + * ListOfRequests + * @description A paginated list of requests from the request queue. + */ + ListOfRequests: { + /** @description The array of requests. */ + items: components["schemas"]["Request"][]; + /** + * @description The maximum number of requests returned in this response. + * @example 2 + */ + limit: number; + /** + * @deprecated + * @description The ID of the last request from the previous page, used for pagination. + * @example Ihnsp8YrvJ8102Kj + */ + exclusiveStartId?: string; + /** + * @description A cursor string used for current page of results. + * @example eyJyZXF1ZXN0SWQiOiI0SVlLUWFXZ2FKUUlWNlMifQ + */ + cursor?: string; + /** + * @description A cursor string to be used to continue pagination. + * @example eyJyZXF1ZXN0SWQiOiI5eFNNc1BrN1J6VUxTNXoifQ + */ + nextCursor?: string; + }; + /** + * ListOfRequestsResponse + * @description Response containing a list of requests from the request queue. + * @example { + * "data": { + * "items": [ + * { + * "id": "dnjkDMKLmdlkmlkmld", + * "retryCount": 0, + * "uniqueKey": "http://example.com", + * "url": "http://example.com", + * "method": "GET", + * "loadedUrl": "http://example.com/example-1", + * "payload": null, + * "noRetry": false, + * "errorMessages": null, + * "headers": null, + * "userData": { + * "label": "DETAIL", + * "image": "https://picserver1.eu" + * }, + * "handledAt": "2019-06-16T10:23:31.607Z" + * }, + * { + * "id": "dnjkDMKLmdlkmlkmld", + * "retryCount": 0, + * "uniqueKey": "http://example.com", + * "url": "http://example.com", + * "method": "GET", + * "loadedUrl": "http://example.com/example-1", + * "payload": null, + * "noRetry": false, + * "errorMessages": null, + * "headers": null, + * "userData": { + * "label": "DETAIL", + * "image": "https://picserver1.eu" + * }, + * "handledAt": "2019-06-16T10:23:31.607Z" + * } + * ], + * "limit": 2, + * "exclusiveStartId": "Ihnsp8YrvJ8102Kj" + * } + * } + */ + ListOfRequestsResponse: { + data: components["schemas"]["ListOfRequests"]; + }; + /** + * @description Indicates whether a request with the same unique key already existed in the request queue. If true, no new request was created. + * @example false + */ + WasAlreadyPresent: boolean; + /** + * @description Indicates whether a request with the same unique key has already been processed by the request queue. + * @example false + */ + WasAlreadyHandled: boolean; + /** + * RequestRegistration + * @description Result of registering a request in the request queue, either by adding a new request or updating an existing one. + */ + RequestRegistration: { + requestId: components["schemas"]["RequestId"]; + wasAlreadyPresent: components["schemas"]["WasAlreadyPresent"]; + wasAlreadyHandled: components["schemas"]["WasAlreadyHandled"]; + }; + /** + * AddRequestResponse + * @description Response containing the result of adding a request to the request queue. + */ + AddRequestResponse: { + data: components["schemas"]["RequestRegistration"]; + }; + /** + * AddedRequest + * @description Information about a request that was successfully added to a request queue. + */ + AddedRequest: { + requestId: components["schemas"]["RequestId"]; + uniqueKey: components["schemas"]["UniqueKey"]; + wasAlreadyPresent: components["schemas"]["WasAlreadyPresent"]; + wasAlreadyHandled: components["schemas"]["WasAlreadyHandled"]; + }; + /** + * RequestDraft + * @description A request that failed to be processed during a request queue operation and can be retried. + */ + RequestDraft: { + id?: components["schemas"]["RequestId"]; + uniqueKey: components["schemas"]["UniqueKey"]; + url: components["schemas"]["RequestUrl"]; + method?: components["schemas"]["HttpMethod"]; + }; + /** + * BatchAddResult + * @description Result of a batch add operation containing successfully processed and failed requests. + */ + BatchAddResult: { + /** @description Requests that were successfully added to the request queue. */ + processedRequests: components["schemas"]["AddedRequest"][]; + /** @description Requests that failed to be added and can be retried. */ + unprocessedRequests: components["schemas"]["RequestDraft"][]; + }; + /** + * BatchAddResponse + * @description Response containing the result of a batch add operation. + * @example { + * "data": { + * "processedRequests": [ + * { + * "requestId": "YiKoxjkaS9gjGTqhF", + * "uniqueKey": "http://example.com", + * "wasAlreadyPresent": true, + * "wasAlreadyHandled": false + * } + * ], + * "unprocessedRequests": [ + * { + * "uniqueKey": "http://example.com/2", + * "url": "http://example.com/2", + * "method": "GET" + * } + * ] + * } + * } + */ + BatchAddResponse: { + data: components["schemas"]["BatchAddResult"]; + }; + /** + * RequestDraftDeleteById + * @description A request that should be deleted, identified by its ID. + */ + RequestDraftDeleteById: { + id: components["schemas"]["RequestId"]; + uniqueKey?: components["schemas"]["UniqueKey"]; + }; + /** + * RequestDraftDeleteByUniqueKey + * @description A request that should be deleted, identified by its unique key. + */ + RequestDraftDeleteByUniqueKey: { + id?: components["schemas"]["RequestId"]; + uniqueKey: components["schemas"]["UniqueKey"]; + }; + /** + * RequestDraftDelete + * @description A request that should be deleted. + */ + RequestDraftDelete: components["schemas"]["RequestDraftDeleteById"] | components["schemas"]["RequestDraftDeleteByUniqueKey"]; + /** + * DeletedRequestById + * @description Confirmation of a request that was successfully deleted, identified by its ID. + */ + DeletedRequestById: { + uniqueKey?: components["schemas"]["UniqueKey"]; + id: components["schemas"]["RequestId"]; + }; + /** + * DeletedRequestByUniqueKey + * @description Confirmation of a request that was successfully deleted, identified by its unique key. + */ + DeletedRequestByUniqueKey: { + uniqueKey: components["schemas"]["UniqueKey"]; + id?: components["schemas"]["RequestId"]; + }; + /** + * DeletedRequest + * @description Confirmation of a request that was successfully deleted from a request queue. + */ + DeletedRequest: components["schemas"]["DeletedRequestById"] | components["schemas"]["DeletedRequestByUniqueKey"]; + /** + * BatchDeleteResult + * @description Result of a batch delete operation containing successfully deleted and failed requests. + */ + BatchDeleteResult: { + /** @description Requests that were successfully deleted from the request queue. */ + processedRequests: components["schemas"]["DeletedRequest"][]; + /** @description Requests that failed to be deleted and can be retried. */ + unprocessedRequests: components["schemas"]["RequestDraft"][]; + }; + /** + * BatchDeleteResponse + * @description Response containing the result of a batch delete operation. + */ + BatchDeleteResponse: { + data: components["schemas"]["BatchDeleteResult"]; + }; + /** + * UnlockRequestsResult + * @description Result of unlocking requests in the request queue. + */ + UnlockRequestsResult: { + /** + * @description Number of requests that were successfully unlocked. + * @example 10 + */ + unlockedCount: number; + }; + /** + * UnlockRequestsResponse + * @description Response containing the result of unlocking requests. + */ + UnlockRequestsResponse: { + data: components["schemas"]["UnlockRequestsResult"]; + }; + /** + * RequestResponse + * @description Response containing a single request from the request queue. + */ + RequestResponse: { + data: components["schemas"]["Request"]; + }; + /** + * UpdateRequestResponse + * @description Response containing the result of updating a request in the request queue. + */ + UpdateRequestResponse: { + data: components["schemas"]["RequestRegistration"]; + }; + /** + * Format: date-time + * @description The timestamp when the lock on this request expires. + * @example 2022-06-14T23:00:00.000Z + */ + LockExpiresAt: Date; + /** + * RequestLockInfo + * @description Information about a request lock. + */ + RequestLockInfo: { + lockExpiresAt: components["schemas"]["LockExpiresAt"]; + }; + /** + * ProlongRequestLockResponse + * @description Response containing updated lock information after prolonging a request lock. + */ + ProlongRequestLockResponse: { + data: components["schemas"]["RequestLockInfo"]; + }; + /** + * @description The maximum number of requests returned. + * @example 1000 + */ + HeadLimit: number; + /** + * HeadRequest + * @description A request from the request queue head without lock information. + */ + HeadRequest: { + id: components["schemas"]["RequestId"]; + uniqueKey: components["schemas"]["UniqueKey"]; + url: components["schemas"]["RequestUrl"]; + method?: components["schemas"]["HttpMethod"]; + retryCount?: components["schemas"]["RetryCount"]; + }; + /** + * RequestQueueHead + * @description A batch of requests from the request queue head without locking. + */ + RequestQueueHead: { + limit: components["schemas"]["HeadLimit"]; + queueModifiedAt: components["schemas"]["QueueModifiedAt"]; + hadMultipleClients: components["schemas"]["HadMultipleClients"]; + /** @description The array of requests from the request queue head. */ + items: components["schemas"]["HeadRequest"][]; + }; + /** + * HeadResponse + * @description Response containing requests from the request queue head without locking. + * @example { + * "data": { + * "limit": 1000, + * "queueModifiedAt": "2018-03-14T23:00:00.000Z", + * "hadMultipleClients": false, + * "items": [ + * { + * "id": "8OamqXBCpPHxyH9", + * "retryCount": 0, + * "uniqueKey": "http://example.com", + * "url": "http://example.com", + * "method": "GET" + * }, + * { + * "id": "ZJAoqlRijenMQIn", + * "retryCount": 0, + * "uniqueKey": "http://example.com/a/b", + * "url": "http://example.com/a/b", + * "method": "GET" + * }, + * { + * "id": "hAhkwyk5oOBHKQC", + * "retryCount": 1, + * "uniqueKey": "http://example.com/c/d", + * "url": "http://example.com/c/d", + * "method": "GET" + * } + * ] + * } + * } + */ + HeadResponse: { + data: components["schemas"]["RequestQueueHead"]; + }; + /** + * LockedHeadRequest + * @description A request from the request queue head that has been locked for processing. + */ + LockedHeadRequest: { + id: components["schemas"]["RequestId"]; + uniqueKey: components["schemas"]["UniqueKey"]; + url: components["schemas"]["RequestUrl"]; + method?: components["schemas"]["HttpMethod"]; + retryCount?: components["schemas"]["RetryCount"]; + lockExpiresAt: components["schemas"]["LockExpiresAt"]; + }; + /** + * LockedRequestQueueHead + * @description A batch of locked requests from the request queue head. + */ + LockedRequestQueueHead: { + limit: components["schemas"]["HeadLimit"]; + queueModifiedAt: components["schemas"]["QueueModifiedAt"]; + /** + * @description Whether the request queue contains requests locked by any client (either the one calling the endpoint or a different one). + * @example true + */ + queueHasLockedRequests?: boolean; + /** + * @description The client key used for locking the requests. + * @example client-one + */ + clientKey?: string; + hadMultipleClients: components["schemas"]["HadMultipleClients"]; + /** + * @description The number of seconds the locks will be held. + * @example 60 + */ + lockSecs: number; + /** @description The array of locked requests from the request queue head. */ + items: components["schemas"]["LockedHeadRequest"][]; + }; + /** + * HeadAndLockResponse + * @description Response containing locked requests from the request queue head. + * @example { + * "data": { + * "limit": 3, + * "queueModifiedAt": "2018-03-14T23:00:00.000Z", + * "hadMultipleClients": true, + * "lockSecs": 60, + * "items": [ + * { + * "id": "8OamqXBCpPHxyj9", + * "retryCount": 0, + * "uniqueKey": "http://example.com", + * "url": "http://example.com", + * "method": "GET", + * "lockExpiresAt": "2022-06-14T23:00:00.000Z" + * }, + * { + * "id": "8OamqXBCpPHxyx9", + * "retryCount": 0, + * "uniqueKey": "http://example.com/a", + * "url": "http://example.com/a", + * "method": "GET", + * "lockExpiresAt": "2022-06-14T23:00:00.000Z" + * }, + * { + * "id": "8OamqXBCpPHxy08", + * "retryCount": 0, + * "uniqueKey": "http://example.com/a/b", + * "url": "http://example.com/a/b", + * "method": "GET", + * "lockExpiresAt": "2022-06-14T23:00:00.000Z" + * } + * ] + * } + * } + */ + HeadAndLockResponse: { + data: components["schemas"]["LockedRequestQueueHead"]; + }; + /** TaskStats */ + TaskStats: { + /** @example 15 */ + totalRuns?: number; + }; + /** TaskShort */ + TaskShort: { + /** @example zdc3Pyhyz3m8vjDeM */ + id: string; + /** @example wRsJZtadYvn4mBZmm */ + userId: string; + /** @example asADASadYvn4mBZmm */ + actId: string; + /** @example my-actor */ + actName?: string | null; + /** @example my-task */ + name: string; + /** @example janedoe */ + username?: string | null; + /** @example janedoe */ + actUsername?: string | null; + /** + * Format: date-time + * @example 2018-10-26T07:23:14.855Z + */ + createdAt: Date; + /** + * Format: date-time + * @example 2018-10-26T13:30:49.578Z + */ + modifiedAt: Date; + stats?: components["schemas"]["TaskStats"] | null; + }; + /** ListOfTasks */ + ListOfTasks: components["schemas"]["PaginationResponse"] & { + items: components["schemas"]["TaskShort"][]; + }; + /** ListOfTasksResponse */ + ListOfTasksResponse: { + data: components["schemas"]["ListOfTasks"]; + }; + /** TaskOptions */ + TaskOptions: { + /** @example latest */ + build?: string | null; + /** @example 300 */ + timeoutSecs?: number | null; + /** @example 1024 */ + memoryMbytes?: number | null; + /** @example 1000 */ + maxItems?: number | null; + /** @example 5 */ + maxTotalChargeUsd?: number | null; + /** @example false */ + restartOnError?: boolean | null; + }; + /** + * TaskInput + * @description The input configuration for the Actor task. This is a user-defined JSON object + * that will be passed to the Actor when the task is run. + * @example { + * "startUrls": [ + * { + * "url": "https://example.com" + * } + * ], + * "maxRequestsPerCrawl": 100 + * } + */ + TaskInput: { + [key: string]: unknown; + }; + /** CreateTaskRequest */ + CreateTaskRequest: { + /** @example asADASadYvn4mBZmm */ + actId: string; + /** @example my-task */ + name?: string; + options?: components["schemas"]["TaskOptions"] | null; + input?: components["schemas"]["TaskInput"] | null; + title?: string | null; + actorStandby?: components["schemas"]["ActorStandby"] | null; + }; + /** Task */ + Task: { + /** @example zdc3Pyhyz3m8vjDeM */ + id: string; + /** @example wRsJZtadYvn4mBZmm */ + userId: string; + /** @example asADASadYvn4mBZmm */ + actId: string; + /** @example my-task */ + name: string; + /** @example janedoe */ + username?: string | null; + /** + * Format: date-time + * @example 2018-10-26T07:23:14.855Z + */ + createdAt: Date; + /** + * Format: date-time + * @example 2018-10-26T13:30:49.578Z + */ + modifiedAt: Date; + /** Format: date-time */ + removedAt?: Date | null; + stats?: components["schemas"]["TaskStats"] | null; + options?: components["schemas"]["TaskOptions"] | null; + input?: components["schemas"]["TaskInput"] | null; + title?: string | null; + actorStandby?: components["schemas"]["ActorStandby"] | null; + /** Format: uri */ + standbyUrl?: string | null; + }; + /** + * TaskResponse + * @description Response containing Actor task data. + * @example { + * "data": { + * "id": "zdc3Pyhyz3m8vjDeM", + * "userId": "wRsJZtadYvn4mBZmm", + * "actId": "asADASadYvn4mBZmm", + * "name": "my-task", + * "username": "janedoe", + * "createdAt": "2018-10-26T07:23:14.855Z", + * "modifiedAt": "2018-10-26T13:30:49.578Z", + * "removedAt": null, + * "stats": { + * "totalRuns": 15 + * }, + * "options": { + * "build": "latest", + * "timeoutSecs": 300, + * "memoryMbytes": 128 + * }, + * "input": { + * "hello": "world" + * } + * } + * } + */ + TaskResponse: { + data: components["schemas"]["Task"]; + }; + /** UpdateTaskRequest */ + UpdateTaskRequest: { + /** @example my-task */ + name?: string; + options?: components["schemas"]["TaskOptions"] | null; + input?: components["schemas"]["TaskInput"] | null; + title?: string | null; + actorStandby?: components["schemas"]["ActorStandby"] | null; + }; + /** Webhook */ + Webhook: { + /** @example YiKoxjkaS9gjGTqhF */ + id: string; + /** + * Format: date-time + * @example 2019-12-12T07:34:14.202Z + */ + createdAt: Date; + /** + * Format: date-time + * @example 2019-12-13T08:36:13.202Z + */ + modifiedAt: Date; + /** @example wRsJZtadYvn4mBZmm */ + userId: string; + /** @example false */ + isAdHoc?: boolean | null; + /** @example false */ + shouldInterpolateStrings?: boolean | null; + /** + * @example [ + * "ACTOR.RUN.SUCCEEDED" + * ] + */ + eventTypes: components["schemas"]["WebhookEventType"][]; + condition: components["schemas"]["WebhookCondition"]; + /** @example false */ + ignoreSslErrors: boolean; + /** @example false */ + doNotRetry?: boolean | null; + /** + * Format: uri + * @description URL of the HTTP request sent by the webhook. It is omitted or `null` for hook actions other than the conventional HTTP case (e.g. Slack or email notifications). + * @example http://example.com/ + */ + requestUrl?: string | null; + /** @example {\n "userId": {{userId}}... */ + payloadTemplate?: string | null; + /** @example {\n "Authorization": "Bearer ..."} */ + headersTemplate?: string | null; + /** @example this is webhook description */ + description?: string | null; + lastDispatch?: components["schemas"]["ExampleWebhookDispatch"] | null; + stats?: components["schemas"]["WebhookStats"] | null; + }; + /** UpdateRunRequest */ + UpdateRunRequest: { + /** @example 3KH8gEpp4d8uQSe8T */ + runId?: string; + /** @example Actor has finished */ + statusMessage?: string; + /** @example true */ + isStatusMessageTerminal?: boolean; + generalAccess?: components["schemas"]["GeneralAccess"]; + }; + /** ChargeRunRequest */ + ChargeRunRequest: { + /** @example ANALYZE_PAGE */ + eventName: string; + /** @example 1 */ + count: number; + }; + /** + * @example ownedByMe + * @enum {string} + */ + StorageOwnership: "ownedByMe" | "sharedWithMe"; + /** ListOfKeyValueStores */ + ListOfKeyValueStores: components["schemas"]["PaginationResponse"] & { + /** + * @description Whether the listing was filtered to only unnamed key-value stores. + * @example false + */ + unnamed?: boolean; + items: components["schemas"]["KeyValueStore"][]; + }; + /** ListOfKeyValueStoresResponse */ + ListOfKeyValueStoresResponse: { + data: components["schemas"]["ListOfKeyValueStores"]; + }; + /** DatasetListItem */ + DatasetListItem: { + /** @example WkzbQMuFYuamGv3YF */ + id: string; + /** @example d7b9MDYsbtX5L7XAj */ + name: string; + /** @example tbXmWu7GCxnyYtSiL */ + userId: string; + /** + * Format: date-time + * @example 2019-12-12T07:34:14.202Z + */ + createdAt: Date; + /** + * Format: date-time + * @example 2019-12-13T08:36:13.202Z + */ + modifiedAt: Date; + /** + * Format: date-time + * @example 2019-12-14T08:36:13.202Z + */ + accessedAt: Date; + /** @example 7 */ + itemCount: number; + /** @example 5 */ + cleanItemCount: number; + /** @example zdc3Pyhyz3m8vjDeM */ + actId?: string | null; + /** @example HG7ML7M8z78YcAPEB */ + actRunId?: string | null; + /** @example My Dataset */ + title?: string | null; + /** @example janedoe */ + username?: string; + generalAccess?: components["schemas"]["GeneralAccess"]; + stats?: components["schemas"]["DatasetStats"]; + }; + /** ListOfDatasets */ + ListOfDatasets: components["schemas"]["PaginationResponse"] & { + /** + * @description Whether the listing was filtered to only unnamed datasets. + * @example false + */ + unnamed?: boolean; + items: components["schemas"]["DatasetListItem"][]; + }; + /** ListOfDatasetsResponse */ + ListOfDatasetsResponse: { + data: components["schemas"]["ListOfDatasets"]; + }; + /** + * RequestQueueShort + * @description A shortened request queue object for list responses. + */ + RequestQueueShort: { + id: components["schemas"]["QueueId"]; + /** + * @description The name of the request queue. + * @example some-name + */ + name: string; + userId: components["schemas"]["QueueUserId"]; + /** + * @description The username of the user who owns the request queue. + * @example janedoe + */ + username: string; + createdAt: components["schemas"]["QueueCreatedAt"]; + modifiedAt: components["schemas"]["QueueModifiedAt"]; + accessedAt: components["schemas"]["QueueAccessedAt"]; + /** + * Format: date-time + * @description The timestamp when the request queue will expire and be deleted. + * @example 2019-06-02T17:15:06.751Z + */ + expireAt?: Date; + totalRequestCount: components["schemas"]["TotalRequestCount"]; + handledRequestCount: components["schemas"]["HandledRequestCount"]; + pendingRequestCount: components["schemas"]["PendingRequestCount"]; + /** @description The ID of the Actor that created this request queue. */ + actId?: string | null; + /** @description The ID of the Actor run that created this request queue. */ + actRunId?: string | null; + hadMultipleClients: components["schemas"]["HadMultipleClients"]; + generalAccess?: components["schemas"]["GeneralAccess"]; + stats?: components["schemas"]["RequestQueueStats"]; + }; + /** + * ListOfRequestQueues + * @description A paginated list of request queues. + */ + ListOfRequestQueues: components["schemas"]["PaginationResponse"] & { + /** + * @description Whether the listing was filtered to only unnamed request queues. + * @example false + */ + unnamed?: boolean; + /** @description The array of request queues. */ + items: components["schemas"]["RequestQueueShort"][]; + }; + /** + * ListOfRequestQueuesResponse + * @description Response containing a list of request queues. + */ + ListOfRequestQueuesResponse: { + data: components["schemas"]["ListOfRequestQueues"]; + }; + /** WebhookCreate */ + WebhookCreate: { + /** @example false */ + isAdHoc?: boolean | null; + /** + * @example [ + * "ACTOR.RUN.SUCCEEDED" + * ] + */ + eventTypes: components["schemas"]["WebhookEventType"][]; + condition: components["schemas"]["WebhookCondition"]; + /** @example fdSJmdP3nfs7sfk3y */ + idempotencyKey?: string | null; + /** @example false */ + ignoreSslErrors?: boolean | null; + /** @example false */ + doNotRetry?: boolean | null; + /** @example http://example.com/ */ + requestUrl: string; + /** @example {\n "userId": {{userId}}... */ + payloadTemplate?: string | null; + /** @example {\n "Authorization": "Bearer ..."} */ + headersTemplate?: string | null; + /** @example this is webhook description */ + description?: string | null; + /** @example false */ + shouldInterpolateStrings?: boolean | null; + }; + /** + * WebhookResponse + * @description Response containing webhook data. + */ + WebhookResponse: { + data: components["schemas"]["Webhook"]; + }; + /** WebhookUpdate */ + WebhookUpdate: { + /** @example false */ + isAdHoc?: boolean | null; + /** + * @example [ + * "ACTOR.RUN.SUCCEEDED" + * ] + */ + eventTypes?: components["schemas"]["WebhookEventType"][] | null; + condition?: components["schemas"]["WebhookCondition"] | null; + /** @example false */ + ignoreSslErrors?: boolean | null; + /** @example false */ + doNotRetry?: boolean | null; + /** + * Format: uri + * @example http://example.com/ + */ + requestUrl?: string | null; + /** @example {\n "userId": {{userId}}... */ + payloadTemplate?: string | null; + /** @example {\n "Authorization": "Bearer ..."} */ + headersTemplate?: string | null; + /** @example this is webhook description */ + description?: string | null; + /** @example false */ + shouldInterpolateStrings?: boolean | null; + }; + /** + * WebhookDispatchWebhookSummary + * @description A summary of the webhook that triggered this dispatch. + */ + WebhookDispatchWebhookSummary: { + /** @example HTTP_REQUEST */ + actionType?: string; + condition?: components["schemas"]["WebhookCondition"]; + /** + * Format: uri + * @description URL of the HTTP request sent by the webhook. It is `null` for hook actions other than the conventional HTTP case (e.g. Slack or email notifications). + * @example https://example.com/webhook + */ + requestUrl?: string | null; + /** @example false */ + isAdHoc?: boolean; + }; + /** WebhookDispatch */ + WebhookDispatch: { + /** @example asdLZtadYvn4mBZmm */ + id: string; + /** @example wRsJZtadYvn4mBZmm */ + userId: string; + /** @example asdLZtadYvn4mBZmm */ + webhookId: string; + /** + * Format: date-time + * @example 2019-12-12T07:34:14.202Z + */ + createdAt: Date; + status: components["schemas"]["WebhookDispatchStatus"]; + eventType: components["schemas"]["WebhookEventType"]; + /** eventData */ + eventData?: { + /** @example vvE7iMKuMc5qTHHsR */ + actorId: string; + /** @example JgwXN9BdwxGcu9MMF */ + actorRunId?: string; + /** @example HG7ML7M8z78YcAPEB */ + actorBuildId?: string; + /** @example zRLp8SDOZz2NyLg7K */ + actorTaskId?: string | null; + } | null; + webhook?: components["schemas"]["WebhookDispatchWebhookSummary"] | null; + /** calls */ + calls?: { + /** + * Format: date-time + * @example 2019-12-12T07:34:14.202Z + */ + startedAt?: Date | null; + /** + * Format: date-time + * @example 2019-12-12T07:34:14.202Z + */ + finishedAt?: Date | null; + /** @example Cannot send request */ + errorMessage?: string | null; + /** @example 200 */ + responseStatus?: number | null; + /** @example {"foo": "bar"} */ + responseBody?: string | null; + }[]; + }; + /** TestWebhookResponse */ + TestWebhookResponse: { + data: components["schemas"]["WebhookDispatch"]; + }; + /** ListOfWebhookDispatches */ + ListOfWebhookDispatches: components["schemas"]["PaginationResponse"] & { + items: components["schemas"]["WebhookDispatch"][]; + }; + /** ListOfWebhookDispatchesResponse */ + ListOfWebhookDispatchesResponse: { + data: components["schemas"]["ListOfWebhookDispatches"]; + }; + /** WebhookDispatchResponse */ + WebhookDispatchResponse: { + data: components["schemas"]["WebhookDispatch"]; + }; + /** ScheduleBase */ + ScheduleBase: { + /** @example asdLZtadYvn4mBZmm */ + id: string; + /** @example wRsJZtadYvn4mBZmm */ + userId: string; + /** @example my-schedule */ + name: string; + /** @example * * * * * */ + cronExpression: string; + /** @example UTC */ + timezone: string; + /** @example true */ + isEnabled: boolean; + /** @example true */ + isExclusive: boolean; + /** + * Format: date-time + * @example 2019-12-12T07:34:14.202Z + */ + createdAt: Date; + /** + * Format: date-time + * @example 2019-12-20T06:33:11.202Z + */ + modifiedAt: Date; + /** + * Format: date-time + * @example 2019-04-12T07:34:10.202Z + */ + nextRunAt?: Date | null; + /** + * Format: date-time + * @example 2019-04-12T07:33:10.202Z + */ + lastRunAt?: Date | null; + }; + /** ScheduleActionShortRunActor */ + ScheduleActionShortRunActor: { + /** @example ZReCs7hkdieq8ZUki */ + id: string; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "RUN_ACTOR"; + /** @example HKhKmiCMrDgu9eXeE */ + actorId: string; + }; + /** ScheduleActionShortRunActorTask */ + ScheduleActionShortRunActorTask: { + /** @example ZReCs7hkdieq8ZUki */ + id: string; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "RUN_ACTOR_TASK"; + /** @example HKhKmiCMrDgu9eXeE */ + actorTaskId: string; + }; + /** ScheduleActionShort */ + ScheduleActionShort: components["schemas"]["ScheduleActionShortRunActor"] | components["schemas"]["ScheduleActionShortRunActorTask"]; + /** ScheduleShort */ + ScheduleShort: components["schemas"]["ScheduleBase"] & { + actions: components["schemas"]["ScheduleActionShort"][]; + }; + /** ListOfSchedules */ + ListOfSchedules: components["schemas"]["PaginationResponse"] & { + items: components["schemas"]["ScheduleShort"][]; + }; + /** ListOfSchedulesResponse */ + ListOfSchedulesResponse: { + data: components["schemas"]["ListOfSchedules"]; + }; + /** ScheduleActionRunInput */ + ScheduleActionRunInput: { + /** @example {\n "foo": "actor"\n} */ + body?: string | null; + /** @example application/json; charset=utf-8 */ + contentType?: string | null; + }; + /** ScheduleCreateActionRunActor */ + ScheduleCreateActionRunActor: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "RUN_ACTOR"; + /** @example jF8GGEvbEg4Au3NLA */ + actorId: string; + runInput?: components["schemas"]["ScheduleActionRunInput"] | null; + runOptions?: components["schemas"]["TaskOptions"] | null; + }; + /** ScheduleCreateActionRunActorTask */ + ScheduleCreateActionRunActorTask: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "RUN_ACTOR_TASK"; + /** @example jF8GGEvbEg4Au3NLA */ + actorTaskId: string; + input?: Record | null; + }; + /** ScheduleCreateAction */ + ScheduleCreateAction: components["schemas"]["ScheduleCreateActionRunActor"] | components["schemas"]["ScheduleCreateActionRunActorTask"]; + /** ScheduleCreate */ + ScheduleCreate: { + /** @example my-schedule */ + name?: string | null; + /** @example true */ + isEnabled?: boolean | null; + /** @example true */ + isExclusive?: boolean | null; + /** @example * * * * * */ + cronExpression?: string | null; + /** @example UTC */ + timezone?: string | null; + /** @example Schedule of actor ... */ + description?: string | null; + title?: string | null; + actions?: components["schemas"]["ScheduleCreateAction"][] | null; + }; + /** ScheduleActionRunActor */ + ScheduleActionRunActor: { + /** @example c6KfSgoQzFhMk3etc */ + id: string; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "RUN_ACTOR"; + /** @example jF8GGEvbEg4Au3NLA */ + actorId: string; + runInput?: components["schemas"]["ScheduleActionRunInput"] | null; + runOptions?: components["schemas"]["TaskOptions"] | null; + }; + /** ScheduleActionRunActorTask */ + ScheduleActionRunActorTask: { + /** @example c6KfSgoQzFhMk3etc */ + id: string; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "RUN_ACTOR_TASK"; + /** @example jF8GGEvbEg4Au3NLA */ + actorTaskId: string; + input?: Record | null; + }; + /** ScheduleAction */ + ScheduleAction: components["schemas"]["ScheduleActionRunActor"] | components["schemas"]["ScheduleActionRunActorTask"]; + /** Schedule */ + Schedule: components["schemas"]["ScheduleBase"] & { + /** @example Schedule of actor ... */ + description?: string | null; + title?: string | null; + /** + * ScheduleNotifications + * @description Notification settings for this schedule. + */ + notifications?: { + /** @example true */ + email?: boolean; + }; + actions: components["schemas"]["ScheduleAction"][]; + }; + /** ScheduleResponse */ + ScheduleResponse: { + data: components["schemas"]["Schedule"]; + }; + /** ScheduleInvoked */ + ScheduleInvoked: { + /** @example Schedule invoked */ + message: string; + /** @example INFO */ + level: string; + /** + * Format: date-time + * @example 2019-03-26T12:28:00.370Z + */ + createdAt: Date; + }; + /** ScheduleLogResponse */ + ScheduleLogResponse: { + data: components["schemas"]["ScheduleInvoked"][]; + }; + /** CurrentPricingInfo */ + CurrentPricingInfo: { + /** @example FREE */ + pricingModel: string; + /** @example 0.2 */ + apifyMarginPercentage?: number; + /** + * Format: date-time + * @example 2023-01-01T00:00:00.000Z + */ + createdAt?: Date; + /** + * Format: date-time + * @example 2023-01-01T00:00:00.000Z + */ + startedAt?: Date; + /** + * Format: date-time + * @example null + */ + notifiedAboutChangeAt?: Date | null; + /** + * Format: date-time + * @example null + */ + notifiedAboutFutureChangeAt?: Date | null; + /** @example false */ + isPriceChangeNotificationSuppressed?: boolean; + /** @example false */ + forceContainsSignificantPriceChange?: boolean; + /** @example false */ + isPPEPlatformUsagePaidByUser?: boolean; + /** @example null */ + reasonForChange?: string | null; + /** @example null */ + trialMinutes?: number | null; + /** @example null */ + unitName?: string | null; + /** @example null */ + pricePerUnitUsd?: number | null; + /** @example 0.5 */ + minimalMaxTotalChargeUsd?: number | null; + /** @description Per-event pricing configuration for pay-per-event Actors. */ + pricingPerEvent?: { + [key: string]: unknown; + } | null; + }; + /** StoreListActor */ + StoreListActor: { + /** @example zdc3Pyhyz3m8vjDeM */ + id: string; + /** @example My Public Actor */ + title: string; + /** @example my-public-actor */ + name: string; + /** @example jane35 */ + username: string; + /** @example Jane H. Doe */ + userFullName?: string | null; + /** @example My public actor! */ + description?: string | null; + /** + * @example [ + * "MARKETING", + * "LEAD_GENERATION" + * ] + */ + categories?: string[]; + notice?: components["schemas"]["ActorNotice"]; + /** + * Format: uri + * @example https://... + */ + pictureUrl?: string | null; + /** + * Format: uri + * @example https://... + */ + userPictureUrl?: string | null; + /** + * Format: uri + * @example https://... + */ + url?: string | null; + stats: components["schemas"]["ActorStats"]; + currentPricingInfo?: components["schemas"]["CurrentPricingInfo"]; + /** @description Whether the Actor is whitelisted for agentic payment processing. */ + isWhiteListedForAgenticPayments?: boolean | null; + /** @example 69 */ + actorReviewCount?: number; + /** @example 4.7 */ + actorReviewRating?: number; + /** @example 1269 */ + bookmarkCount?: number; + /** @example null */ + badge?: string | null; + /** @description A brief, LLM-generated readme summary */ + readmeSummary?: string; + }; + /** ListOfStoreActors */ + ListOfStoreActors: components["schemas"]["PaginationResponse"] & { + items: components["schemas"]["StoreListActor"][]; + }; + /** + * ListOfActorsInStoreResponse + * @example { + * "data": { + * "total": 100, + * "offset": 0, + * "limit": 1000, + * "desc": false, + * "count": 1, + * "items": [ + * { + * "id": "zdc3Pyhyz3m8vjDeM", + * "title": "My Public Actor", + * "name": "my-public-actor", + * "username": "jane35", + * "userFullName": "Jane Doe", + * "description": "My public Actor!", + * "pictureUrl": "https://...", + * "userPictureUrl": "https://...", + * "url": "https://...", + * "stats": { + * "totalBuilds": 9, + * "totalRuns": 16, + * "totalUsers": 6, + * "totalUsers7Days": 2, + * "totalUsers30Days": 6, + * "totalUsers90Days": 6, + * "totalMetamorphs": 2, + * "lastRunStartedAt": "2019-07-08T14:01:05.546Z" + * }, + * "currentPricingInfo": { + * "pricingModel": "FREE" + * }, + * "isWhiteListedForAgenticPayments": true + * }, + * { + * "id": "zdc3Pyhyz3m8vjDeM", + * "title": "My Public Actor", + * "name": "my-public-actor", + * "username": "jane35", + * "userFullName": "Jane H. Doe", + * "categories": [ + * "MARKETING", + * "LEAD_GENERATION" + * ], + * "description": "My public Actor!", + * "pictureUrl": "https://...", + * "userPictureUrl": "https://...", + * "url": "https://...", + * "stats": { + * "totalBuilds": 9, + * "totalRuns": 16, + * "totalUsers": 6, + * "totalUsers7Days": 2, + * "totalUsers30Days": 6, + * "totalUsers90Days": 6, + * "totalMetamorphs": 2, + * "lastRunStartedAt": "2019-07-08T14:01:05.546Z" + * }, + * "currentPricingInfo": { + * "pricingModel": "FREE" + * }, + * "isWhiteListedForAgenticPayments": false + * } + * ] + * } + * } + */ + ListOfActorsInStoreResponse: { + data: components["schemas"]["ListOfStoreActors"]; + }; + /** Profile */ + Profile: { + /** @example I started web scraping in 1985 using Altair BASIC. */ + bio?: string | null; + /** @example Jane Doe */ + name?: string; + /** + * Format: uri + * @example https://apify.com/img/anonymous_user_picture.png + */ + pictureUrl?: string | null; + /** @example torvalds. */ + githubUsername?: string | null; + /** + * Format: uri + * @example http://www.example.com + */ + websiteUrl?: string | null; + /** @example @BillGates */ + twitterUsername?: string | null; + }; + /** UserPublicInfo */ + UserPublicInfo: { + /** @example d7b9MDYsbtX5L7XAj */ + username: string; + profile?: components["schemas"]["Profile"]; + }; + /** PublicUserDataResponse */ + PublicUserDataResponse: { + data: components["schemas"]["UserPublicInfo"]; + }; + /** ProxyGroup */ + ProxyGroup: { + /** @example Group1 */ + name: string; + /** @example Group1 description */ + description: string | null; + /** @example 10 */ + availableCount: number; + }; + /** Proxy */ + Proxy: { + /** @example ad78knd9Jkjd86 */ + password: string; + groups: components["schemas"]["ProxyGroup"][]; + }; + /** + * AvailableProxyGroups + * @description A dictionary mapping proxy group names to the number of available proxies in each group. + * The keys are proxy group names (e.g., "RESIDENTIAL", "DATACENTER") and values are + * the count of available proxies. + * @example { + * "RESIDENTIAL": 1000, + * "DATACENTER": 500, + * "GOOGLE_SERP": 200 + * } + */ + AvailableProxyGroups: { + [key: string]: number; + }; + /** Plan */ + Plan: { + /** @example Personal */ + id?: string; + /** @example Cost-effective plan for freelancers, developers and students. */ + description?: string; + /** @example true */ + isEnabled?: boolean; + /** @example 49 */ + monthlyBasePriceUsd?: number; + /** @example 49 */ + monthlyUsageCreditsUsd?: number; + /** @example 0 */ + usageDiscountPercent?: number; + /** + * @example [ + * "ACTORS", + * "STORAGE", + * "PROXY_SERPS", + * "SCHEDULER", + * "WEBHOOKS" + * ] + */ + enabledPlatformFeatures?: string[]; + /** @example 9999 */ + maxMonthlyUsageUsd?: number; + /** @example 32 */ + maxActorMemoryGbytes?: number; + /** @example 1000 */ + maxMonthlyActorComputeUnits?: number; + /** @example 10 */ + maxMonthlyResidentialProxyGbytes?: number; + /** @example 30000 */ + maxMonthlyProxySerps?: number; + /** @example 1000 */ + maxMonthlyExternalDataTransferGbytes?: number; + /** @example 100 */ + maxActorCount?: number; + /** @example 1000 */ + maxActorTaskCount?: number; + /** @example 14 */ + dataRetentionDays?: number; + availableProxyGroups: components["schemas"]["AvailableProxyGroups"]; + /** @example 1 */ + teamAccountSeatCount?: number; + /** @example COMMUNITY */ + supportLevel?: string; + /** @example [] */ + availableAddOns?: string[]; + /** @example FREE */ + tier?: string; + /** @example 0 */ + apiRateLimitBoosts?: number; + /** @example 100 */ + maxScheduleCount?: number; + /** @example 25 */ + maxConcurrentActorRuns?: number; + /** @description Pricing details for this plan. */ + planPricing?: { + [key: string]: unknown; + }; + }; + /** EffectivePlatformFeature */ + EffectivePlatformFeature: { + /** @example true */ + isEnabled: boolean; + /** @example The "Selected public Actors for developers" feature is not enabled for your account. Please upgrade your plan or contact support@apify.com */ + disabledReason: string | null; + /** @example DISABLED */ + disabledReasonType: string | null; + /** @example false */ + isTrial: boolean; + /** + * Format: date-time + * @example 2025-01-01T14:00:00.000Z + */ + trialExpirationAt: Date | null; + }; + /** EffectivePlatformFeatures */ + EffectivePlatformFeatures: { + ACTORS: components["schemas"]["EffectivePlatformFeature"]; + STORAGE: components["schemas"]["EffectivePlatformFeature"]; + SCHEDULER: components["schemas"]["EffectivePlatformFeature"]; + PROXY: components["schemas"]["EffectivePlatformFeature"]; + PROXY_EXTERNAL_ACCESS: components["schemas"]["EffectivePlatformFeature"]; + PROXY_RESIDENTIAL: components["schemas"]["EffectivePlatformFeature"]; + PROXY_SERPS: components["schemas"]["EffectivePlatformFeature"]; + WEBHOOKS: components["schemas"]["EffectivePlatformFeature"]; + ACTORS_PUBLIC_ALL: components["schemas"]["EffectivePlatformFeature"]; + ACTORS_PUBLIC_DEVELOPER: components["schemas"]["EffectivePlatformFeature"]; + }; + /** UserPrivateInfo */ + UserPrivateInfo: { + /** @example YiKoxjkaS9gjGTqhF */ + id?: string; + /** @example myusername */ + username: string; + profile?: components["schemas"]["Profile"]; + /** + * Format: email + * @example bob@example.com + */ + email?: string; + proxy?: components["schemas"]["Proxy"]; + plan: components["schemas"]["Plan"]; + effectivePlatformFeatures: components["schemas"]["EffectivePlatformFeatures"]; + /** + * Format: date-time + * @example 2022-11-29T14:48:29.381Z + */ + createdAt?: Date; + /** @example true */ + isPaying: boolean; + }; + /** PrivateUserDataResponse */ + PrivateUserDataResponse: { + data: components["schemas"]["UserPrivateInfo"]; + }; + /** UsageCycle */ + UsageCycle: { + /** + * Format: date-time + * @example 2022-10-02T00:00:00.000Z + */ + startAt: Date; + /** + * Format: date-time + * @example 2022-11-01T23:59:59.999Z + */ + endAt: Date; + }; + /** PriceTiers */ + PriceTiers: { + /** @example 0 */ + quantityAbove: number; + /** @example 100 */ + discountPercent: number; + /** @example 0.39 */ + tierQuantity: number; + /** @example 0 */ + unitPriceUsd: number; + /** @example 0 */ + priceUsd: number; + }; + /** UsageItem */ + UsageItem: { + /** @example 2.784475 */ + quantity: number; + /** @example 0.69611875 */ + baseAmountUsd: number; + /** @example 0.25 */ + baseUnitPriceUsd?: number; + /** @example 0.69611875 */ + amountAfterVolumeDiscountUsd?: number; + priceTiers?: components["schemas"]["PriceTiers"][]; + }; + /** + * MonthlyServiceUsage + * @description A map of usage item names (e.g., ACTOR_COMPUTE_UNITS) to their usage details. + */ + MonthlyServiceUsage: { + [key: string]: components["schemas"]["UsageItem"]; + }; + /** + * ServiceUsage + * @description A map of service usage item names to their usage details. + * @example { + * "ACTOR_COMPUTE_UNITS": { + * "quantity": 60, + * "baseAmountUsd": 0.00030000000000000003, + * "baseUnitPriceUsd": 0.000005, + * "amountAfterVolumeDiscountUsd": 0.00030000000000000003, + * "priceTiers": [] + * } + * } + */ + ServiceUsage: { + [key: string]: components["schemas"]["UsageItem"]; + }; + /** DailyServiceUsages */ + DailyServiceUsages: { + /** @example 2022-10-02T00:00:00.000Z */ + date: string; + serviceUsage: components["schemas"]["ServiceUsage"]; + /** @example 0.0474385791970591 */ + totalUsageCreditsUsd: number; + }; + /** MonthlyUsage */ + MonthlyUsage: { + usageCycle: components["schemas"]["UsageCycle"]; + monthlyServiceUsage: components["schemas"]["MonthlyServiceUsage"]; + dailyServiceUsages: components["schemas"]["DailyServiceUsages"][]; + /** @example 0.786143673840067 */ + totalUsageCreditsUsdBeforeVolumeDiscount: number; + /** @example 0.786143673840067 */ + totalUsageCreditsUsdAfterVolumeDiscount: number; + }; + /** MonthlyUsageResponse */ + MonthlyUsageResponse: { + data: components["schemas"]["MonthlyUsage"]; + }; + /** Limits */ + Limits: { + /** @example 300 */ + maxMonthlyUsageUsd: number; + /** @example 1000 */ + maxMonthlyActorComputeUnits: number; + /** @example 7 */ + maxMonthlyExternalDataTransferGbytes: number; + /** @example 50 */ + maxMonthlyProxySerps: number; + /** @example 0.5 */ + maxMonthlyResidentialProxyGbytes: number; + /** @example 16 */ + maxActorMemoryGbytes: number; + /** @example 100 */ + maxActorCount: number; + /** @example 1000 */ + maxActorTaskCount: number; + /** @example 256 */ + maxConcurrentActorJobs: number; + /** @example 9 */ + maxTeamAccountSeatCount: number; + /** @example 90 */ + dataRetentionDays: number; + /** @example 100 */ + maxScheduleCount?: number; + }; + /** Current */ + Current: { + /** @example 43 */ + monthlyUsageUsd: number; + /** @example 500.784475 */ + monthlyActorComputeUnits: number; + /** @example 3.00861903931946 */ + monthlyExternalDataTransferGbytes: number; + /** @example 34 */ + monthlyProxySerps: number; + /** @example 0.4 */ + monthlyResidentialProxyGbytes: number; + /** @example 8 */ + actorMemoryGbytes: number; + /** @example 31 */ + actorCount: number; + /** @example 130 */ + actorTaskCount: number; + /** @example 0 */ + activeActorJobCount: number; + /** @example 5 */ + teamAccountSeatCount: number; + /** @example 77 */ + scheduleCount?: number; + }; + /** AccountLimits */ + AccountLimits: { + monthlyUsageCycle: components["schemas"]["UsageCycle"]; + limits: components["schemas"]["Limits"]; + current: components["schemas"]["Current"]; + }; + /** LimitsResponse */ + LimitsResponse: { + data: components["schemas"]["AccountLimits"]; + }; + /** UpdateLimitsRequest */ + UpdateLimitsRequest: { + /** + * @description If your platform usage in the billing period exceeds the prepaid usage, you will be charged extra. Setting this property you can update your hard limit on monthly platform usage to prevent accidental overage or to limit the extra charges. + * @example 300 + */ + maxMonthlyUsageUsd?: number; + /** + * @description Apify securely stores your ten most recent Actor runs indefinitely, ensuring they are always accessible. Unnamed storages and other Actor runs are automatically deleted after the retention period. If you're subscribed, you can change it to keep data for longer or to limit your usage. [Lear more](https://docs.apify.com/storage#data-retention). + * @example 90 + */ + dataRetentionDays?: number; + }; + BrowserInfoResponse: { + /** + * @description HTTP method of the request. + * @example GET + */ + method: string; + /** + * @description IP address of the client. + * @example 1.2.3.4 + */ + clientIp: string | null; + /** + * @description Two-letter country code resolved from the client IP address. + * @example US + */ + countryCode: string | null; + /** + * @description Length of the request body in bytes. + * @example 0 + */ + bodyLength: number; + /** @description Request headers. Omitted when `skipHeaders=true`. */ + headers?: { + [key: string]: string | string[]; + }; + /** + * @description Raw request headers as a flat list of alternating name/value strings. + * Included only when `rawHeaders=true`. + */ + rawHeaders?: string[]; + }; + /** EncodeAndSignData */ + EncodeAndSignData: { + /** @example eyJwYXlsb2FkIjoiLi4uIiwic2lnbmF0dXJlIjoiLi4uIn0= */ + encoded: string; + }; + /** EncodeAndSignResponse */ + EncodeAndSignResponse: { + data: components["schemas"]["EncodeAndSignData"]; + }; + /** DecodeAndVerifyRequest */ + DecodeAndVerifyRequest: { + /** @example eyJwYXlsb2FkIjoiLi4uIiwic2lnbmF0dXJlIjoiLi4uIn0= */ + encoded: string; + }; + /** DecodeAndVerifyData */ + DecodeAndVerifyData: { + /** @description The original object that was encoded. */ + decoded: unknown; + /** @example wRwJZtadYvn4mBZmm */ + encodedByUserId: string | null; + /** @example false */ + isVerifiedUser: boolean; + }; + /** DecodeAndVerifyResponse */ + DecodeAndVerifyResponse: { + data: components["schemas"]["DecodeAndVerifyData"]; + }; + }; + responses: { + /** @description Bad request - invalid input parameters or request body. */ + BadRequest: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "error": { + * "type": "invalid-input", + * "message": "Invalid input: The request body contains invalid data." + * } + * } + */ + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description Unauthorized - authentication required or invalid token. */ + Unauthorized: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "error": { + * "type": "invalid-token", + * "message": "Authentication token is not valid." + * } + * } + */ + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description Forbidden - insufficient permissions to perform this action. */ + Forbidden: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "error": { + * "type": "insufficient-permissions", + * "message": "You do not have permission to perform this action." + * } + * } + */ + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description Method not allowed. */ + MethodNotAllowed: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "error": { + * "type": "method-not-allowed", + * "message": "This API end-point can only be accessed using the following HTTP methods: OPTIONS,GET" + * } + * } + */ + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description Too many requests - rate limit exceeded. */ + TooManyRequests: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "error": { + * "type": "rate-limit-exceeded", + * "message": "You have exceeded the rate limit. Please try again later." + * } + * } + */ + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description Payload too large - the request body exceeds the size limit. */ + PayloadTooLarge: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "error": { + * "type": "request-too-large", + * "message": "The POST payload is too large (limit: 9437184 bytes, actual length: 10485760 bytes)." + * } + * } + */ + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description Unsupported media type - the Content-Encoding of the request is not supported. */ + UnsupportedMediaType: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "error": { + * "type": "unsupported-content-encoding", + * "message": "Content-Encoding \"bla\" is not supported." + * } + * } + */ + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description Not found - the requested resource does not exist. */ + NotFound: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "error": { + * "type": "record-not-found", + * "message": "The requested resource was not found." + * } + * } + */ + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description Payment required - the user has exceeded their usage limit, does not have enough credits, or the request lacks authentication and payment credentials. */ + PaymentRequired: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "error": { + * "type": "x402-payment-required", + * "message": "Please provide X402-PAYMENT-SIGNATURE header with the payment. See https://x402.org." + * } + * } + */ + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description The HTTP request exceeded the timeout limit */ + Timeout: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "error": { + * "type": "run-timeout-exceeded", + * "message": "Actor run exceeded the timeout of 300 seconds for this API endpoint" + * } + * } + */ + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description No content */ + NoContent: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Conflict - the request could not be completed due to a conflict with the current state of the resource. */ + Conflict: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "error": { + * "type": "actor-name-not-unique", + * "message": "Record with the given name already exists." + * } + * } + */ + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + }; + parameters: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset: number; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit: number; + /** + * @description If `true` or `1` then the objects are sorted by the `createdAt` field in + * descending order. By default, they are sorted in ascending order. + */ + descCreatedAt: boolean; + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: string; + /** @description Actor version. */ + versionNumber: string; + /** + * @description If `true` or `1` then the objects are sorted by the `startedAt` field in + * descending order. By default, they are sorted in ascending order. + */ + descStartedAt: boolean; + /** + * @description The maximum number of seconds the server waits for the build to finish. + * By default it is `0`, the maximum value is `60`. + * If the build finishes in time then the returned build object will have a + * terminal status (e.g. `SUCCEEDED`), otherwise it will have a transitional status (e.g. `RUNNING`). + */ + waitForFinishBuild: number; + /** + * @description ID of the build, found in the build's Info tab. + * Use the special value `default` to get the OpenAPI schema for the Actor's default build. + */ + buildIdWithDefault: string; + /** @description ID of the build, found in the build's Info tab. */ + buildId: string; + /** + * @description Single status or comma-separated list of statuses, see ([available + * statuses](https://docs.apify.com/platform/actors/running/runs-and-builds#lifecycle)). Used to filter runs by the specified statuses only. + */ + status: string[]; + /** + * @description Filter runs that started after the specified date and time (inclusive). + * The value must be a valid ISO 8601 datetime string (UTC). + */ + startedAfter: string; + /** + * @description Filter runs that started before the specified date and time (inclusive). + * The value must be a valid ISO 8601 datetime string (UTC). + */ + startedBefore: string; + /** @description Optional timeout for the run, in seconds. By default, the run uses the timeout from its configuration. */ + timeout: number; + /** + * @description Memory limit for the run, in megabytes. You can set the amount of memory to a power of 2 with a minimum of 128. + * By default, the run uses the memory limit from its configuration. Don't change this value unless the Actor's + * documentation recommends it or you're aware of the consequences. + */ + memory: number; + /** + * @description Specifies the maximum number of dataset items that will be charged for pay-per-result Actors. + * This does NOT guarantee that the Actor will return only this many items. + * It only ensures you won't be charged for more than this number of items. + * Only works for pay-per-result Actors. + * Value can be accessed in the actor run using `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable. + */ + maxItems: number; + /** + * @description Specifies the maximum total cost of the run. + * Use it to cap the total amount charged for all pricing models. + * You can access the maximum cost in your Actor + * by using the `ACTOR_MAX_TOTAL_CHARGE_USD` environment variable. + */ + maxTotalChargeUsd: number; + /** @description Determines whether the run will be restarted if it fails. */ + restartOnError: boolean; + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run uses the build from its configuration (typically `latest`). + */ + build: string; + /** + * @description The maximum number of seconds the server waits for the run to finish. By + * default it is `0`, the maximum value is `60`. + * If the run finishes in time then the returned run object will have a terminal status (e.g. `SUCCEEDED`), + * otherwise it will have a transitional status (e.g. `RUNNING`). + */ + waitForFinishRun: number; + /** + * @description Specifies optional webhooks associated with the Actor run, which can be used to receive a notification + * e.g. when the Actor finished or failed. The value is a Base64-encoded JSON array whose items follow + * the WebhookRepresentation schema. For more information, see + * [Webhooks documentation](https://docs.apify.com/platform/integrations/webhooks). + */ + webhooks: string; + /** + * @description Key of the record from the run's default key-value store to return in the + * response. Defaults to `OUTPUT`. Actors aren't required to store a record + * under this key, so if it doesn't exist the response contains no data. + */ + outputRecordKey: string; + /** @description Format of the results, possible values are: `json`, `jsonl`, `csv`, `html`, `xlsx`, `xml` and `rss`. The default value is `json`. */ + format: string; + /** + * @description If `true` or `1` then the API endpoint returns only non-empty items and skips hidden fields (i.e. fields starting with the # character). + * The `clean` parameter is just a shortcut for `skipHidden=true` and `skipEmpty=true` parameters. + * Note that since some objects might be skipped from the output, that the result might contain less items than the `limit` value. + */ + clean: boolean; + /** @description Maximum number of items to return. By default there is no limit. */ + datasetParameters_limit: number; + /** + * @description A comma-separated list of fields which should be picked from the items, only these fields will remain in the resulting record objects. + * Note that the fields in the outputted items are sorted the same way as they are specified in the `fields` query parameter. + * You can use this feature to effectively fix the output format. + */ + fields: string; + /** + * @description A comma-separated list of output field names that positionally rename the fields specified in the `fields` parameter. + * For example, `?fields=headline,url&outputFields=title,link` renames `headline` to `title` and `url` to `link` in the output. + * The number of names in `outputFields` must match the number of names in `fields`. + * Requires the `fields` parameter to be specified as well. + */ + outputFields: string; + /** @description A comma-separated list of fields which should be omitted from the items. */ + omit: string; + /** + * @description A comma-separated list of fields which should be unwound, in order which they should be processed. Each field should be either an array or an object. + * If the field is an array then every element of the array will become a separate record and merged with parent object. + * If the unwound field is an object then it is merged with the parent object. + * If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object then the item gets preserved as it is. + * Note that the unwound items ignore the `desc` parameter. + */ + unwind: string; + /** + * @description A comma-separated list of fields which should transform nested objects into flat structures. + * + * For example, with `flatten="foo"` the object `{"foo":{"bar": "hello"}}` is turned into `{"foo.bar": "hello"}`. + * + * The original object with properties is replaced with the flattened object. + */ + flatten: string; + /** + * @description By default, results are returned in the same order as they were stored. + * To reverse the order, set this parameter to `true` or `1`. + */ + descDataset: boolean; + /** + * @description If `true` or `1` then the response will define the `Content-Disposition: + * attachment` header, forcing a web browser to download the file rather + * than to display it. By default this header is not present. + */ + attachment: boolean; + /** + * @description A delimiter character for CSV files, only used if `format=csv`. You + * might need to URL-encode the character (e.g. use `%09` for tab or `%3B` + * for semicolon). The default delimiter is a simple comma (`,`). + */ + delimiter: string; + /** + * @description All text responses are encoded in UTF-8 encoding. By default, the + * `format=csv` files are prefixed with the UTF-8 Byte Order Mark (BOM), while `json`, `jsonl`, `xml`, `html` and `rss` files are not. + * + * If you want to override this default behavior, specify `bom=1` query parameter to include the BOM or `bom=0` to skip it. + */ + bom: boolean; + /** @description Overrides default root element name of `xml` output. By default the root element is `items`. */ + xmlRoot: string; + /** @description Overrides default element name that wraps each page or page function result object in `xml` output. By default the element name is `item`. */ + xmlRow: string; + /** @description If `true` or `1` then header row in the `csv` format is skipped. */ + skipHeaderRow: boolean; + /** @description If `true` or `1` then hidden fields are skipped from the output, i.e. fields starting with the `#` character. */ + skipHidden: boolean; + /** + * @description If `true` or `1` then empty items are skipped from the output. + * + * Note that if used, the results might contain less items than the limit value. + */ + skipEmpty: boolean; + /** + * @description If `true` or `1` then, the endpoint applies the `fields=url,pageFunctionResult,errorInfo` + * and `unwind=pageFunctionResult` query parameters. This feature is used to emulate simplified results provided by the + * legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + simplified: boolean; + /** + * @description Defines the view configuration for dataset items based on the schema definition. + * This parameter determines how the data will be filtered and presented. + * For complete specification details, see the [dataset schema documentation](https://docs.apify.com/storage/dataset-schema). + */ + view: string; + /** + * @description If `true` or `1` then, the all the items with errorInfo property will be skipped from the output. + * + * This feature is here to emulate functionality of API version 1 used for the legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + skipFailedPages: boolean; + /** + * @description Overrides the auto-generated RSS channel `` element. + * Only used when `format=rss`. If not provided, the title defaults to `Dataset <label>`. + */ + feedTitle: string; + /** + * @description Overrides the auto-generated RSS channel `<description>` element. + * Only used when `format=rss`. If not provided, the description defaults to `Items in dataset with id "<datasetId>".` + */ + feedDescription: string; + /** @description Actor run ID. */ + runId: string; + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run is resurrected with the same build it originally used. Specifically, + * if a run was first started with the `latest` tag, which resolves to version `0.0.3` at the + * time, a run resurrected without this parameter will continue running with `0.0.3`, even if + * `latest` already points to a newer build. + */ + buildResurrect: string; + /** + * @description Optional timeout for the run, in seconds. By default, the run uses the timeout + * specified in the run that is being resurrected. + */ + timeoutResurrect: number; + /** + * @description Memory limit for the run, in megabytes. The amount of memory can be set to a power of 2 + * with a minimum of 128. By default, the run uses the memory limit specified in the run + * that is being resurrected. + */ + memoryResurrect: number; + /** + * @description Determines whether the resurrected run will be restarted if it fails. + * By default, the resurrected run uses the same setting as before. + */ + restartOnErrorResurrect: boolean; + /** @description Filter for the run status. */ + lastRunParameters_status: string; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin: components["schemas"]["RunOrigin"]; + /** @description Signature used for the access. */ + signature: string; + /** @description Compression encoding of the request body. */ + "Content-Encoding": "br" | "gzip" | "deflate" | "identity"; + /** @description All keys up to this one (including) are skipped from the result. */ + exclusiveStartKey: string; + /** @description Number of keys to be returned. */ + keyValueStoreParameters_limit: number; + /** @description Limit the results to keys that belong to a specific collection from the key-value store schema. The key-value store need to have a schema defined for this parameter to work. */ + collectionKeys: string; + /** @description Limit the results to keys that start with a specific prefix. */ + prefixKeys: string; + /** @description If specified, only records belonging to a specific collection from the key-value store schema. The key-value store need to have a schema defined for this parameter to work. */ + collectionRecords: string; + /** @description If specified, only records whose key starts with the given prefix are included in the archive. */ + prefixRecords: string; + /** @description Key of the record. */ + recordKey: string; + /** + * @description If `true` or `1`, the response will be served with `Content-Disposition: attachment` header, + * causing web browsers to offer downloading HTML records instead of displaying them. + */ + keyValueStoreParameters_attachment: boolean; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey: string; + /** + * @deprecated + * @description All requests up to this one (including) are skipped from the result. (Deprecated, use `cursor` instead.) + */ + exclusiveStartId: string; + /** @description Number of keys to be returned. Maximum value is `10000`. */ + listLimit: number; + /** @description A cursor string for pagination, returned in the previous response as `nextCursor`. Use this to retrieve the next page of requests. */ + cursor: string; + /** @description Filter requests by their state. Possible values are `locked` and `pending`. You can combine multiple values separated by commas, which will mean the union of these filters – requests matching any of the specified states will be returned. (Not compatible with deprecated `exclusiveStartId` parameter.) */ + filter: ("locked" | "pending")[]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end. Default value is `false` (end of queue). + */ + forefront: string; + contentTypeJson: "application/json"; + /** @description Request ID. */ + requestId: string; + /** @description How long the requests will be locked for (in seconds). */ + lockSecs: number; + /** + * @description Determines if request should be added to the head of the queue or to the + * end after lock expires. + */ + lockForefront: string; + /** + * @description Determines if request should be added to the head of the queue or to the + * end after lock was removed. + */ + deleteForefront: string; + /** @description How many items from queue should be returned. */ + headLimit: number; + /** @description How many items from the queue should be returned. */ + headLockLimit: number; + /** @description If `true` or `1` then the logs will be streamed as long as the run or build is running. */ + stream: boolean; + /** @description If `true` or `1` then the web browser will download the log file rather than open it in a tab. */ + download: boolean; + /** + * @description If `true` or `1`, the logs will be kept verbatim. By default, the API removes + * ANSI escape codes from the logs, keeping only printable characters. + */ + raw: boolean; + /** + * @description If true passed, the Actor run will abort gracefully. + * It will send `aborting` and `persistState` event into run and force-stop the run after 30 seconds. + * It is helpful in cases where you plan to resurrect the run later. + */ + gracefully: boolean; + /** @description ID of a target Actor that the run should be transformed into. */ + targetActorId: string; + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: string; + /** + * @description If `true` or `1` then all the storages are returned. By default, only + * named storages are returned. + */ + unnamed: boolean; + /** @description Key-value store ID or `username~store-name`. */ + storeId: string; + /** @description Dataset ID or `username~dataset-name`. */ + datasetId: string; + /** @description Queue ID or `username~queue-name`. */ + queueId: string; + /** @description Webhook ID. */ + webhookId: string; + /** @description Schedule ID. */ + scheduleId: string; + /** @description ID of the Actor build or run. */ + buildOrRunId: string; + }; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record<string, never>; +export interface operations { + actors_get: { + parameters: { + query?: { + /** @description If `true` or `1` then the returned list only contains Actors owned by the user. The default value is `false`. */ + my?: boolean; + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `createdAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descCreatedAt"]; + /** + * @description Field to sort the records by. The default is `createdAt`. You can also use `stats.lastRunStartedAt` to sort + * by the most recently ran Actors. + */ + sortBy?: "createdAt" | "stats.lastRunStartedAt"; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "total": 2, + * "count": 2, + * "offset": 0, + * "limit": 1000, + * "desc": false, + * "items": [ + * { + * "id": "br9CKmk457", + * "createdAt": "2019-10-29T07:34:24.202Z", + * "modifiedAt": "2019-10-30T07:34:24.202Z", + * "name": "MyAct", + * "username": "janedoe" + * }, + * { + * "id": "ksiEKo23pz", + * "createdAt": "2019-11-30T07:34:24.202Z", + * "modifiedAt": "2019-12-12T07:34:24.202Z", + * "name": "MySecondAct", + * "username": "janedoe" + * } + * ] + * } + * } + */ + "application/json": components["schemas"]["ListOfActorsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actors_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "name": "MyActor", + * "description": "My favourite Actor!", + * "title": "My Actor", + * "isPublic": false, + * "seoTitle": "My Actor", + * "seoDescription": "My Actor is the best", + * "versions": [ + * { + * "versionNumber": "0.0", + * "sourceType": "SOURCE_FILES", + * "envVars": [ + * { + * "name": "DOMAIN", + * "value": "http://example.com", + * "isSecret": false + * }, + * { + * "name": "SECRET_PASSWORD", + * "value": "MyTopSecretPassword123", + * "isSecret": true + * } + * ], + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "sourceFiles": [] + * } + * ], + * "categories": [], + * "defaultRunOptions": { + * "build": "latest", + * "timeoutSecs": 3600, + * "memoryMbytes": 2048, + * "restartOnError": false + * } + * } + */ + "application/json": components["schemas"]["CreateActorRequest"]; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/actors/zdc3Pyhyz3m8vjDeM */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "id": "zdc3Pyhyz3m8vjDeM", + * "userId": "wRsJZtadYvn4mBZmm", + * "name": "MyActor", + * "username": "jane35", + * "description": "My favourite Actor!", + * "isPublic": false, + * "createdAt": "2019-07-08T11:27:57.401Z", + * "modifiedAt": "2019-07-08T14:01:05.546Z", + * "stats": { + * "totalBuilds": 9, + * "totalRuns": 16, + * "totalUsers": 6, + * "totalUsers7Days": 2, + * "totalUsers30Days": 6, + * "totalUsers90Days": 6, + * "totalMetamorphs": 2, + * "lastRunStartedAt": "2019-07-08T14:01:05.546Z" + * }, + * "versions": [ + * { + * "versionNumber": "0.1", + * "envVars": null, + * "sourceType": "SOURCE_FILES", + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "sourceFiles": [] + * }, + * { + * "versionNumber": "0.2", + * "sourceType": "GIT_REPO", + * "envVars": null, + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "gitRepoUrl": "https://github.com/jane35/my-actor" + * }, + * { + * "versionNumber": "0.3", + * "sourceType": "TARBALL", + * "envVars": null, + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "tarballUrl": "https://github.com/jane35/my-actor/archive/master.zip" + * }, + * { + * "versionNumber": "0.4", + * "sourceType": "GITHUB_GIST", + * "envVars": null, + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "gitHubGistUrl": "https://gist.github.com/jane35/e51feb784yu89" + * } + * ], + * "defaultRunOptions": { + * "build": "latest", + * "timeoutSecs": 3600, + * "memoryMbytes": 2048, + * "restartOnError": false + * }, + * "exampleRunInput": { + * "body": "{ \"helloWorld\": 123 }", + * "contentType": "application/json; charset=utf-8" + * }, + * "isDeprecated": false, + * "deploymentKey": "ssh-rsa AAAA ...", + * "title": "My Actor", + * "taggedBuilds": { + * "latest": { + * "buildId": "z2EryhbfhgSyqj6Hn", + * "buildNumber": "0.0.2", + * "finishedAt": "2019-06-10T11:15:49.286Z" + * } + * } + * } + * } + */ + "application/json": components["schemas"]["ActorResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "id": "zdc3Pyhyz3m8vjDeM", + * "userId": "wRsJZtadYvn4mBZmm", + * "name": "instagram-scraper", + * "username": "jane35", + * "description": "Extract data from Instagram.", + * "isPublic": false, + * "createdAt": "2019-07-08T11:27:57.401Z", + * "modifiedAt": "2019-07-08T14:01:05.546Z", + * "stats": { + * "totalBuilds": 9, + * "totalRuns": 16, + * "totalUsers": 6, + * "totalUsers7Days": 2, + * "totalUsers30Days": 6, + * "totalUsers90Days": 6, + * "totalMetamorphs": 2, + * "lastRunStartedAt": "2019-07-08T14:01:05.546Z" + * }, + * "versions": [ + * { + * "versionNumber": "0.1", + * "envVars": null, + * "sourceType": "SOURCE_FILES", + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "sourceFiles": [] + * }, + * { + * "versionNumber": "0.2", + * "sourceType": "GIT_REPO", + * "envVars": null, + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "gitRepoUrl": "https://github.com/jane35/my-actor" + * }, + * { + * "versionNumber": "0.3", + * "sourceType": "TARBALL", + * "envVars": null, + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "tarballUrl": "https://github.com/jane35/my-actor/archive/master.zip" + * }, + * { + * "versionNumber": "0.4", + * "sourceType": "GITHUB_GIST", + * "envVars": null, + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "gitHubGistUrl": "https://gist.github.com/jane35/e51feb784yu89" + * } + * ], + * "defaultRunOptions": { + * "build": "latest", + * "timeoutSecs": 3600, + * "memoryMbytes": 2048, + * "restartOnError": false + * }, + * "exampleRunInput": { + * "body": "{ \"helloWorld\": 123 }", + * "contentType": "application/json; charset=utf-8" + * }, + * "isDeprecated": false, + * "deploymentKey": "ssh-rsa AAAA ...", + * "title": "Instagram Scraper", + * "taggedBuilds": { + * "latest": { + * "buildId": "z2EryhbfhgSyqj6Hn", + * "buildNumber": "0.0.2", + * "finishedAt": "2019-06-10T11:15:49.286Z" + * } + * } + * } + * } + */ + "application/json": components["schemas"]["ActorResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UpdateActorRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "id": "zdc3Pyhyz3m8vjDeM", + * "userId": "wRsJZtadYvn4mBZmm", + * "name": "MyActor", + * "username": "jane35", + * "description": "My favourite Actor!", + * "isPublic": false, + * "actorPermissionLevel": "LIMITED_PERMISSIONS", + * "createdAt": "2019-07-08T11:27:57.401Z", + * "modifiedAt": "2019-07-08T14:01:05.546Z", + * "stats": { + * "totalBuilds": 9, + * "totalRuns": 16, + * "totalUsers": 6, + * "totalUsers7Days": 2, + * "totalUsers30Days": 6, + * "totalUsers90Days": 6, + * "totalMetamorphs": 2, + * "lastRunStartedAt": "2019-07-08T14:01:05.546Z" + * }, + * "versions": [ + * { + * "versionNumber": "0.1", + * "envVars": null, + * "sourceType": "SOURCE_FILES", + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "sourceFiles": [] + * }, + * { + * "versionNumber": "0.2", + * "sourceType": "GIT_REPO", + * "envVars": null, + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "gitRepoUrl": "https://github.com/jane35/my-actor" + * }, + * { + * "versionNumber": "0.3", + * "sourceType": "TARBALL", + * "envVars": null, + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "tarballUrl": "https://github.com/jane35/my-actor/archive/master.zip" + * }, + * { + * "versionNumber": "0.4", + * "sourceType": "GITHUB_GIST", + * "envVars": null, + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "gitHubGistUrl": "https://gist.github.com/jane35/e51feb784yu89" + * } + * ], + * "defaultRunOptions": { + * "build": "latest", + * "timeoutSecs": 3600, + * "memoryMbytes": 2048, + * "restartOnError": false + * }, + * "exampleRunInput": { + * "body": "{ \"helloWorld\": 123 }", + * "contentType": "application/json; charset=utf-8" + * }, + * "isDeprecated": false, + * "deploymentKey": "ssh-rsa AAAA ...", + * "title": "My Actor", + * "taggedBuilds": { + * "latest": { + * "buildId": "z2EryhbfhgSyqj6Hn", + * "buildNumber": "0.0.2", + * "finishedAt": "2019-06-10T11:15:49.286Z" + * } + * } + * } + * } + */ + "application/json": components["schemas"]["ActorResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: { + headers: { + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_versions_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "total": 5, + * "items": [ + * { + * "versionNumber": "0.1", + * "envVars": null, + * "sourceType": "SOURCE_FILES", + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "sourceFiles": [] + * }, + * { + * "versionNumber": "0.2", + * "sourceType": "GIT_REPO", + * "envVars": null, + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "gitRepoUrl": "https://github.com/jane35/my-actor" + * }, + * { + * "versionNumber": "0.3", + * "sourceType": "TARBALL", + * "envVars": null, + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "tarballUrl": "https://github.com/jane35/my-actor/archive/master.zip" + * }, + * { + * "versionNumber": "0.4", + * "sourceType": "GITHUB_GIST", + * "envVars": null, + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "gitHubGistUrl": "https://gist.github.com/jane35/e51feb784yu89" + * } + * ] + * } + * } + */ + "application/json": components["schemas"]["ListOfVersionsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_versions_post: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "versionNumber": "0.1", + * "sourceType": "GIT_REPO", + * "gitRepoUrl": "https://github.com/my-github-account/actor-repo" + * } + */ + "application/json": components["schemas"]["CreateOrUpdateVersionRequest"]; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/actors/zdc3Pyhyz3m8vjDeM/versions/0.0 */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["VersionResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_version_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor version. */ + versionNumber: components["parameters"]["versionNumber"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["VersionResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_version_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor version. */ + versionNumber: components["parameters"]["versionNumber"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "versionNumber": "0.0", + * "sourceType": "SOURCE_FILES", + * "envVars": [ + * { + * "name": "DOMAIN", + * "value": "http://example.com", + * "isSecret": false + * }, + * { + * "name": "SECRET_PASSWORD", + * "value": "MyTopSecretPassword123", + * "isSecret": true + * } + * ], + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "sourceFiles": [] + * } + */ + "application/json": components["schemas"]["CreateOrUpdateVersionRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["VersionResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_version_post: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor version. */ + versionNumber: components["parameters"]["versionNumber"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "versionNumber": "0.0", + * "sourceType": "SOURCE_FILES", + * "envVars": [ + * { + * "name": "DOMAIN", + * "value": "http://example.com", + * "isSecret": false + * }, + * { + * "name": "SECRET_PASSWORD", + * "value": "MyTopSecretPassword123", + * "isSecret": true + * } + * ], + * "applyEnvVarsToBuild": false, + * "buildTag": "latest", + * "sourceFiles": [] + * } + */ + "application/json": components["schemas"]["CreateOrUpdateVersionRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["VersionResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_version_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor version. */ + versionNumber: components["parameters"]["versionNumber"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: { + headers: { + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_version_envVars_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor version. */ + versionNumber: components["parameters"]["versionNumber"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfEnvVarsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_version_envVars_post: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor version. */ + versionNumber: components["parameters"]["versionNumber"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "name": "ENV_VAR_NAME", + * "value": "my-env-var" + * } + */ + "application/json": components["schemas"]["EnvVarRequest"]; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/actors/zdc3Pyhyz3m8vjDeM/versions/1.0/env-vars/ENV_VAR_NAME */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "name": "MY_ENV_VAR", + * "value": "my-value", + * "isSecret": false + * } + * } + */ + "application/json": components["schemas"]["EnvVarResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_version_envVar_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor version. */ + versionNumber: components["parameters"]["versionNumber"]; + /** @description The name of the environment variable */ + envVarName: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "name": "MY_ENV_VAR", + * "value": "my-value", + * "isSecret": false + * } + * } + */ + "application/json": components["schemas"]["EnvVarResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_version_envVar_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor version. */ + versionNumber: components["parameters"]["versionNumber"]; + /** @description The name of the environment variable */ + envVarName: string; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "name": "MY_ENV_VAR", + * "value": "my-new-value", + * "isSecret": false + * } + */ + "application/json": components["schemas"]["EnvVarRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "name": "MY_ENV_VAR", + * "value": "my-value", + * "isSecret": false + * } + * } + */ + "application/json": components["schemas"]["EnvVarResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_version_envVar_post: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor version. */ + versionNumber: components["parameters"]["versionNumber"]; + /** @description The name of the environment variable */ + envVarName: string; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "name": "MY_ENV_VAR", + * "value": "my-new-value", + * "isSecret": false + * } + */ + "application/json": components["schemas"]["EnvVarRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "name": "MY_ENV_VAR", + * "value": "my-value", + * "isSecret": false + * } + * } + */ + "application/json": components["schemas"]["EnvVarResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_version_envVar_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor version. */ + versionNumber: components["parameters"]["versionNumber"]; + /** @description The name of the environment variable */ + envVarName: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: { + headers: { + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_webhooks_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `createdAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descCreatedAt"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfWebhooksResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actors_builds_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `startedAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descStartedAt"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfBuildsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actors_builds_post: { + parameters: { + query: { + /** @description Actor version number to be built. */ + version: string; + /** + * @description If `true` or `1`, the system will use a cache to speed up the build + * process. By default, cache is not used. + */ + useCache?: boolean; + /** + * @description If `true` or `1` then the Actor is built with beta versions of Apify NPM + * packages. By default, the build uses `latest` packages. + */ + betaPackages?: boolean; + /** + * @description Tag to be applied to the build on success. By default, the tag is taken + * from Actor version's `buildTag` property. + */ + tag?: string; + /** + * @description The maximum number of seconds the server waits for the build to finish. + * By default it is `0`, the maximum value is `60`. <!-- MAX_ACTOR_JOB_ASYNC_WAIT_SECS --> + * If the build finishes in time then the returned build object will have a + * terminal status (e.g. `SUCCEEDED`), otherwise it will have a transitional status (e.g. `RUNNING`). + */ + waitForFinish?: components["parameters"]["waitForFinishBuild"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/actors/zdc3Pyhyz3m8vjDeM/runs/HG7ML7M8z78YcAPEB */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BuildResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 408: components["responses"]["Timeout"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_build_default_get: { + parameters: { + query?: { + /** + * @description The maximum number of seconds the server waits for the build to finish. + * By default it is `0`, the maximum value is `60`. <!-- MAX_ACTOR_JOB_ASYNC_WAIT_SECS --> + * If the build finishes in time then the returned build object will have a + * terminal status (e.g. `SUCCEEDED`), otherwise it will have a transitional status (e.g. `RUNNING`). + */ + waitForFinish?: components["parameters"]["waitForFinishBuild"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BuildResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 408: components["responses"]["Timeout"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_openapi_json_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** + * @description ID of the build, found in the build's Info tab. + * Use the special value `default` to get the OpenAPI schema for the Actor's default build. + */ + buildId: components["parameters"]["buildIdWithDefault"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description The OpenAPI specification document for the Actor build. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actors_build_get: { + parameters: { + query?: { + /** + * @description The maximum number of seconds the server waits for the build to finish. + * By default it is `0`, the maximum value is `60`. <!-- MAX_ACTOR_JOB_ASYNC_WAIT_SECS --> + * If the build finishes in time then the returned build object will have a + * terminal status (e.g. `SUCCEEDED`), otherwise it will have a transitional status (e.g. `RUNNING`). + */ + waitForFinish?: components["parameters"]["waitForFinishBuild"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description ID of the build, found in the build's Info tab. */ + buildId: components["parameters"]["buildId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BuildResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 408: components["responses"]["Timeout"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actors_build_abort_post: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description ID of the build, found in the build's Info tab. */ + buildId: components["parameters"]["buildId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "id": "HG7ML7M8z78YcAPEB", + * "actId": "janedoe~my-actor", + * "userId": "klmdEpoiojmdEMlk3", + * "startedAt": "2019-11-30T07:34:24.202Z", + * "finishedAt": "2019-12-12T09:30:12.202Z", + * "status": "ABORTED", + * "meta": { + * "origin": "WEB", + * "userAgent": "Mozilla/5.0 (iPad)" + * }, + * "stats": { + * "durationMillis": 1000, + * "runTimeSecs": 5.718, + * "computeUnits": 0.012699444444444444 + * }, + * "options": { + * "useCache": false, + * "memoryMbytes": 1024, + * "diskMbytes": 2048 + * }, + * "usage": { + * "ACTOR_COMPUTE_UNITS": 0.08 + * }, + * "usageTotalUsd": 0.02, + * "usageUsd": { + * "ACTOR_COMPUTE_UNITS": 0.02 + * }, + * "buildNumber": "0.1.1" + * } + * } + */ + "application/json": components["schemas"]["BuildResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actors_runs_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `startedAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descStartedAt"]; + /** + * @description Single status or comma-separated list of statuses, see ([available + * statuses](https://docs.apify.com/platform/actors/running/runs-and-builds#lifecycle)). Used to filter runs by the specified statuses only. + */ + status?: components["parameters"]["status"]; + /** + * @description Filter runs that started after the specified date and time (inclusive). + * The value must be a valid ISO 8601 datetime string (UTC). + */ + startedAfter?: components["parameters"]["startedAfter"]; + /** + * @description Filter runs that started before the specified date and time (inclusive). + * The value must be a valid ISO 8601 datetime string (UTC). + */ + startedBefore?: components["parameters"]["startedBefore"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfRunsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actors_runs_post: { + parameters: { + query?: { + /** @description Optional timeout for the run, in seconds. By default, the run uses the timeout from its configuration. */ + timeout?: components["parameters"]["timeout"]; + /** + * @description Memory limit for the run, in megabytes. You can set the amount of memory to a power of 2 with a minimum of 128. + * By default, the run uses the memory limit from its configuration. Don't change this value unless the Actor's + * documentation recommends it or you're aware of the consequences. + */ + memory?: components["parameters"]["memory"]; + /** + * @description Specifies the maximum number of dataset items that will be charged for pay-per-result Actors. + * This does NOT guarantee that the Actor will return only this many items. + * It only ensures you won't be charged for more than this number of items. + * Only works for pay-per-result Actors. + * Value can be accessed in the actor run using `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable. + */ + maxItems?: components["parameters"]["maxItems"]; + /** + * @description Specifies the maximum total cost of the run. + * Use it to cap the total amount charged for all pricing models. + * You can access the maximum cost in your Actor + * by using the `ACTOR_MAX_TOTAL_CHARGE_USD` environment variable. + */ + maxTotalChargeUsd?: components["parameters"]["maxTotalChargeUsd"]; + /** @description Determines whether the run will be restarted if it fails. */ + restartOnError?: components["parameters"]["restartOnError"]; + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run uses the build from its configuration (typically `latest`). + */ + build?: components["parameters"]["build"]; + /** + * @description The maximum number of seconds the server waits for the run to finish. By + * default it is `0`, the maximum value is `60`. <!-- MAX_ACTOR_JOB_ASYNC_WAIT_SECS --> + * If the run finishes in time then the returned run object will have a terminal status (e.g. `SUCCEEDED`), + * otherwise it will have a transitional status (e.g. `RUNNING`). + */ + waitForFinish?: components["parameters"]["waitForFinishRun"]; + /** + * @description Specifies optional webhooks associated with the Actor run, which can be used to receive a notification + * e.g. when the Actor finished or failed. The value is a Base64-encoded JSON array whose items follow + * the WebhookRepresentation schema. For more information, see + * [Webhooks documentation](https://docs.apify.com/platform/integrations/webhooks). + */ + webhooks?: components["parameters"]["webhooks"]; + /** + * @description Overrides the Actor's permission level for this specific run. Use to test restricted permissions + * before deploying changes to your Actor or to temporarily elevate or restrict access. If you don't specify this + * parameter, the Actor uses its configured default permission level. For more information on permissions, see the + * [documentation](https://docs.apify.com/platform/actors/development/permissions). + */ + forcePermissionLevel?: "LIMITED_PERMISSIONS" | "FULL_PERMISSIONS"; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "foo": "bar" + * } + */ + "application/json": Record<string, unknown>; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/actors/zdc3Pyhyz3m8vjDeM/runs/HG7ML7M8z78YcAPEB */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 408: components["responses"]["Timeout"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runSync_get: { + parameters: { + query?: { + /** + * @description Key of the record from the run's default key-value store to return in the + * response. Defaults to `OUTPUT`. Actors aren't required to store a record + * under this key, so if it doesn't exist the response contains no data. + */ + outputRecordKey?: components["parameters"]["outputRecordKey"]; + /** @description Optional timeout for the run, in seconds. By default, the run uses the timeout from its configuration. */ + timeout?: components["parameters"]["timeout"]; + /** + * @description Memory limit for the run, in megabytes. You can set the amount of memory to a power of 2 with a minimum of 128. + * By default, the run uses the memory limit from its configuration. Don't change this value unless the Actor's + * documentation recommends it or you're aware of the consequences. + */ + memory?: components["parameters"]["memory"]; + /** + * @description Specifies the maximum number of dataset items that will be charged for pay-per-result Actors. + * This does NOT guarantee that the Actor will return only this many items. + * It only ensures you won't be charged for more than this number of items. + * Only works for pay-per-result Actors. + * Value can be accessed in the actor run using `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable. + */ + maxItems?: components["parameters"]["maxItems"]; + /** + * @description Specifies the maximum total cost of the run. + * Use it to cap the total amount charged for all pricing models. + * You can access the maximum cost in your Actor + * by using the `ACTOR_MAX_TOTAL_CHARGE_USD` environment variable. + */ + maxTotalChargeUsd?: components["parameters"]["maxTotalChargeUsd"]; + /** @description Determines whether the run will be restarted if it fails. */ + restartOnError?: components["parameters"]["restartOnError"]; + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run uses the build from its configuration (typically `latest`). + */ + build?: components["parameters"]["build"]; + /** + * @description Specifies optional webhooks associated with the Actor run, which can be used to receive a notification + * e.g. when the Actor finished or failed. The value is a Base64-encoded JSON array whose items follow + * the WebhookRepresentation schema. For more information, see + * [Webhooks documentation](https://docs.apify.com/platform/integrations/webhooks). + */ + webhooks?: components["parameters"]["webhooks"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "foo": "bar" + * } + */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 408: components["responses"]["Timeout"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runSync_post: { + parameters: { + query?: { + /** + * @description Key of the record from the run's default key-value store to return in the + * response. Defaults to `OUTPUT`. Actors aren't required to store a record + * under this key, so if it doesn't exist the response contains no data. + */ + outputRecordKey?: components["parameters"]["outputRecordKey"]; + /** @description Optional timeout for the run, in seconds. By default, the run uses the timeout from its configuration. */ + timeout?: components["parameters"]["timeout"]; + /** + * @description Memory limit for the run, in megabytes. You can set the amount of memory to a power of 2 with a minimum of 128. + * By default, the run uses the memory limit from its configuration. Don't change this value unless the Actor's + * documentation recommends it or you're aware of the consequences. + */ + memory?: components["parameters"]["memory"]; + /** + * @description Specifies the maximum number of dataset items that will be charged for pay-per-result Actors. + * This does NOT guarantee that the Actor will return only this many items. + * It only ensures you won't be charged for more than this number of items. + * Only works for pay-per-result Actors. + * Value can be accessed in the actor run using `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable. + */ + maxItems?: components["parameters"]["maxItems"]; + /** + * @description Specifies the maximum total cost of the run. + * Use it to cap the total amount charged for all pricing models. + * You can access the maximum cost in your Actor + * by using the `ACTOR_MAX_TOTAL_CHARGE_USD` environment variable. + */ + maxTotalChargeUsd?: components["parameters"]["maxTotalChargeUsd"]; + /** @description Determines whether the run will be restarted if it fails. */ + restartOnError?: components["parameters"]["restartOnError"]; + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run uses the build from its configuration (typically `latest`). + */ + build?: components["parameters"]["build"]; + /** + * @description Specifies optional webhooks associated with the Actor run, which can be used to receive a notification + * e.g. when the Actor finished or failed. The value is a Base64-encoded JSON array whose items follow + * the WebhookRepresentation schema. For more information, see + * [Webhooks documentation](https://docs.apify.com/platform/integrations/webhooks). + */ + webhooks?: components["parameters"]["webhooks"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "foo": "bar" + * } + */ + "application/json": Record<string, unknown>; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "bar": "foo" + * } + */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 408: components["responses"]["Timeout"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runSyncGetDatasetItems_get: { + parameters: { + query?: { + /** @description Optional timeout for the run, in seconds. By default, the run uses the timeout from its configuration. */ + timeout?: components["parameters"]["timeout"]; + /** + * @description Memory limit for the run, in megabytes. You can set the amount of memory to a power of 2 with a minimum of 128. + * By default, the run uses the memory limit from its configuration. Don't change this value unless the Actor's + * documentation recommends it or you're aware of the consequences. + */ + memory?: components["parameters"]["memory"]; + /** + * @description Specifies the maximum number of dataset items that will be charged for pay-per-result Actors. + * This does NOT guarantee that the Actor will return only this many items. + * It only ensures you won't be charged for more than this number of items. + * Only works for pay-per-result Actors. + * Value can be accessed in the actor run using `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable. + */ + maxItems?: components["parameters"]["maxItems"]; + /** + * @description Specifies the maximum total cost of the run. + * Use it to cap the total amount charged for all pricing models. + * You can access the maximum cost in your Actor + * by using the `ACTOR_MAX_TOTAL_CHARGE_USD` environment variable. + */ + maxTotalChargeUsd?: components["parameters"]["maxTotalChargeUsd"]; + /** @description Determines whether the run will be restarted if it fails. */ + restartOnError?: components["parameters"]["restartOnError"]; + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run uses the build from its configuration (typically `latest`). + */ + build?: components["parameters"]["build"]; + /** + * @description Specifies optional webhooks associated with the Actor run, which can be used to receive a notification + * e.g. when the Actor finished or failed. The value is a Base64-encoded JSON array whose items follow + * the WebhookRepresentation schema. For more information, see + * [Webhooks documentation](https://docs.apify.com/platform/integrations/webhooks). + */ + webhooks?: components["parameters"]["webhooks"]; + /** @description Format of the results, possible values are: `json`, `jsonl`, `csv`, `html`, `xlsx`, `xml` and `rss`. The default value is `json`. */ + format?: components["parameters"]["format"]; + /** + * @description If `true` or `1` then the API endpoint returns only non-empty items and skips hidden fields (i.e. fields starting with the # character). + * The `clean` parameter is just a shortcut for `skipHidden=true` and `skipEmpty=true` parameters. + * Note that since some objects might be skipped from the output, that the result might contain less items than the `limit` value. + */ + clean?: components["parameters"]["clean"]; + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. By default there is no limit. */ + limit?: components["parameters"]["datasetParameters_limit"]; + /** + * @description A comma-separated list of fields which should be picked from the items, only these fields will remain in the resulting record objects. + * Note that the fields in the outputted items are sorted the same way as they are specified in the `fields` query parameter. + * You can use this feature to effectively fix the output format. + */ + fields?: components["parameters"]["fields"]; + /** + * @description A comma-separated list of output field names that positionally rename the fields specified in the `fields` parameter. + * For example, `?fields=headline,url&outputFields=title,link` renames `headline` to `title` and `url` to `link` in the output. + * The number of names in `outputFields` must match the number of names in `fields`. + * Requires the `fields` parameter to be specified as well. + */ + outputFields?: components["parameters"]["outputFields"]; + /** @description A comma-separated list of fields which should be omitted from the items. */ + omit?: components["parameters"]["omit"]; + /** + * @description A comma-separated list of fields which should be unwound, in order which they should be processed. Each field should be either an array or an object. + * If the field is an array then every element of the array will become a separate record and merged with parent object. + * If the unwound field is an object then it is merged with the parent object. + * If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object then the item gets preserved as it is. + * Note that the unwound items ignore the `desc` parameter. + */ + unwind?: components["parameters"]["unwind"]; + /** + * @description A comma-separated list of fields which should transform nested objects into flat structures. + * + * For example, with `flatten="foo"` the object `{"foo":{"bar": "hello"}}` is turned into `{"foo.bar": "hello"}`. + * + * The original object with properties is replaced with the flattened object. + */ + flatten?: components["parameters"]["flatten"]; + /** + * @description By default, results are returned in the same order as they were stored. + * To reverse the order, set this parameter to `true` or `1`. + */ + desc?: components["parameters"]["descDataset"]; + /** + * @description If `true` or `1` then the response will define the `Content-Disposition: + * attachment` header, forcing a web browser to download the file rather + * than to display it. By default this header is not present. + */ + attachment?: components["parameters"]["attachment"]; + /** + * @description A delimiter character for CSV files, only used if `format=csv`. You + * might need to URL-encode the character (e.g. use `%09` for tab or `%3B` + * for semicolon). The default delimiter is a simple comma (`,`). + */ + delimiter?: components["parameters"]["delimiter"]; + /** + * @description All text responses are encoded in UTF-8 encoding. By default, the + * `format=csv` files are prefixed with the UTF-8 Byte Order Mark (BOM), while `json`, `jsonl`, `xml`, `html` and `rss` files are not. + * + * If you want to override this default behavior, specify `bom=1` query parameter to include the BOM or `bom=0` to skip it. + */ + bom?: components["parameters"]["bom"]; + /** @description Overrides default root element name of `xml` output. By default the root element is `items`. */ + xmlRoot?: components["parameters"]["xmlRoot"]; + /** @description Overrides default element name that wraps each page or page function result object in `xml` output. By default the element name is `item`. */ + xmlRow?: components["parameters"]["xmlRow"]; + /** @description If `true` or `1` then header row in the `csv` format is skipped. */ + skipHeaderRow?: components["parameters"]["skipHeaderRow"]; + /** @description If `true` or `1` then hidden fields are skipped from the output, i.e. fields starting with the `#` character. */ + skipHidden?: components["parameters"]["skipHidden"]; + /** + * @description If `true` or `1` then empty items are skipped from the output. + * + * Note that if used, the results might contain less items than the limit value. + */ + skipEmpty?: components["parameters"]["skipEmpty"]; + /** + * @description If `true` or `1` then, the endpoint applies the `fields=url,pageFunctionResult,errorInfo` + * and `unwind=pageFunctionResult` query parameters. This feature is used to emulate simplified results provided by the + * legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + simplified?: components["parameters"]["simplified"]; + /** + * @description Defines the view configuration for dataset items based on the schema definition. + * This parameter determines how the data will be filtered and presented. + * For complete specification details, see the [dataset schema documentation](https://docs.apify.com/storage/dataset-schema). + */ + view?: components["parameters"]["view"]; + /** + * @description If `true` or `1` then, the all the items with errorInfo property will be skipped from the output. + * + * This feature is here to emulate functionality of API version 1 used for the legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + skipFailedPages?: components["parameters"]["skipFailedPages"]; + /** + * @description Overrides the auto-generated RSS channel `<title>` element. + * Only used when `format=rss`. If not provided, the title defaults to `Dataset <label>`. + */ + feedTitle?: components["parameters"]["feedTitle"]; + /** + * @description Overrides the auto-generated RSS channel `<description>` element. + * Only used when `format=rss`. If not provided, the description defaults to `Items in dataset with id "<datasetId>".` + */ + feedDescription?: components["parameters"]["feedDescription"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + /** @description The offset of the first item in the current page. */ + "X-Apify-Pagination-Offset"?: { + /** @example 0 */ + "text/plain": string; + }; + /** @description The maximum number of items returned per page. */ + "X-Apify-Pagination-Limit"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The number of items returned in the current page. */ + "X-Apify-Pagination-Count"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The total number of items in the dataset. */ + "X-Apify-Pagination-Total"?: { + /** @example 10204 */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + /** + * @example [ + * { + * "myValue": "some value", + * "myOtherValue": "some other value" + * } + * ] + */ + "application/json": Record<string, unknown>[]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 408: components["responses"]["Timeout"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runSyncGetDatasetItems_post: { + parameters: { + query?: { + /** @description Optional timeout for the run, in seconds. By default, the run uses the timeout from its configuration. */ + timeout?: components["parameters"]["timeout"]; + /** + * @description Memory limit for the run, in megabytes. You can set the amount of memory to a power of 2 with a minimum of 128. + * By default, the run uses the memory limit from its configuration. Don't change this value unless the Actor's + * documentation recommends it or you're aware of the consequences. + */ + memory?: components["parameters"]["memory"]; + /** + * @description Specifies the maximum number of dataset items that will be charged for pay-per-result Actors. + * This does NOT guarantee that the Actor will return only this many items. + * It only ensures you won't be charged for more than this number of items. + * Only works for pay-per-result Actors. + * Value can be accessed in the actor run using `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable. + */ + maxItems?: components["parameters"]["maxItems"]; + /** + * @description Specifies the maximum total cost of the run. + * Use it to cap the total amount charged for all pricing models. + * You can access the maximum cost in your Actor + * by using the `ACTOR_MAX_TOTAL_CHARGE_USD` environment variable. + */ + maxTotalChargeUsd?: components["parameters"]["maxTotalChargeUsd"]; + /** @description Determines whether the run will be restarted if it fails. */ + restartOnError?: components["parameters"]["restartOnError"]; + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run uses the build from its configuration (typically `latest`). + */ + build?: components["parameters"]["build"]; + /** + * @description Specifies optional webhooks associated with the Actor run, which can be used to receive a notification + * e.g. when the Actor finished or failed. The value is a Base64-encoded JSON array whose items follow + * the WebhookRepresentation schema. For more information, see + * [Webhooks documentation](https://docs.apify.com/platform/integrations/webhooks). + */ + webhooks?: components["parameters"]["webhooks"]; + /** @description Format of the results, possible values are: `json`, `jsonl`, `csv`, `html`, `xlsx`, `xml` and `rss`. The default value is `json`. */ + format?: components["parameters"]["format"]; + /** + * @description If `true` or `1` then the API endpoint returns only non-empty items and skips hidden fields (i.e. fields starting with the # character). + * The `clean` parameter is just a shortcut for `skipHidden=true` and `skipEmpty=true` parameters. + * Note that since some objects might be skipped from the output, that the result might contain less items than the `limit` value. + */ + clean?: components["parameters"]["clean"]; + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. By default there is no limit. */ + limit?: components["parameters"]["datasetParameters_limit"]; + /** + * @description A comma-separated list of fields which should be picked from the items, only these fields will remain in the resulting record objects. + * Note that the fields in the outputted items are sorted the same way as they are specified in the `fields` query parameter. + * You can use this feature to effectively fix the output format. + */ + fields?: components["parameters"]["fields"]; + /** + * @description A comma-separated list of output field names that positionally rename the fields specified in the `fields` parameter. + * For example, `?fields=headline,url&outputFields=title,link` renames `headline` to `title` and `url` to `link` in the output. + * The number of names in `outputFields` must match the number of names in `fields`. + * Requires the `fields` parameter to be specified as well. + */ + outputFields?: components["parameters"]["outputFields"]; + /** @description A comma-separated list of fields which should be omitted from the items. */ + omit?: components["parameters"]["omit"]; + /** + * @description A comma-separated list of fields which should be unwound, in order which they should be processed. Each field should be either an array or an object. + * If the field is an array then every element of the array will become a separate record and merged with parent object. + * If the unwound field is an object then it is merged with the parent object. + * If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object then the item gets preserved as it is. + * Note that the unwound items ignore the `desc` parameter. + */ + unwind?: components["parameters"]["unwind"]; + /** + * @description A comma-separated list of fields which should transform nested objects into flat structures. + * + * For example, with `flatten="foo"` the object `{"foo":{"bar": "hello"}}` is turned into `{"foo.bar": "hello"}`. + * + * The original object with properties is replaced with the flattened object. + */ + flatten?: components["parameters"]["flatten"]; + /** + * @description By default, results are returned in the same order as they were stored. + * To reverse the order, set this parameter to `true` or `1`. + */ + desc?: components["parameters"]["descDataset"]; + /** + * @description If `true` or `1` then the response will define the `Content-Disposition: + * attachment` header, forcing a web browser to download the file rather + * than to display it. By default this header is not present. + */ + attachment?: components["parameters"]["attachment"]; + /** + * @description A delimiter character for CSV files, only used if `format=csv`. You + * might need to URL-encode the character (e.g. use `%09` for tab or `%3B` + * for semicolon). The default delimiter is a simple comma (`,`). + */ + delimiter?: components["parameters"]["delimiter"]; + /** + * @description All text responses are encoded in UTF-8 encoding. By default, the + * `format=csv` files are prefixed with the UTF-8 Byte Order Mark (BOM), while `json`, `jsonl`, `xml`, `html` and `rss` files are not. + * + * If you want to override this default behavior, specify `bom=1` query parameter to include the BOM or `bom=0` to skip it. + */ + bom?: components["parameters"]["bom"]; + /** @description Overrides default root element name of `xml` output. By default the root element is `items`. */ + xmlRoot?: components["parameters"]["xmlRoot"]; + /** @description Overrides default element name that wraps each page or page function result object in `xml` output. By default the element name is `item`. */ + xmlRow?: components["parameters"]["xmlRow"]; + /** @description If `true` or `1` then header row in the `csv` format is skipped. */ + skipHeaderRow?: components["parameters"]["skipHeaderRow"]; + /** @description If `true` or `1` then hidden fields are skipped from the output, i.e. fields starting with the `#` character. */ + skipHidden?: components["parameters"]["skipHidden"]; + /** + * @description If `true` or `1` then empty items are skipped from the output. + * + * Note that if used, the results might contain less items than the limit value. + */ + skipEmpty?: components["parameters"]["skipEmpty"]; + /** + * @description If `true` or `1` then, the endpoint applies the `fields=url,pageFunctionResult,errorInfo` + * and `unwind=pageFunctionResult` query parameters. This feature is used to emulate simplified results provided by the + * legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + simplified?: components["parameters"]["simplified"]; + /** + * @description Defines the view configuration for dataset items based on the schema definition. + * This parameter determines how the data will be filtered and presented. + * For complete specification details, see the [dataset schema documentation](https://docs.apify.com/storage/dataset-schema). + */ + view?: components["parameters"]["view"]; + /** + * @description If `true` or `1` then, the all the items with errorInfo property will be skipped from the output. + * + * This feature is here to emulate functionality of API version 1 used for the legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + skipFailedPages?: components["parameters"]["skipFailedPages"]; + /** + * @description Overrides the auto-generated RSS channel `<title>` element. + * Only used when `format=rss`. If not provided, the title defaults to `Dataset <label>`. + */ + feedTitle?: components["parameters"]["feedTitle"]; + /** + * @description Overrides the auto-generated RSS channel `<description>` element. + * Only used when `format=rss`. If not provided, the description defaults to `Items in dataset with id "<datasetId>".` + */ + feedDescription?: components["parameters"]["feedDescription"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "foo": "bar" + * } + */ + "application/json": Record<string, unknown>; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + /** @description The offset of the first item in the current page. */ + "X-Apify-Pagination-Offset"?: { + /** @example 0 */ + "text/plain": string; + }; + /** @description The maximum number of items returned per page. */ + "X-Apify-Pagination-Limit"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The number of items returned in the current page. */ + "X-Apify-Pagination-Count"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The total number of items in the dataset. */ + "X-Apify-Pagination-Total"?: { + /** @example 10204 */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + /** + * @example [ + * { + * "myValue": "some value", + * "myOtherValue": "some other value" + * } + * ] + */ + "application/json": Record<string, unknown>[]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 408: components["responses"]["Timeout"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_validateInput_post: { + parameters: { + query?: { + /** + * @description Optional tag or number of the Actor build to use for input schema validation. + * By default, the `latest` build tag is used. + */ + build?: string; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + /** @description JSON input to validate against the Actor's input schema. */ + requestBody: { + content: { + "application/json": Record<string, unknown>; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description Whether the input is valid according to the Actor's input schema. */ + valid: boolean; + }; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_run_resurrect_post: { + parameters: { + query?: { + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run is resurrected with the same build it originally used. Specifically, + * if a run was first started with the `latest` tag, which resolves to version `0.0.3` at the + * time, a run resurrected without this parameter will continue running with `0.0.3`, even if + * `latest` already points to a newer build. + */ + build?: components["parameters"]["buildResurrect"]; + /** + * @description Optional timeout for the run, in seconds. By default, the run uses the timeout + * specified in the run that is being resurrected. + */ + timeout?: components["parameters"]["timeoutResurrect"]; + /** + * @description Memory limit for the run, in megabytes. The amount of memory can be set to a power of 2 + * with a minimum of 128. By default, the run uses the memory limit specified in the run + * that is being resurrected. + */ + memory?: components["parameters"]["memoryResurrect"]; + /** + * @description Determines whether the resurrected run will be restarted if it fails. + * By default, the resurrected run uses the same setting as before. + */ + restartOnError?: components["parameters"]["restartOnErrorResurrect"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description The maximum number of seconds the server waits for the run to finish. By + * default it is `0`, the maximum value is `60`. <!-- MAX_ACTOR_JOB_ASYNC_WAIT_SECS --> + * If the run finishes in time then the returned run object will have a terminal status (e.g. `SUCCEEDED`), + * otherwise it will have a transitional status (e.g. `RUNNING`). + */ + waitForFinish?: components["parameters"]["waitForFinishRun"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_dataset_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_dataset_put: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UpdateDatasetRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_dataset_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_dataset_items_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description Format of the results, possible values are: `json`, `jsonl`, `csv`, `html`, `xlsx`, `xml` and `rss`. The default value is `json`. */ + format?: components["parameters"]["format"]; + /** + * @description If `true` or `1` then the API endpoint returns only non-empty items and skips hidden fields (i.e. fields starting with the # character). + * The `clean` parameter is just a shortcut for `skipHidden=true` and `skipEmpty=true` parameters. + * Note that since some objects might be skipped from the output, that the result might contain less items than the `limit` value. + */ + clean?: components["parameters"]["clean"]; + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. By default there is no limit. */ + limit?: components["parameters"]["datasetParameters_limit"]; + /** + * @description A comma-separated list of fields which should be picked from the items, only these fields will remain in the resulting record objects. + * Note that the fields in the outputted items are sorted the same way as they are specified in the `fields` query parameter. + * You can use this feature to effectively fix the output format. + */ + fields?: components["parameters"]["fields"]; + /** + * @description A comma-separated list of output field names that positionally rename the fields specified in the `fields` parameter. + * For example, `?fields=headline,url&outputFields=title,link` renames `headline` to `title` and `url` to `link` in the output. + * The number of names in `outputFields` must match the number of names in `fields`. + * Requires the `fields` parameter to be specified as well. + */ + outputFields?: components["parameters"]["outputFields"]; + /** @description A comma-separated list of fields which should be omitted from the items. */ + omit?: components["parameters"]["omit"]; + /** + * @description A comma-separated list of fields which should be unwound, in order which they should be processed. Each field should be either an array or an object. + * If the field is an array then every element of the array will become a separate record and merged with parent object. + * If the unwound field is an object then it is merged with the parent object. + * If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object then the item gets preserved as it is. + * Note that the unwound items ignore the `desc` parameter. + */ + unwind?: components["parameters"]["unwind"]; + /** + * @description A comma-separated list of fields which should transform nested objects into flat structures. + * + * For example, with `flatten="foo"` the object `{"foo":{"bar": "hello"}}` is turned into `{"foo.bar": "hello"}`. + * + * The original object with properties is replaced with the flattened object. + */ + flatten?: components["parameters"]["flatten"]; + /** + * @description By default, results are returned in the same order as they were stored. + * To reverse the order, set this parameter to `true` or `1`. + */ + desc?: components["parameters"]["descDataset"]; + /** + * @description If `true` or `1` then the response will define the `Content-Disposition: + * attachment` header, forcing a web browser to download the file rather + * than to display it. By default this header is not present. + */ + attachment?: components["parameters"]["attachment"]; + /** + * @description A delimiter character for CSV files, only used if `format=csv`. You + * might need to URL-encode the character (e.g. use `%09` for tab or `%3B` + * for semicolon). The default delimiter is a simple comma (`,`). + */ + delimiter?: components["parameters"]["delimiter"]; + /** + * @description All text responses are encoded in UTF-8 encoding. By default, the + * `format=csv` files are prefixed with the UTF-8 Byte Order Mark (BOM), while `json`, `jsonl`, `xml`, `html` and `rss` files are not. + * + * If you want to override this default behavior, specify `bom=1` query parameter to include the BOM or `bom=0` to skip it. + */ + bom?: components["parameters"]["bom"]; + /** @description Overrides default root element name of `xml` output. By default the root element is `items`. */ + xmlRoot?: components["parameters"]["xmlRoot"]; + /** @description Overrides default element name that wraps each page or page function result object in `xml` output. By default the element name is `item`. */ + xmlRow?: components["parameters"]["xmlRow"]; + /** @description If `true` or `1` then header row in the `csv` format is skipped. */ + skipHeaderRow?: components["parameters"]["skipHeaderRow"]; + /** @description If `true` or `1` then hidden fields are skipped from the output, i.e. fields starting with the `#` character. */ + skipHidden?: components["parameters"]["skipHidden"]; + /** + * @description If `true` or `1` then empty items are skipped from the output. + * + * Note that if used, the results might contain less items than the limit value. + */ + skipEmpty?: components["parameters"]["skipEmpty"]; + /** + * @description If `true` or `1` then, the endpoint applies the `fields=url,pageFunctionResult,errorInfo` + * and `unwind=pageFunctionResult` query parameters. This feature is used to emulate simplified results provided by the + * legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + simplified?: components["parameters"]["simplified"]; + /** + * @description Defines the view configuration for dataset items based on the schema definition. + * This parameter determines how the data will be filtered and presented. + * For complete specification details, see the [dataset schema documentation](https://docs.apify.com/storage/dataset-schema). + */ + view?: components["parameters"]["view"]; + /** + * @description If `true` or `1` then, the all the items with errorInfo property will be skipped from the output. + * + * This feature is here to emulate functionality of API version 1 used for the legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + skipFailedPages?: components["parameters"]["skipFailedPages"]; + /** + * @description Overrides the auto-generated RSS channel `<title>` element. + * Only used when `format=rss`. If not provided, the title defaults to `Dataset <label>`. + */ + feedTitle?: components["parameters"]["feedTitle"]; + /** + * @description Overrides the auto-generated RSS channel `<description>` element. + * Only used when `format=rss`. If not provided, the description defaults to `Items in dataset with id "<datasetId>".` + */ + feedDescription?: components["parameters"]["feedDescription"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + /** @description The offset of the first item in the current page. */ + "X-Apify-Pagination-Offset"?: { + /** @example 0 */ + "text/plain": string; + }; + /** @description The maximum number of items returned per page. */ + "X-Apify-Pagination-Limit"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The number of items returned in the current page. */ + "X-Apify-Pagination-Count"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The total number of items in the dataset. */ + "X-Apify-Pagination-Total"?: { + /** @example 10204 */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>[]; + /** @example {"foo":"bar"}\n{"foo2":"bar2"}\n */ + "application/jsonl": string; + /** @example foo,bar\nfoo2,bar2\n */ + "text/csv": string; + /** @example <table><tr><th>foo</th><th>bar</th></tr><tr><td>foo</td><td>bar</td></tr><tr><td>foo2</td><td>bar2</td></tr></table> */ + "text/html": string; + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": string; + /** @example <rss><channel><item><foo>bar</foo></item><item><foo2>bar2</foo2></item></channel></rss> */ + "application/rss+xml": string; + /** @example <items><item><foo>bar</foo></item><item><foo2>bar2</foo2></item></items> */ + "application/xml": string; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_dataset_items_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: { + /** @description Compression encoding of the request body. */ + "Content-Encoding"?: components["parameters"]["Content-Encoding"]; + }; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PutItemsRequest"] | components["schemas"]["PutItemsRequest"][]; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/datasets/WkzbQMuFYuamGv3YF/items */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PutItemResponseError"] | components["schemas"]["ErrorResponse"]; + }; + }; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_dataset_statistics_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetStatisticsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_keyValueStore_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KeyValueStoreResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_keyValueStore_put: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "name": "new-store-name" + * } + */ + "application/json": components["schemas"]["UpdateStoreRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KeyValueStoreResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_keyValueStore_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_keyValueStore_keys_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description All keys up to this one (including) are skipped from the result. */ + exclusiveStartKey?: components["parameters"]["exclusiveStartKey"]; + /** @description Number of keys to be returned. */ + limit?: components["parameters"]["keyValueStoreParameters_limit"]; + /** @description Limit the results to keys that belong to a specific collection from the key-value store schema. The key-value store need to have a schema defined for this parameter to work. */ + collection?: components["parameters"]["collectionKeys"]; + /** @description Limit the results to keys that start with a specific prefix. */ + prefix?: components["parameters"]["prefixKeys"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfKeysResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_keyValueStore_records_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description If specified, only records belonging to a specific collection from the key-value store schema. The key-value store need to have a schema defined for this parameter to work. */ + collection?: components["parameters"]["collectionRecords"]; + /** @description If specified, only records whose key starts with the given prefix are included in the archive. */ + prefix?: components["parameters"]["prefixRecords"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description A ZIP archive containing the requested records. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/zip": string; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_keyValueStore_record_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + /** + * @description If `true` or `1`, the response will be served with `Content-Disposition: attachment` header, + * causing web browsers to offer downloading HTML records instead of displaying them. + */ + attachment?: components["parameters"]["keyValueStoreParameters_attachment"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RecordResponse"]; + "*/*": unknown; + }; + }; + 302: { + headers: { + Location?: { + /** @example https://apifier-key-value-store-prod.s3.amazonaws.com/tqx6jeMia43gYY6eE/INPUT?AWSAccessKeyId=NKDOUN&Expires=1502720992&Signature=DKLVPI4lDDKC */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content?: never; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_keyValueStore_record_put: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: { + /** @description Compression encoding of the request body. */ + "Content-Encoding"?: components["parameters"]["Content-Encoding"]; + }; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PutRecordRequest"]; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/records/some-key */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_keyValueStore_record_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: { + /** @description Compression encoding of the request body. */ + "Content-Encoding"?: components["parameters"]["Content-Encoding"]; + }; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PutRecordRequest"]; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/records/some-key */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_keyValueStore_record_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestQueueResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_put: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "name": "new-request-queue-name" + * } + */ + "application/json": components["schemas"]["UpdateRequestQueueRequest"] & unknown; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestQueueResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_requests_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @deprecated + * @description All requests up to this one (including) are skipped from the result. (Deprecated, use `cursor` instead.) + */ + exclusiveStartId?: components["parameters"]["exclusiveStartId"]; + /** @description Number of keys to be returned. Maximum value is `10000`. */ + limit?: components["parameters"]["listLimit"]; + /** @description A cursor string for pagination, returned in the previous response as `nextCursor`. Use this to retrieve the next page of requests. */ + cursor?: components["parameters"]["cursor"]; + /** @description Filter requests by their state. Possible values are `locked` and `pending`. You can combine multiple values separated by commas, which will mean the union of these filters – requests matching any of the specified states will be returned. (Not compatible with deprecated `exclusiveStartId` parameter.) */ + filter?: components["parameters"]["filter"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfRequestsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_requests_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end. Default value is `false` (end of queue). + */ + forefront?: components["parameters"]["forefront"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestBase"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AddRequestResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_requests_batch_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end. Default value is `false` (end of queue). + */ + forefront?: components["parameters"]["forefront"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestBase"][]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchAddResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_requests_batch_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header: { + "Content-Type": components["parameters"]["contentTypeJson"]; + }; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestDraftDelete"][]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchDeleteResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_requests_unlock_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Number of requests that were unlocked */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UnlockRequestsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_request_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_request_put: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end. Default value is `false` (end of queue). + */ + forefront?: components["parameters"]["forefront"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestBase"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UpdateRequestResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_request_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_request_lock_put: { + parameters: { + query: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description How long the requests will be locked for (in seconds). */ + lockSecs: components["parameters"]["lockSecs"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end after lock expires. + */ + forefront?: components["parameters"]["lockForefront"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProlongRequestLockResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_request_lock_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end after lock was removed. + */ + forefront?: components["parameters"]["deleteForefront"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_head_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description How many items from queue should be returned. */ + limit?: components["parameters"]["headLimit"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeadResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_requestQueue_head_lock_post: { + parameters: { + query: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description How long the requests will be locked for (in seconds). */ + lockSecs: components["parameters"]["lockSecs"]; + /** @description How many items from the queue should be returned. */ + limit?: components["parameters"]["headLockLimit"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeadAndLockResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_log_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description If `true` or `1` then the logs will be streamed as long as the run or build is running. */ + stream?: components["parameters"]["stream"]; + /** @description If `true` or `1` then the web browser will download the log file rather than open it in a tab. */ + download?: components["parameters"]["download"]; + /** + * @description If `true` or `1`, the logs will be kept verbatim. By default, the API removes + * ANSI escape codes from the logs, keeping only printable characters. + */ + raw?: components["parameters"]["raw"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "text/plain": string; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_abort_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description If true passed, the Actor run will abort gracefully. + * It will send `aborting` and `persistState` event into run and force-stop the run after 30 seconds. + * It is helpful in cases where you plan to resurrect the run later. + */ + gracefully?: components["parameters"]["gracefully"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "id": "HG7ML7M8z78YcAPEB", + * "actId": "janedoe~my-actor", + * "userId": "BPWZBd7Z9c746JAng", + * "actorTaskId": "rANaydYhUxjsnA3oz", + * "startedAt": "2019-11-30T07:34:24.202Z", + * "finishedAt": "2019-12-12T09:30:12.202Z", + * "status": "ABORTED", + * "statusMessage": "Actor was aborted", + * "isStatusMessageTerminal": true, + * "meta": { + * "origin": "WEB", + * "clientIp": "172.234.12.34", + * "userAgent": "Mozilla/5.0 (iPad)" + * }, + * "stats": { + * "inputBodyLen": 240, + * "migrationCount": 0, + * "restartCount": 0, + * "resurrectCount": 1, + * "memAvgBytes": 35914228.4, + * "memMaxBytes": 38244352, + * "memCurrentBytes": 0, + * "cpuAvgUsage": 0.00955965, + * "cpuMaxUsage": 3.1546, + * "cpuCurrentUsage": 0, + * "netRxBytes": 2652, + * "netTxBytes": 1338, + * "durationMillis": 26239, + * "runTimeSecs": 26.239, + * "metamorph": 0, + * "computeUnits": 0.0072886 + * }, + * "options": { + * "build": "latest", + * "timeoutSecs": 300, + * "memoryMbytes": 1024, + * "diskMbytes": 2048 + * }, + * "buildId": "7sT5jcggjjA9fNcxF", + * "exitCode": 0, + * "generalAccess": "RESTRICTED", + * "defaultKeyValueStoreId": "eJNzqsbPiopwJcgGQ", + * "defaultDatasetId": "wmKPijuyDnPZAPRMk", + * "defaultRequestQueueId": "FL35cSF7jrxr3BY39", + * "storageIds": { + * "datasets": { + * "default": "wmKPijuyDnPZAPRMk" + * }, + * "keyValueStores": { + * "default": "eJNzqsbPiopwJcgGQ" + * }, + * "requestQueues": { + * "default": "FL35cSF7jrxr3BY39" + * } + * }, + * "isContainerServerReady": false, + * "gitBranchName": "master", + * "usage": { + * "ACTOR_COMPUTE_UNITS": 3, + * "DATASET_READS": 4, + * "DATASET_WRITES": 4, + * "KEY_VALUE_STORE_READS": 5, + * "KEY_VALUE_STORE_WRITES": 3, + * "KEY_VALUE_STORE_LISTS": 5, + * "REQUEST_QUEUE_READS": 2, + * "REQUEST_QUEUE_WRITES": 1, + * "DATA_TRANSFER_INTERNAL_GBYTES": 1, + * "DATA_TRANSFER_EXTERNAL_GBYTES": 3, + * "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 34, + * "PROXY_SERPS": 3 + * }, + * "usageTotalUsd": 0.2654, + * "usageUsd": { + * "ACTOR_COMPUTE_UNITS": 0.072, + * "DATASET_READS": 0.0004, + * "DATASET_WRITES": 0.0002, + * "KEY_VALUE_STORE_READS": 0.0006, + * "KEY_VALUE_STORE_WRITES": 0.002, + * "KEY_VALUE_STORE_LISTS": 0.004, + * "REQUEST_QUEUE_READS": 0.005, + * "REQUEST_QUEUE_WRITES": 0.02, + * "DATA_TRANSFER_INTERNAL_GBYTES": 0.0004, + * "DATA_TRANSFER_EXTERNAL_GBYTES": 0.0002, + * "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0.16, + * "PROXY_SERPS": 0.0006 + * } + * } + * } + */ + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_metamorph_post: { + parameters: { + query: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description ID of a target Actor that the run should be transformed into. */ + targetActorId: components["parameters"]["targetActorId"]; + /** + * @description Optional build of the target Actor. + * + * It can be either a build tag or build number. By default, the run uses + * the build specified in the default run configuration for the target + * Actor (typically `latest`). + */ + build?: string; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actor_runs_last_reboot_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actors_run_get: { + parameters: { + query?: { + /** + * @description The maximum number of seconds the server waits for the run to finish. By + * default it is `0`, the maximum value is `60`. <!-- MAX_ACTOR_JOB_ASYNC_WAIT_SECS --> + * If the run finishes in time then the returned run object will have a terminal status (e.g. `SUCCEEDED`), + * otherwise it will have a transitional status (e.g. `RUNNING`). + */ + waitForFinish?: components["parameters"]["waitForFinishRun"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actors_run_abort_post: { + parameters: { + query?: { + /** + * @description If true passed, the Actor run will abort gracefully. + * It will send `aborting` and `persistState` event into run and force-stop the run after 30 seconds. + * It is helpful in cases where you plan to resurrect the run later. + */ + gracefully?: components["parameters"]["gracefully"]; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "id": "HG7ML7M8z78YcAPEB", + * "actId": "janedoe~my-actor", + * "userId": "BPWZBd7Z9c746JAng", + * "actorTaskId": "rANaydYhUxjsnA3oz", + * "startedAt": "2019-11-30T07:34:24.202Z", + * "finishedAt": "2019-12-12T09:30:12.202Z", + * "status": "ABORTED", + * "statusMessage": "Actor was aborted", + * "isStatusMessageTerminal": true, + * "meta": { + * "origin": "WEB", + * "clientIp": "172.234.12.34", + * "userAgent": "Mozilla/5.0 (iPad)" + * }, + * "stats": { + * "inputBodyLen": 240, + * "migrationCount": 0, + * "restartCount": 0, + * "resurrectCount": 1, + * "memAvgBytes": 35914228.4, + * "memMaxBytes": 38244352, + * "memCurrentBytes": 0, + * "cpuAvgUsage": 0.00955965, + * "cpuMaxUsage": 3.1546, + * "cpuCurrentUsage": 0, + * "netRxBytes": 2652, + * "netTxBytes": 1338, + * "durationMillis": 26239, + * "runTimeSecs": 26.239, + * "metamorph": 0, + * "computeUnits": 0.0072886 + * }, + * "options": { + * "build": "latest", + * "timeoutSecs": 300, + * "memoryMbytes": 1024, + * "diskMbytes": 2048 + * }, + * "buildId": "7sT5jcggjjA9fNcxF", + * "exitCode": 0, + * "generalAccess": "RESTRICTED", + * "defaultKeyValueStoreId": "eJNzqsbPiopwJcgGQ", + * "defaultDatasetId": "wmKPijuyDnPZAPRMk", + * "defaultRequestQueueId": "FL35cSF7jrxr3BY39", + * "storageIds": { + * "datasets": { + * "default": "wmKPijuyDnPZAPRMk" + * }, + * "keyValueStores": { + * "default": "eJNzqsbPiopwJcgGQ" + * }, + * "requestQueues": { + * "default": "FL35cSF7jrxr3BY39" + * } + * }, + * "isContainerServerReady": false, + * "gitBranchName": "master", + * "usage": { + * "ACTOR_COMPUTE_UNITS": 3, + * "DATASET_READS": 4, + * "DATASET_WRITES": 4, + * "KEY_VALUE_STORE_READS": 5, + * "KEY_VALUE_STORE_WRITES": 3, + * "KEY_VALUE_STORE_LISTS": 5, + * "REQUEST_QUEUE_READS": 2, + * "REQUEST_QUEUE_WRITES": 1, + * "DATA_TRANSFER_INTERNAL_GBYTES": 1, + * "DATA_TRANSFER_EXTERNAL_GBYTES": 3, + * "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 34, + * "PROXY_SERPS": 3 + * }, + * "usageTotalUsd": 0.2654, + * "usageUsd": { + * "ACTOR_COMPUTE_UNITS": 0.072, + * "DATASET_READS": 0.0004, + * "DATASET_WRITES": 0.0002, + * "KEY_VALUE_STORE_READS": 0.0006, + * "KEY_VALUE_STORE_WRITES": 0.002, + * "KEY_VALUE_STORE_LISTS": 0.004, + * "REQUEST_QUEUE_READS": 0.005, + * "REQUEST_QUEUE_WRITES": 0.02, + * "DATA_TRANSFER_INTERNAL_GBYTES": 0.0004, + * "DATA_TRANSFER_EXTERNAL_GBYTES": 0.0002, + * "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0.16, + * "PROXY_SERPS": 0.0006 + * } + * } + * } + */ + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actors_run_metamorph_post: { + parameters: { + query: { + /** @description ID of a target Actor that the run should be transformed into. */ + targetActorId: components["parameters"]["targetActorId"]; + /** + * @description Optional build of the target Actor. + * + * It can be either a build tag or build number. By default, the run uses + * the build specified in the default run configuration for the target + * Actor (typically `latest`). + */ + build?: string; + }; + header?: never; + path: { + /** @description Actor ID or the username of the Actor owner and the Actor name, separated by a tilde (`~`). */ + actorId: components["parameters"]["actorId"]; + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTasks_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `createdAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descCreatedAt"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "total": 2, + * "offset": 0, + * "limit": 1000, + * "desc": false, + * "count": 2, + * "items": [ + * { + * "id": "zdc3Pyhyz3m8vjDeM", + * "userId": "wRsJZtadYvn4mBZmm", + * "actId": "asADASadYvn4mBZmm", + * "actName": "my-actor", + * "name": "my-task", + * "username": "janedoe", + * "actUsername": "janedoe", + * "createdAt": "2018-10-26T07:23:14.855Z", + * "modifiedAt": "2018-10-26T13:30:49.578Z", + * "stats": { + * "totalRuns": 15 + * } + * }, + * { + * "id": "aWE3asdas3m8vjDeM", + * "userId": "wRsJZtadYvn4mBZmm", + * "actId": "asADASadYvn4mBZmm", + * "actName": "my-actor", + * "actUsername": "janedoe", + * "name": "my-task-2", + * "username": "janedoe", + * "createdAt": "2018-10-26T07:23:14.855Z", + * "modifiedAt": "2018-10-26T13:30:49.578Z", + * "stats": { + * "totalRuns": 4 + * } + * } + * ] + * } + * } + */ + "application/json": components["schemas"]["ListOfTasksResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTasks_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "actId": "asADASadYvn4mBZmm", + * "name": "my-task", + * "options": { + * "build": "latest", + * "timeoutSecs": 300, + * "memoryMbytes": 128 + * } + * } + */ + "application/json": components["schemas"]["CreateTaskRequest"] & unknown; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/actor-tasks/zdc3Pyhyz3m8vjDeM */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 409: components["responses"]["Conflict"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + data: components["schemas"]["Task"]; + }; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "name": "my-task", + * "options": { + * "build": "latest", + * "timeoutSecs": 300, + * "memoryMbytes": 128 + * }, + * "input": { + * "hello": "world" + * } + * } + */ + "application/json": components["schemas"]["UpdateTaskRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + data: components["schemas"]["Task"]; + }; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 409: components["responses"]["Conflict"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: { + headers: { + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_input_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "myField1": "some-value", + * "myField2": "another-value", + * "myField3": 1 + * } + */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_input_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "myField2": "updated-value" + * } + */ + "application/json": Record<string, unknown>; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "myField1": "some-value", + * "myField2": "updated-value", + * "myField3": 1 + * } + */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_webhooks_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `createdAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descCreatedAt"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "total": 2, + * "offset": 0, + * "limit": 1000, + * "desc": false, + * "count": 2, + * "items": [ + * { + * "id": "YiKoxjkaS9gjGTqhF", + * "createdAt": "2019-12-12T07:34:14.202Z", + * "modifiedAt": "2019-12-13T08:36:13.202Z", + * "userId": "wRsJZtadYvn4mBZmm", + * "isAdHoc": false, + * "shouldInterpolateStrings": false, + * "eventTypes": [ + * "ACTOR.RUN.SUCCEEDED" + * ], + * "condition": { + * "actorId": "hksJZtadYvn4mBuin", + * "actorTaskId": "asdLZtadYvn4mBZmm", + * "actorRunId": "hgdKZtadYvn4mBpoi" + * }, + * "ignoreSslErrors": false, + * "doNotRetry": false, + * "requestUrl": "http://example.com/", + * "payloadTemplate": "{\\n \\\"userId\\\": {{userId}}...", + * "headersTemplate": "{\\n \\\"Authorization\\\": Bearer...", + * "description": "this is webhook description", + * "lastDispatch": { + * "status": "SUCCEEDED", + * "finishedAt": "2019-12-13T08:36:13.202Z" + * }, + * "stats": { + * "totalDispatches": 1 + * } + * }, + * { + * "id": "YiKoxjkaS9gjGTqhF", + * "createdAt": "2019-12-12T07:34:14.202Z", + * "modifiedAt": "2019-12-13T08:36:13.202Z", + * "userId": "wRsJZtadYvn4mBZmm", + * "isAdHoc": false, + * "shouldInterpolateStrings": false, + * "eventTypes": [ + * "ACTOR.RUN.SUCCEEDED" + * ], + * "condition": { + * "actorId": "hksJZtadYvn4mBuin", + * "actorTaskId": "asdLZtadYvn4mBZmm", + * "actorRunId": "hgdKZtadYvn4mBpoi" + * }, + * "ignoreSslErrors": false, + * "doNotRetry": false, + * "requestUrl": "http://example.com/", + * "payloadTemplate": "{\\n \\\"userId\\\": {{userId}}...", + * "headersTemplate": "{\\n \\\"Authorization\\\": Bearer...", + * "description": "this is webhook description", + * "lastDispatch": { + * "status": "SUCCEEDED", + * "finishedAt": "2019-12-13T08:36:13.202Z" + * }, + * "stats": { + * "totalDispatches": 1 + * } + * } + * ] + * } + * } + */ + "application/json": { + data: components["schemas"]["PaginationResponse"] & { + items: components["schemas"]["Webhook"][]; + }; + }; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `startedAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descStartedAt"]; + /** + * @description Single status or comma-separated list of statuses, see ([available + * statuses](https://docs.apify.com/platform/actors/running/runs-and-builds#lifecycle)). Used to filter runs by the specified statuses only. + */ + status?: components["parameters"]["status"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + data: components["schemas"]["PaginationResponse"] & { + items: components["schemas"]["RunShort"][]; + }; + }; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_post: { + parameters: { + query?: { + /** @description Optional timeout for the run, in seconds. By default, the run uses the timeout from its configuration. */ + timeout?: components["parameters"]["timeout"]; + /** + * @description Memory limit for the run, in megabytes. You can set the amount of memory to a power of 2 with a minimum of 128. + * By default, the run uses the memory limit from its configuration. Don't change this value unless the Actor's + * documentation recommends it or you're aware of the consequences. + */ + memory?: components["parameters"]["memory"]; + /** + * @description Specifies the maximum number of dataset items that will be charged for pay-per-result Actors. + * This does NOT guarantee that the Actor will return only this many items. + * It only ensures you won't be charged for more than this number of items. + * Only works for pay-per-result Actors. + * Value can be accessed in the actor run using `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable. + */ + maxItems?: components["parameters"]["maxItems"]; + /** + * @description Specifies the maximum total cost of the run. + * Use it to cap the total amount charged for all pricing models. + * You can access the maximum cost in your Actor + * by using the `ACTOR_MAX_TOTAL_CHARGE_USD` environment variable. + */ + maxTotalChargeUsd?: components["parameters"]["maxTotalChargeUsd"]; + /** @description Determines whether the run will be restarted if it fails. */ + restartOnError?: components["parameters"]["restartOnError"]; + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run uses the build from its configuration (typically `latest`). + */ + build?: components["parameters"]["build"]; + /** + * @description The maximum number of seconds the server waits for the run to finish. By + * default it is `0`, the maximum value is `60`. <!-- MAX_ACTOR_JOB_ASYNC_WAIT_SECS --> + * If the run finishes in time then the returned run object will have a terminal status (e.g. `SUCCEEDED`), + * otherwise it will have a transitional status (e.g. `RUNNING`). + */ + waitForFinish?: components["parameters"]["waitForFinishRun"]; + /** + * @description Specifies optional webhooks associated with the Actor run, which can be used to receive a notification + * e.g. when the Actor finished or failed. The value is a Base64-encoded JSON array whose items follow + * the WebhookRepresentation schema. For more information, see + * [Webhooks documentation](https://docs.apify.com/platform/integrations/webhooks). + */ + webhooks?: components["parameters"]["webhooks"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "foo": "bar" + * } + */ + "application/json": Record<string, unknown>; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/actor-tasks/zdc3Pyhyz3m8vjDeM/runs/HG7ML7M8z78YcAPEB */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": { + data: components["schemas"]["Run"]; + }; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runSync_get: { + parameters: { + query?: { + /** @description Optional timeout for the run, in seconds. By default, the run uses the timeout from its configuration. */ + timeout?: components["parameters"]["timeout"]; + /** + * @description Memory limit for the run, in megabytes. You can set the amount of memory to a power of 2 with a minimum of 128. + * By default, the run uses the memory limit from its configuration. Don't change this value unless the Actor's + * documentation recommends it or you're aware of the consequences. + */ + memory?: components["parameters"]["memory"]; + /** + * @description Specifies the maximum number of dataset items that will be charged for pay-per-result Actors. + * This does NOT guarantee that the Actor will return only this many items. + * It only ensures you won't be charged for more than this number of items. + * Only works for pay-per-result Actors. + * Value can be accessed in the actor run using `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable. + */ + maxItems?: components["parameters"]["maxItems"]; + /** + * @description Specifies the maximum total cost of the run. + * Use it to cap the total amount charged for all pricing models. + * You can access the maximum cost in your Actor + * by using the `ACTOR_MAX_TOTAL_CHARGE_USD` environment variable. + */ + maxTotalChargeUsd?: components["parameters"]["maxTotalChargeUsd"]; + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run uses the build from its configuration (typically `latest`). + */ + build?: components["parameters"]["build"]; + /** + * @description Key of the record from the run's default key-value store to return in the + * response. Defaults to `OUTPUT`. Actors aren't required to store a record + * under this key, so if it doesn't exist the response contains no data. + */ + outputRecordKey?: components["parameters"]["outputRecordKey"]; + /** + * @description Specifies optional webhooks associated with the Actor run, which can be used to receive a notification + * e.g. when the Actor finished or failed. The value is a Base64-encoded JSON array whose items follow + * the WebhookRepresentation schema. For more information, see + * [Webhooks documentation](https://docs.apify.com/platform/integrations/webhooks). + */ + webhooks?: components["parameters"]["webhooks"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "bar": "foo" + * } + */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 408: components["responses"]["Timeout"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runSync_post: { + parameters: { + query?: { + /** @description Optional timeout for the run, in seconds. By default, the run uses the timeout from its configuration. */ + timeout?: components["parameters"]["timeout"]; + /** + * @description Memory limit for the run, in megabytes. You can set the amount of memory to a power of 2 with a minimum of 128. + * By default, the run uses the memory limit from its configuration. Don't change this value unless the Actor's + * documentation recommends it or you're aware of the consequences. + */ + memory?: components["parameters"]["memory"]; + /** + * @description Specifies the maximum number of dataset items that will be charged for pay-per-result Actors. + * This does NOT guarantee that the Actor will return only this many items. + * It only ensures you won't be charged for more than this number of items. + * Only works for pay-per-result Actors. + * Value can be accessed in the actor run using `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable. + */ + maxItems?: components["parameters"]["maxItems"]; + /** + * @description Specifies the maximum total cost of the run. + * Use it to cap the total amount charged for all pricing models. + * You can access the maximum cost in your Actor + * by using the `ACTOR_MAX_TOTAL_CHARGE_USD` environment variable. + */ + maxTotalChargeUsd?: components["parameters"]["maxTotalChargeUsd"]; + /** @description Determines whether the run will be restarted if it fails. */ + restartOnError?: components["parameters"]["restartOnError"]; + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run uses the build from its configuration (typically `latest`). + */ + build?: components["parameters"]["build"]; + /** + * @description Key of the record from the run's default key-value store to return in the + * response. Defaults to `OUTPUT`. Actors aren't required to store a record + * under this key, so if it doesn't exist the response contains no data. + */ + outputRecordKey?: components["parameters"]["outputRecordKey"]; + /** + * @description Specifies optional webhooks associated with the Actor run, which can be used to receive a notification + * e.g. when the Actor finished or failed. The value is a Base64-encoded JSON array whose items follow + * the WebhookRepresentation schema. For more information, see + * [Webhooks documentation](https://docs.apify.com/platform/integrations/webhooks). + */ + webhooks?: components["parameters"]["webhooks"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "foo": "bar" + * } + */ + "application/json": Record<string, unknown>; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "bar": "foo" + * } + */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 408: components["responses"]["Timeout"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runSyncGetDatasetItems_get: { + parameters: { + query?: { + /** @description Optional timeout for the run, in seconds. By default, the run uses the timeout from its configuration. */ + timeout?: components["parameters"]["timeout"]; + /** + * @description Memory limit for the run, in megabytes. You can set the amount of memory to a power of 2 with a minimum of 128. + * By default, the run uses the memory limit from its configuration. Don't change this value unless the Actor's + * documentation recommends it or you're aware of the consequences. + */ + memory?: components["parameters"]["memory"]; + /** + * @description Specifies the maximum number of dataset items that will be charged for pay-per-result Actors. + * This does NOT guarantee that the Actor will return only this many items. + * It only ensures you won't be charged for more than this number of items. + * Only works for pay-per-result Actors. + * Value can be accessed in the actor run using `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable. + */ + maxItems?: components["parameters"]["maxItems"]; + /** + * @description Specifies the maximum total cost of the run. + * Use it to cap the total amount charged for all pricing models. + * You can access the maximum cost in your Actor + * by using the `ACTOR_MAX_TOTAL_CHARGE_USD` environment variable. + */ + maxTotalChargeUsd?: components["parameters"]["maxTotalChargeUsd"]; + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run uses the build from its configuration (typically `latest`). + */ + build?: components["parameters"]["build"]; + /** + * @description Specifies optional webhooks associated with the Actor run, which can be used to receive a notification + * e.g. when the Actor finished or failed. The value is a Base64-encoded JSON array whose items follow + * the WebhookRepresentation schema. For more information, see + * [Webhooks documentation](https://docs.apify.com/platform/integrations/webhooks). + */ + webhooks?: components["parameters"]["webhooks"]; + /** @description Format of the results, possible values are: `json`, `jsonl`, `csv`, `html`, `xlsx`, `xml` and `rss`. The default value is `json`. */ + format?: components["parameters"]["format"]; + /** + * @description If `true` or `1` then the API endpoint returns only non-empty items and skips hidden fields (i.e. fields starting with the # character). + * The `clean` parameter is just a shortcut for `skipHidden=true` and `skipEmpty=true` parameters. + * Note that since some objects might be skipped from the output, that the result might contain less items than the `limit` value. + */ + clean?: components["parameters"]["clean"]; + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. By default there is no limit. */ + limit?: components["parameters"]["datasetParameters_limit"]; + /** + * @description A comma-separated list of fields which should be picked from the items, only these fields will remain in the resulting record objects. + * Note that the fields in the outputted items are sorted the same way as they are specified in the `fields` query parameter. + * You can use this feature to effectively fix the output format. + */ + fields?: components["parameters"]["fields"]; + /** + * @description A comma-separated list of output field names that positionally rename the fields specified in the `fields` parameter. + * For example, `?fields=headline,url&outputFields=title,link` renames `headline` to `title` and `url` to `link` in the output. + * The number of names in `outputFields` must match the number of names in `fields`. + * Requires the `fields` parameter to be specified as well. + */ + outputFields?: components["parameters"]["outputFields"]; + /** @description A comma-separated list of fields which should be omitted from the items. */ + omit?: components["parameters"]["omit"]; + /** + * @description A comma-separated list of fields which should be unwound, in order which they should be processed. Each field should be either an array or an object. + * If the field is an array then every element of the array will become a separate record and merged with parent object. + * If the unwound field is an object then it is merged with the parent object. + * If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object then the item gets preserved as it is. + * Note that the unwound items ignore the `desc` parameter. + */ + unwind?: components["parameters"]["unwind"]; + /** + * @description A comma-separated list of fields which should transform nested objects into flat structures. + * + * For example, with `flatten="foo"` the object `{"foo":{"bar": "hello"}}` is turned into `{"foo.bar": "hello"}`. + * + * The original object with properties is replaced with the flattened object. + */ + flatten?: components["parameters"]["flatten"]; + /** + * @description By default, results are returned in the same order as they were stored. + * To reverse the order, set this parameter to `true` or `1`. + */ + desc?: components["parameters"]["descDataset"]; + /** + * @description If `true` or `1` then the response will define the `Content-Disposition: + * attachment` header, forcing a web browser to download the file rather + * than to display it. By default this header is not present. + */ + attachment?: components["parameters"]["attachment"]; + /** + * @description A delimiter character for CSV files, only used if `format=csv`. You + * might need to URL-encode the character (e.g. use `%09` for tab or `%3B` + * for semicolon). The default delimiter is a simple comma (`,`). + */ + delimiter?: components["parameters"]["delimiter"]; + /** + * @description All text responses are encoded in UTF-8 encoding. By default, the + * `format=csv` files are prefixed with the UTF-8 Byte Order Mark (BOM), while `json`, `jsonl`, `xml`, `html` and `rss` files are not. + * + * If you want to override this default behavior, specify `bom=1` query parameter to include the BOM or `bom=0` to skip it. + */ + bom?: components["parameters"]["bom"]; + /** @description Overrides default root element name of `xml` output. By default the root element is `items`. */ + xmlRoot?: components["parameters"]["xmlRoot"]; + /** @description Overrides default element name that wraps each page or page function result object in `xml` output. By default the element name is `item`. */ + xmlRow?: components["parameters"]["xmlRow"]; + /** @description If `true` or `1` then header row in the `csv` format is skipped. */ + skipHeaderRow?: components["parameters"]["skipHeaderRow"]; + /** @description If `true` or `1` then hidden fields are skipped from the output, i.e. fields starting with the `#` character. */ + skipHidden?: components["parameters"]["skipHidden"]; + /** + * @description If `true` or `1` then empty items are skipped from the output. + * + * Note that if used, the results might contain less items than the limit value. + */ + skipEmpty?: components["parameters"]["skipEmpty"]; + /** + * @description If `true` or `1` then, the endpoint applies the `fields=url,pageFunctionResult,errorInfo` + * and `unwind=pageFunctionResult` query parameters. This feature is used to emulate simplified results provided by the + * legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + simplified?: components["parameters"]["simplified"]; + /** + * @description Defines the view configuration for dataset items based on the schema definition. + * This parameter determines how the data will be filtered and presented. + * For complete specification details, see the [dataset schema documentation](https://docs.apify.com/storage/dataset-schema). + */ + view?: components["parameters"]["view"]; + /** + * @description If `true` or `1` then, the all the items with errorInfo property will be skipped from the output. + * + * This feature is here to emulate functionality of API version 1 used for the legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + skipFailedPages?: components["parameters"]["skipFailedPages"]; + /** + * @description Overrides the auto-generated RSS channel `<title>` element. + * Only used when `format=rss`. If not provided, the title defaults to `Dataset <label>`. + */ + feedTitle?: components["parameters"]["feedTitle"]; + /** + * @description Overrides the auto-generated RSS channel `<description>` element. + * Only used when `format=rss`. If not provided, the description defaults to `Items in dataset with id "<datasetId>".` + */ + feedDescription?: components["parameters"]["feedDescription"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + /** @description The offset of the first item in the current page. */ + "X-Apify-Pagination-Offset"?: { + /** @example 0 */ + "text/plain": string; + }; + /** @description The maximum number of items returned per page. */ + "X-Apify-Pagination-Limit"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The number of items returned in the current page. */ + "X-Apify-Pagination-Count"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The total number of items in the dataset. */ + "X-Apify-Pagination-Total"?: { + /** @example 10204 */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 408: components["responses"]["Timeout"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runSyncGetDatasetItems_post: { + parameters: { + query?: { + /** @description Optional timeout for the run, in seconds. By default, the run uses the timeout from its configuration. */ + timeout?: components["parameters"]["timeout"]; + /** + * @description Memory limit for the run, in megabytes. You can set the amount of memory to a power of 2 with a minimum of 128. + * By default, the run uses the memory limit from its configuration. Don't change this value unless the Actor's + * documentation recommends it or you're aware of the consequences. + */ + memory?: components["parameters"]["memory"]; + /** + * @description Specifies the maximum number of dataset items that will be charged for pay-per-result Actors. + * This does NOT guarantee that the Actor will return only this many items. + * It only ensures you won't be charged for more than this number of items. + * Only works for pay-per-result Actors. + * Value can be accessed in the actor run using `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable. + */ + maxItems?: components["parameters"]["maxItems"]; + /** + * @description Specifies the maximum total cost of the run. + * Use it to cap the total amount charged for all pricing models. + * You can access the maximum cost in your Actor + * by using the `ACTOR_MAX_TOTAL_CHARGE_USD` environment variable. + */ + maxTotalChargeUsd?: components["parameters"]["maxTotalChargeUsd"]; + /** @description Determines whether the run will be restarted if it fails. */ + restartOnError?: components["parameters"]["restartOnError"]; + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run uses the build from its configuration (typically `latest`). + */ + build?: components["parameters"]["build"]; + /** + * @description Specifies optional webhooks associated with the Actor run, which can be used to receive a notification + * e.g. when the Actor finished or failed. The value is a Base64-encoded JSON array whose items follow + * the WebhookRepresentation schema. For more information, see + * [Webhooks documentation](https://docs.apify.com/platform/integrations/webhooks). + */ + webhooks?: components["parameters"]["webhooks"]; + /** @description Format of the results, possible values are: `json`, `jsonl`, `csv`, `html`, `xlsx`, `xml` and `rss`. The default value is `json`. */ + format?: components["parameters"]["format"]; + /** + * @description If `true` or `1` then the API endpoint returns only non-empty items and skips hidden fields (i.e. fields starting with the # character). + * The `clean` parameter is just a shortcut for `skipHidden=true` and `skipEmpty=true` parameters. + * Note that since some objects might be skipped from the output, that the result might contain less items than the `limit` value. + */ + clean?: components["parameters"]["clean"]; + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. By default there is no limit. */ + limit?: components["parameters"]["datasetParameters_limit"]; + /** + * @description A comma-separated list of fields which should be picked from the items, only these fields will remain in the resulting record objects. + * Note that the fields in the outputted items are sorted the same way as they are specified in the `fields` query parameter. + * You can use this feature to effectively fix the output format. + */ + fields?: components["parameters"]["fields"]; + /** + * @description A comma-separated list of output field names that positionally rename the fields specified in the `fields` parameter. + * For example, `?fields=headline,url&outputFields=title,link` renames `headline` to `title` and `url` to `link` in the output. + * The number of names in `outputFields` must match the number of names in `fields`. + * Requires the `fields` parameter to be specified as well. + */ + outputFields?: components["parameters"]["outputFields"]; + /** @description A comma-separated list of fields which should be omitted from the items. */ + omit?: components["parameters"]["omit"]; + /** + * @description A comma-separated list of fields which should be unwound, in order which they should be processed. Each field should be either an array or an object. + * If the field is an array then every element of the array will become a separate record and merged with parent object. + * If the unwound field is an object then it is merged with the parent object. + * If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object then the item gets preserved as it is. + * Note that the unwound items ignore the `desc` parameter. + */ + unwind?: components["parameters"]["unwind"]; + /** + * @description A comma-separated list of fields which should transform nested objects into flat structures. + * + * For example, with `flatten="foo"` the object `{"foo":{"bar": "hello"}}` is turned into `{"foo.bar": "hello"}`. + * + * The original object with properties is replaced with the flattened object. + */ + flatten?: components["parameters"]["flatten"]; + /** + * @description By default, results are returned in the same order as they were stored. + * To reverse the order, set this parameter to `true` or `1`. + */ + desc?: components["parameters"]["descDataset"]; + /** + * @description If `true` or `1` then the response will define the `Content-Disposition: + * attachment` header, forcing a web browser to download the file rather + * than to display it. By default this header is not present. + */ + attachment?: components["parameters"]["attachment"]; + /** + * @description A delimiter character for CSV files, only used if `format=csv`. You + * might need to URL-encode the character (e.g. use `%09` for tab or `%3B` + * for semicolon). The default delimiter is a simple comma (`,`). + */ + delimiter?: components["parameters"]["delimiter"]; + /** + * @description All text responses are encoded in UTF-8 encoding. By default, the + * `format=csv` files are prefixed with the UTF-8 Byte Order Mark (BOM), while `json`, `jsonl`, `xml`, `html` and `rss` files are not. + * + * If you want to override this default behavior, specify `bom=1` query parameter to include the BOM or `bom=0` to skip it. + */ + bom?: components["parameters"]["bom"]; + /** @description Overrides default root element name of `xml` output. By default the root element is `items`. */ + xmlRoot?: components["parameters"]["xmlRoot"]; + /** @description Overrides default element name that wraps each page or page function result object in `xml` output. By default the element name is `item`. */ + xmlRow?: components["parameters"]["xmlRow"]; + /** @description If `true` or `1` then header row in the `csv` format is skipped. */ + skipHeaderRow?: components["parameters"]["skipHeaderRow"]; + /** @description If `true` or `1` then hidden fields are skipped from the output, i.e. fields starting with the `#` character. */ + skipHidden?: components["parameters"]["skipHidden"]; + /** + * @description If `true` or `1` then empty items are skipped from the output. + * + * Note that if used, the results might contain less items than the limit value. + */ + skipEmpty?: components["parameters"]["skipEmpty"]; + /** + * @description If `true` or `1` then, the endpoint applies the `fields=url,pageFunctionResult,errorInfo` + * and `unwind=pageFunctionResult` query parameters. This feature is used to emulate simplified results provided by the + * legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + simplified?: components["parameters"]["simplified"]; + /** + * @description Defines the view configuration for dataset items based on the schema definition. + * This parameter determines how the data will be filtered and presented. + * For complete specification details, see the [dataset schema documentation](https://docs.apify.com/storage/dataset-schema). + */ + view?: components["parameters"]["view"]; + /** + * @description If `true` or `1` then, the all the items with errorInfo property will be skipped from the output. + * + * This feature is here to emulate functionality of API version 1 used for the legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + skipFailedPages?: components["parameters"]["skipFailedPages"]; + /** + * @description Overrides the auto-generated RSS channel `<title>` element. + * Only used when `format=rss`. If not provided, the title defaults to `Dataset <label>`. + */ + feedTitle?: components["parameters"]["feedTitle"]; + /** + * @description Overrides the auto-generated RSS channel `<description>` element. + * Only used when `format=rss`. If not provided, the description defaults to `Items in dataset with id "<datasetId>".` + */ + feedDescription?: components["parameters"]["feedDescription"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "foo": "bar" + * } + */ + "application/json": Record<string, unknown>; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + /** @description The offset of the first item in the current page. */ + "X-Apify-Pagination-Offset"?: { + /** @example 0 */ + "text/plain": string; + }; + /** @description The maximum number of items returned per page. */ + "X-Apify-Pagination-Limit"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The number of items returned in the current page. */ + "X-Apify-Pagination-Count"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The total number of items in the dataset. */ + "X-Apify-Pagination-Total"?: { + /** @example 10204 */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 408: components["responses"]["Timeout"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description The maximum number of seconds the server waits for the run to finish. By + * default it is `0`, the maximum value is `60`. <!-- MAX_ACTOR_JOB_ASYNC_WAIT_SECS --> + * If the run finishes in time then the returned run object will have a terminal status (e.g. `SUCCEEDED`), + * otherwise it will have a transitional status (e.g. `RUNNING`). + */ + waitForFinish?: components["parameters"]["waitForFinishRun"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + data: components["schemas"]["Run"]; + }; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_last_log_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description If `true` or `1` then the logs will be streamed as long as the run or build is running. */ + stream?: components["parameters"]["stream"]; + /** @description If `true` or `1` then the web browser will download the log file rather than open it in a tab. */ + download?: components["parameters"]["download"]; + /** + * @description If `true` or `1`, the logs will be kept verbatim. By default, the API removes + * ANSI escape codes from the logs, keeping only printable characters. + */ + raw?: components["parameters"]["raw"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "text/plain": string; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_abort_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description If true passed, the Actor run will abort gracefully. + * It will send `aborting` and `persistState` event into run and force-stop the run after 30 seconds. + * It is helpful in cases where you plan to resurrect the run later. + */ + gracefully?: components["parameters"]["gracefully"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "id": "HG7ML7M8z78YcAPEB", + * "actId": "janedoe~my-actor", + * "userId": "BPWZBd7Z9c746JAng", + * "actorTaskId": "rANaydYhUxjsnA3oz", + * "startedAt": "2019-11-30T07:34:24.202Z", + * "finishedAt": "2019-12-12T09:30:12.202Z", + * "status": "ABORTED", + * "statusMessage": "Actor was aborted", + * "isStatusMessageTerminal": true, + * "meta": { + * "origin": "WEB", + * "clientIp": "172.234.12.34", + * "userAgent": "Mozilla/5.0 (iPad)" + * }, + * "stats": { + * "inputBodyLen": 240, + * "migrationCount": 0, + * "restartCount": 0, + * "resurrectCount": 1, + * "memAvgBytes": 35914228.4, + * "memMaxBytes": 38244352, + * "memCurrentBytes": 0, + * "cpuAvgUsage": 0.00955965, + * "cpuMaxUsage": 3.1546, + * "cpuCurrentUsage": 0, + * "netRxBytes": 2652, + * "netTxBytes": 1338, + * "durationMillis": 26239, + * "runTimeSecs": 26.239, + * "metamorph": 0, + * "computeUnits": 0.0072886 + * }, + * "options": { + * "build": "latest", + * "timeoutSecs": 300, + * "memoryMbytes": 1024, + * "diskMbytes": 2048 + * }, + * "buildId": "7sT5jcggjjA9fNcxF", + * "exitCode": 0, + * "generalAccess": "RESTRICTED", + * "defaultKeyValueStoreId": "eJNzqsbPiopwJcgGQ", + * "defaultDatasetId": "wmKPijuyDnPZAPRMk", + * "defaultRequestQueueId": "FL35cSF7jrxr3BY39", + * "storageIds": { + * "datasets": { + * "default": "wmKPijuyDnPZAPRMk" + * }, + * "keyValueStores": { + * "default": "eJNzqsbPiopwJcgGQ" + * }, + * "requestQueues": { + * "default": "FL35cSF7jrxr3BY39" + * } + * }, + * "isContainerServerReady": false, + * "gitBranchName": "master", + * "usage": { + * "ACTOR_COMPUTE_UNITS": 3, + * "DATASET_READS": 4, + * "DATASET_WRITES": 4, + * "KEY_VALUE_STORE_READS": 5, + * "KEY_VALUE_STORE_WRITES": 3, + * "KEY_VALUE_STORE_LISTS": 5, + * "REQUEST_QUEUE_READS": 2, + * "REQUEST_QUEUE_WRITES": 1, + * "DATA_TRANSFER_INTERNAL_GBYTES": 1, + * "DATA_TRANSFER_EXTERNAL_GBYTES": 3, + * "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 34, + * "PROXY_SERPS": 3 + * }, + * "usageTotalUsd": 0.2654, + * "usageUsd": { + * "ACTOR_COMPUTE_UNITS": 0.072, + * "DATASET_READS": 0.0004, + * "DATASET_WRITES": 0.0002, + * "KEY_VALUE_STORE_READS": 0.0006, + * "KEY_VALUE_STORE_WRITES": 0.002, + * "KEY_VALUE_STORE_LISTS": 0.004, + * "REQUEST_QUEUE_READS": 0.005, + * "REQUEST_QUEUE_WRITES": 0.02, + * "DATA_TRANSFER_INTERNAL_GBYTES": 0.0004, + * "DATA_TRANSFER_EXTERNAL_GBYTES": 0.0002, + * "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0.16, + * "PROXY_SERPS": 0.0006 + * } + * } + * } + */ + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_metamorph_post: { + parameters: { + query: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description ID of a target Actor that the run should be transformed into. */ + targetActorId: components["parameters"]["targetActorId"]; + /** + * @description Optional build of the target Actor. + * + * It can be either a build tag or build number. By default, the run uses + * the build specified in the default run configuration for the target + * Actor (typically `latest`). + */ + build?: string; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_reboot_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_dataset_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_dataset_put: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UpdateDatasetRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_dataset_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_dataset_items_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description Format of the results, possible values are: `json`, `jsonl`, `csv`, `html`, `xlsx`, `xml` and `rss`. The default value is `json`. */ + format?: components["parameters"]["format"]; + /** + * @description If `true` or `1` then the API endpoint returns only non-empty items and skips hidden fields (i.e. fields starting with the # character). + * The `clean` parameter is just a shortcut for `skipHidden=true` and `skipEmpty=true` parameters. + * Note that since some objects might be skipped from the output, that the result might contain less items than the `limit` value. + */ + clean?: components["parameters"]["clean"]; + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. By default there is no limit. */ + limit?: components["parameters"]["datasetParameters_limit"]; + /** + * @description A comma-separated list of fields which should be picked from the items, only these fields will remain in the resulting record objects. + * Note that the fields in the outputted items are sorted the same way as they are specified in the `fields` query parameter. + * You can use this feature to effectively fix the output format. + */ + fields?: components["parameters"]["fields"]; + /** + * @description A comma-separated list of output field names that positionally rename the fields specified in the `fields` parameter. + * For example, `?fields=headline,url&outputFields=title,link` renames `headline` to `title` and `url` to `link` in the output. + * The number of names in `outputFields` must match the number of names in `fields`. + * Requires the `fields` parameter to be specified as well. + */ + outputFields?: components["parameters"]["outputFields"]; + /** @description A comma-separated list of fields which should be omitted from the items. */ + omit?: components["parameters"]["omit"]; + /** + * @description A comma-separated list of fields which should be unwound, in order which they should be processed. Each field should be either an array or an object. + * If the field is an array then every element of the array will become a separate record and merged with parent object. + * If the unwound field is an object then it is merged with the parent object. + * If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object then the item gets preserved as it is. + * Note that the unwound items ignore the `desc` parameter. + */ + unwind?: components["parameters"]["unwind"]; + /** + * @description A comma-separated list of fields which should transform nested objects into flat structures. + * + * For example, with `flatten="foo"` the object `{"foo":{"bar": "hello"}}` is turned into `{"foo.bar": "hello"}`. + * + * The original object with properties is replaced with the flattened object. + */ + flatten?: components["parameters"]["flatten"]; + /** + * @description By default, results are returned in the same order as they were stored. + * To reverse the order, set this parameter to `true` or `1`. + */ + desc?: components["parameters"]["descDataset"]; + /** + * @description If `true` or `1` then the response will define the `Content-Disposition: + * attachment` header, forcing a web browser to download the file rather + * than to display it. By default this header is not present. + */ + attachment?: components["parameters"]["attachment"]; + /** + * @description A delimiter character for CSV files, only used if `format=csv`. You + * might need to URL-encode the character (e.g. use `%09` for tab or `%3B` + * for semicolon). The default delimiter is a simple comma (`,`). + */ + delimiter?: components["parameters"]["delimiter"]; + /** + * @description All text responses are encoded in UTF-8 encoding. By default, the + * `format=csv` files are prefixed with the UTF-8 Byte Order Mark (BOM), while `json`, `jsonl`, `xml`, `html` and `rss` files are not. + * + * If you want to override this default behavior, specify `bom=1` query parameter to include the BOM or `bom=0` to skip it. + */ + bom?: components["parameters"]["bom"]; + /** @description Overrides default root element name of `xml` output. By default the root element is `items`. */ + xmlRoot?: components["parameters"]["xmlRoot"]; + /** @description Overrides default element name that wraps each page or page function result object in `xml` output. By default the element name is `item`. */ + xmlRow?: components["parameters"]["xmlRow"]; + /** @description If `true` or `1` then header row in the `csv` format is skipped. */ + skipHeaderRow?: components["parameters"]["skipHeaderRow"]; + /** @description If `true` or `1` then hidden fields are skipped from the output, i.e. fields starting with the `#` character. */ + skipHidden?: components["parameters"]["skipHidden"]; + /** + * @description If `true` or `1` then empty items are skipped from the output. + * + * Note that if used, the results might contain less items than the limit value. + */ + skipEmpty?: components["parameters"]["skipEmpty"]; + /** + * @description If `true` or `1` then, the endpoint applies the `fields=url,pageFunctionResult,errorInfo` + * and `unwind=pageFunctionResult` query parameters. This feature is used to emulate simplified results provided by the + * legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + simplified?: components["parameters"]["simplified"]; + /** + * @description Defines the view configuration for dataset items based on the schema definition. + * This parameter determines how the data will be filtered and presented. + * For complete specification details, see the [dataset schema documentation](https://docs.apify.com/storage/dataset-schema). + */ + view?: components["parameters"]["view"]; + /** + * @description If `true` or `1` then, the all the items with errorInfo property will be skipped from the output. + * + * This feature is here to emulate functionality of API version 1 used for the legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + skipFailedPages?: components["parameters"]["skipFailedPages"]; + /** + * @description Overrides the auto-generated RSS channel `<title>` element. + * Only used when `format=rss`. If not provided, the title defaults to `Dataset <label>`. + */ + feedTitle?: components["parameters"]["feedTitle"]; + /** + * @description Overrides the auto-generated RSS channel `<description>` element. + * Only used when `format=rss`. If not provided, the description defaults to `Items in dataset with id "<datasetId>".` + */ + feedDescription?: components["parameters"]["feedDescription"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + /** @description The offset of the first item in the current page. */ + "X-Apify-Pagination-Offset"?: { + /** @example 0 */ + "text/plain": string; + }; + /** @description The maximum number of items returned per page. */ + "X-Apify-Pagination-Limit"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The number of items returned in the current page. */ + "X-Apify-Pagination-Count"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The total number of items in the dataset. */ + "X-Apify-Pagination-Total"?: { + /** @example 10204 */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>[]; + /** @example {"foo":"bar"}\n{"foo2":"bar2"}\n */ + "application/jsonl": string; + /** @example foo,bar\nfoo2,bar2\n */ + "text/csv": string; + /** @example <table><tr><th>foo</th><th>bar</th></tr><tr><td>foo</td><td>bar</td></tr><tr><td>foo2</td><td>bar2</td></tr></table> */ + "text/html": string; + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": string; + /** @example <rss><channel><item><foo>bar</foo></item><item><foo2>bar2</foo2></item></channel></rss> */ + "application/rss+xml": string; + /** @example <items><item><foo>bar</foo></item><item><foo2>bar2</foo2></item></items> */ + "application/xml": string; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_dataset_items_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: { + /** @description Compression encoding of the request body. */ + "Content-Encoding"?: components["parameters"]["Content-Encoding"]; + }; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PutItemsRequest"] | components["schemas"]["PutItemsRequest"][]; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/datasets/WkzbQMuFYuamGv3YF/items */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PutItemResponseError"] | components["schemas"]["ErrorResponse"]; + }; + }; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_dataset_statistics_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetStatisticsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_keyValueStore_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KeyValueStoreResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_keyValueStore_put: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "name": "new-store-name" + * } + */ + "application/json": components["schemas"]["UpdateStoreRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KeyValueStoreResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_keyValueStore_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_keyValueStore_keys_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description All keys up to this one (including) are skipped from the result. */ + exclusiveStartKey?: components["parameters"]["exclusiveStartKey"]; + /** @description Number of keys to be returned. */ + limit?: components["parameters"]["keyValueStoreParameters_limit"]; + /** @description Limit the results to keys that belong to a specific collection from the key-value store schema. The key-value store need to have a schema defined for this parameter to work. */ + collection?: components["parameters"]["collectionKeys"]; + /** @description Limit the results to keys that start with a specific prefix. */ + prefix?: components["parameters"]["prefixKeys"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfKeysResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_keyValueStore_records_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description If specified, only records belonging to a specific collection from the key-value store schema. The key-value store need to have a schema defined for this parameter to work. */ + collection?: components["parameters"]["collectionRecords"]; + /** @description If specified, only records whose key starts with the given prefix are included in the archive. */ + prefix?: components["parameters"]["prefixRecords"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description A ZIP archive containing the requested records. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/zip": string; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_keyValueStore_record_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + /** + * @description If `true` or `1`, the response will be served with `Content-Disposition: attachment` header, + * causing web browsers to offer downloading HTML records instead of displaying them. + */ + attachment?: components["parameters"]["keyValueStoreParameters_attachment"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RecordResponse"]; + "*/*": unknown; + }; + }; + 302: { + headers: { + Location?: { + /** @example https://apifier-key-value-store-prod.s3.amazonaws.com/tqx6jeMia43gYY6eE/INPUT?AWSAccessKeyId=NKDOUN&Expires=1502720992&Signature=DKLVPI4lDDKC */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content?: never; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_keyValueStore_record_put: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: { + /** @description Compression encoding of the request body. */ + "Content-Encoding"?: components["parameters"]["Content-Encoding"]; + }; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PutRecordRequest"]; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/records/some-key */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_keyValueStore_record_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: { + /** @description Compression encoding of the request body. */ + "Content-Encoding"?: components["parameters"]["Content-Encoding"]; + }; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PutRecordRequest"]; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/records/some-key */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_keyValueStore_record_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestQueueResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_put: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "name": "new-request-queue-name" + * } + */ + "application/json": components["schemas"]["UpdateRequestQueueRequest"] & unknown; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestQueueResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_head_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description How many items from queue should be returned. */ + limit?: components["parameters"]["headLimit"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeadResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_head_lock_post: { + parameters: { + query: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description How long the requests will be locked for (in seconds). */ + lockSecs: components["parameters"]["lockSecs"]; + /** @description How many items from the queue should be returned. */ + limit?: components["parameters"]["headLockLimit"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeadAndLockResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_requests_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @deprecated + * @description All requests up to this one (including) are skipped from the result. (Deprecated, use `cursor` instead.) + */ + exclusiveStartId?: components["parameters"]["exclusiveStartId"]; + /** @description Number of keys to be returned. Maximum value is `10000`. */ + limit?: components["parameters"]["listLimit"]; + /** @description A cursor string for pagination, returned in the previous response as `nextCursor`. Use this to retrieve the next page of requests. */ + cursor?: components["parameters"]["cursor"]; + /** @description Filter requests by their state. Possible values are `locked` and `pending`. You can combine multiple values separated by commas, which will mean the union of these filters – requests matching any of the specified states will be returned. (Not compatible with deprecated `exclusiveStartId` parameter.) */ + filter?: components["parameters"]["filter"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfRequestsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_requests_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end. Default value is `false` (end of queue). + */ + forefront?: components["parameters"]["forefront"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestBase"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AddRequestResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_requests_batch_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end. Default value is `false` (end of queue). + */ + forefront?: components["parameters"]["forefront"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestBase"][]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchAddResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_requests_batch_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header: { + "Content-Type": components["parameters"]["contentTypeJson"]; + }; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestDraftDelete"][]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchDeleteResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_requests_unlock_post: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Number of requests that were unlocked */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UnlockRequestsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_request_get: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_request_put: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end. Default value is `false` (end of queue). + */ + forefront?: components["parameters"]["forefront"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestBase"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UpdateRequestResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_request_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_request_lock_put: { + parameters: { + query: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** @description How long the requests will be locked for (in seconds). */ + lockSecs: components["parameters"]["lockSecs"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end after lock expires. + */ + forefront?: components["parameters"]["lockForefront"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProlongRequestLockResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorTask_runs_last_requestQueue_request_lock_delete: { + parameters: { + query?: { + /** @description Filter for the run status. */ + status?: components["parameters"]["lastRunParameters_status"]; + /** @description Filter for the run origin, i.e. the means by which the run was started. */ + origin?: components["parameters"]["origin"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end after lock was removed. + */ + forefront?: components["parameters"]["deleteForefront"]; + }; + header?: never; + path: { + /** @description Task ID or a tilde-separated owner's username and task's name. */ + actorTaskId: components["parameters"]["actorTaskId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRuns_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `startedAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descStartedAt"]; + /** + * @description Single status or comma-separated list of statuses, see ([available + * statuses](https://docs.apify.com/platform/actors/running/runs-and-builds#lifecycle)). Used to filter runs by the specified statuses only. + */ + status?: components["parameters"]["status"]; + /** + * @description Filter runs that started after the specified date and time (inclusive). + * The value must be a valid ISO 8601 datetime string (UTC). + */ + startedAfter?: components["parameters"]["startedAfter"]; + /** + * @description Filter runs that started before the specified date and time (inclusive). + * The value must be a valid ISO 8601 datetime string (UTC). + */ + startedBefore?: components["parameters"]["startedBefore"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfRunsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_get: { + parameters: { + query?: { + /** + * @description The maximum number of seconds the server waits for the run to finish. By + * default it is `0`, the maximum value is `60`. <!-- MAX_ACTOR_JOB_ASYNC_WAIT_SECS --> + * If the run finishes in time then the returned run object will have a terminal status (e.g. `SUCCEEDED`), + * otherwise it will have a transitional status (e.g. `RUNNING`). + */ + waitForFinish?: components["parameters"]["waitForFinishRun"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 408: components["responses"]["Timeout"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "runId": "3KH8gEpp4d8uQSe8T", + * "statusMessage": "Actor has finished", + * "isStatusMessageTerminal": true + * } + */ + "application/json": components["schemas"]["UpdateRunRequest"] & unknown; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_abort_post: { + parameters: { + query?: { + /** + * @description If true passed, the Actor run will abort gracefully. + * It will send `aborting` and `persistState` event into run and force-stop the run after 30 seconds. + * It is helpful in cases where you plan to resurrect the run later. + */ + gracefully?: components["parameters"]["gracefully"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": { + * "id": "HG7ML7M8z78YcAPEB", + * "actId": "janedoe~my-actor", + * "userId": "BPWZBd7Z9c746JAng", + * "actorTaskId": "rANaydYhUxjsnA3oz", + * "startedAt": "2019-11-30T07:34:24.202Z", + * "finishedAt": "2019-12-12T09:30:12.202Z", + * "status": "ABORTED", + * "statusMessage": "Actor was aborted", + * "isStatusMessageTerminal": true, + * "meta": { + * "origin": "WEB", + * "clientIp": "172.234.12.34", + * "userAgent": "Mozilla/5.0 (iPad)" + * }, + * "stats": { + * "inputBodyLen": 240, + * "migrationCount": 0, + * "restartCount": 0, + * "resurrectCount": 1, + * "memAvgBytes": 35914228.4, + * "memMaxBytes": 38244352, + * "memCurrentBytes": 0, + * "cpuAvgUsage": 0.00955965, + * "cpuMaxUsage": 3.1546, + * "cpuCurrentUsage": 0, + * "netRxBytes": 2652, + * "netTxBytes": 1338, + * "durationMillis": 26239, + * "runTimeSecs": 26.239, + * "metamorph": 0, + * "computeUnits": 0.0072886 + * }, + * "options": { + * "build": "latest", + * "timeoutSecs": 300, + * "memoryMbytes": 1024, + * "diskMbytes": 2048 + * }, + * "buildId": "7sT5jcggjjA9fNcxF", + * "exitCode": 0, + * "generalAccess": "RESTRICTED", + * "defaultKeyValueStoreId": "eJNzqsbPiopwJcgGQ", + * "defaultDatasetId": "wmKPijuyDnPZAPRMk", + * "defaultRequestQueueId": "FL35cSF7jrxr3BY39", + * "storageIds": { + * "datasets": { + * "default": "wmKPijuyDnPZAPRMk" + * }, + * "keyValueStores": { + * "default": "eJNzqsbPiopwJcgGQ" + * }, + * "requestQueues": { + * "default": "FL35cSF7jrxr3BY39" + * } + * }, + * "isContainerServerReady": false, + * "gitBranchName": "master", + * "usage": { + * "ACTOR_COMPUTE_UNITS": 3, + * "DATASET_READS": 4, + * "DATASET_WRITES": 4, + * "KEY_VALUE_STORE_READS": 5, + * "KEY_VALUE_STORE_WRITES": 3, + * "KEY_VALUE_STORE_LISTS": 5, + * "REQUEST_QUEUE_READS": 2, + * "REQUEST_QUEUE_WRITES": 1, + * "DATA_TRANSFER_INTERNAL_GBYTES": 1, + * "DATA_TRANSFER_EXTERNAL_GBYTES": 3, + * "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 34, + * "PROXY_SERPS": 3 + * }, + * "usageTotalUsd": 0.2654, + * "usageUsd": { + * "ACTOR_COMPUTE_UNITS": 0.072, + * "DATASET_READS": 0.0004, + * "DATASET_WRITES": 0.0002, + * "KEY_VALUE_STORE_READS": 0.0006, + * "KEY_VALUE_STORE_WRITES": 0.002, + * "KEY_VALUE_STORE_LISTS": 0.004, + * "REQUEST_QUEUE_READS": 0.005, + * "REQUEST_QUEUE_WRITES": 0.02, + * "DATA_TRANSFER_INTERNAL_GBYTES": 0.0004, + * "DATA_TRANSFER_EXTERNAL_GBYTES": 0.0002, + * "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0.16, + * "PROXY_SERPS": 0.0006 + * } + * } + * } + */ + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_metamorph_post: { + parameters: { + query: { + /** @description ID of a target Actor that the run should be transformed into. */ + targetActorId: components["parameters"]["targetActorId"]; + /** + * @description Optional build of the target Actor. + * + * It can be either a build tag or build number. By default, the run uses + * the build specified in the default run configuration for the target + * Actor (typically `latest`). + */ + build?: string; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_reboot_post: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + PostResurrectRun: { + parameters: { + query?: { + /** + * @description Specifies the Actor build to run. It can be either a build tag or build number. + * By default, the run is resurrected with the same build it originally used. Specifically, + * if a run was first started with the `latest` tag, which resolves to version `0.0.3` at the + * time, a run resurrected without this parameter will continue running with `0.0.3`, even if + * `latest` already points to a newer build. + */ + build?: components["parameters"]["buildResurrect"]; + /** + * @description Optional timeout for the run, in seconds. By default, the run uses the timeout + * specified in the run that is being resurrected. + */ + timeout?: components["parameters"]["timeoutResurrect"]; + /** + * @description Memory limit for the run, in megabytes. The amount of memory can be set to a power of 2 + * with a minimum of 128. By default, the run uses the memory limit specified in the run + * that is being resurrected. + */ + memory?: components["parameters"]["memoryResurrect"]; + /** + * @description Specifies the maximum number of dataset items that will be charged for pay-per-result Actors. + * This does NOT guarantee that the Actor will return only this many items. + * It only ensures you won't be charged for more than this number of items. + * Only works for pay-per-result Actors. + * Value can be accessed in the actor run using `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable. + */ + maxItems?: components["parameters"]["maxItems"]; + /** + * @description Specifies the maximum total cost of the run. + * Use it to cap the total amount charged for all pricing models. + * You can access the maximum cost in your Actor + * by using the `ACTOR_MAX_TOTAL_CHARGE_USD` environment variable. + */ + maxTotalChargeUsd?: components["parameters"]["maxTotalChargeUsd"]; + /** + * @description Determines whether the resurrected run will be restarted if it fails. + * By default, the resurrected run uses the same setting as before. + */ + restartOnError?: components["parameters"]["restartOnErrorResurrect"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + PostChargeRun: { + parameters: { + query?: never; + header?: { + /** + * @description Always pass a unique idempotency key (any unique string) for each charge to avoid double charging in case of retries or network errors. + * @example 2024-12-09T01:23:45.000Z-random-uuid + */ + "idempotency-key"?: string; + }; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + /** @description Define which event, and how many times, you want to charge for. */ + requestBody: { + content: { + /** + * @example { + * "eventName": "ANALYZE_PAGE", + * "count": 1 + * } + */ + "application/json": components["schemas"]["ChargeRunRequest"]; + }; + }; + responses: { + /** @description The charge was successful. Note that you still have to make sure in your Actor that the total charge for the run respects the maximum value set by the user, as the API does not check this. Above the limit, the charges reported as successful in API will not be added to your payouts, but you will still bear the associated costs. Use the Apify charge manager or SDK to avoid having to deal with this manually. */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_dataset_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_dataset_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UpdateDatasetRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_dataset_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_dataset_items_get: { + parameters: { + query?: { + /** @description Format of the results, possible values are: `json`, `jsonl`, `csv`, `html`, `xlsx`, `xml` and `rss`. The default value is `json`. */ + format?: components["parameters"]["format"]; + /** + * @description If `true` or `1` then the API endpoint returns only non-empty items and skips hidden fields (i.e. fields starting with the # character). + * The `clean` parameter is just a shortcut for `skipHidden=true` and `skipEmpty=true` parameters. + * Note that since some objects might be skipped from the output, that the result might contain less items than the `limit` value. + */ + clean?: components["parameters"]["clean"]; + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. By default there is no limit. */ + limit?: components["parameters"]["datasetParameters_limit"]; + /** + * @description A comma-separated list of fields which should be picked from the items, only these fields will remain in the resulting record objects. + * Note that the fields in the outputted items are sorted the same way as they are specified in the `fields` query parameter. + * You can use this feature to effectively fix the output format. + */ + fields?: components["parameters"]["fields"]; + /** + * @description A comma-separated list of output field names that positionally rename the fields specified in the `fields` parameter. + * For example, `?fields=headline,url&outputFields=title,link` renames `headline` to `title` and `url` to `link` in the output. + * The number of names in `outputFields` must match the number of names in `fields`. + * Requires the `fields` parameter to be specified as well. + */ + outputFields?: components["parameters"]["outputFields"]; + /** @description A comma-separated list of fields which should be omitted from the items. */ + omit?: components["parameters"]["omit"]; + /** + * @description A comma-separated list of fields which should be unwound, in order which they should be processed. Each field should be either an array or an object. + * If the field is an array then every element of the array will become a separate record and merged with parent object. + * If the unwound field is an object then it is merged with the parent object. + * If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object then the item gets preserved as it is. + * Note that the unwound items ignore the `desc` parameter. + */ + unwind?: components["parameters"]["unwind"]; + /** + * @description A comma-separated list of fields which should transform nested objects into flat structures. + * + * For example, with `flatten="foo"` the object `{"foo":{"bar": "hello"}}` is turned into `{"foo.bar": "hello"}`. + * + * The original object with properties is replaced with the flattened object. + */ + flatten?: components["parameters"]["flatten"]; + /** + * @description By default, results are returned in the same order as they were stored. + * To reverse the order, set this parameter to `true` or `1`. + */ + desc?: components["parameters"]["descDataset"]; + /** + * @description If `true` or `1` then the response will define the `Content-Disposition: + * attachment` header, forcing a web browser to download the file rather + * than to display it. By default this header is not present. + */ + attachment?: components["parameters"]["attachment"]; + /** + * @description A delimiter character for CSV files, only used if `format=csv`. You + * might need to URL-encode the character (e.g. use `%09` for tab or `%3B` + * for semicolon). The default delimiter is a simple comma (`,`). + */ + delimiter?: components["parameters"]["delimiter"]; + /** + * @description All text responses are encoded in UTF-8 encoding. By default, the + * `format=csv` files are prefixed with the UTF-8 Byte Order Mark (BOM), while `json`, `jsonl`, `xml`, `html` and `rss` files are not. + * + * If you want to override this default behavior, specify `bom=1` query parameter to include the BOM or `bom=0` to skip it. + */ + bom?: components["parameters"]["bom"]; + /** @description Overrides default root element name of `xml` output. By default the root element is `items`. */ + xmlRoot?: components["parameters"]["xmlRoot"]; + /** @description Overrides default element name that wraps each page or page function result object in `xml` output. By default the element name is `item`. */ + xmlRow?: components["parameters"]["xmlRow"]; + /** @description If `true` or `1` then header row in the `csv` format is skipped. */ + skipHeaderRow?: components["parameters"]["skipHeaderRow"]; + /** @description If `true` or `1` then hidden fields are skipped from the output, i.e. fields starting with the `#` character. */ + skipHidden?: components["parameters"]["skipHidden"]; + /** + * @description If `true` or `1` then empty items are skipped from the output. + * + * Note that if used, the results might contain less items than the limit value. + */ + skipEmpty?: components["parameters"]["skipEmpty"]; + /** + * @description If `true` or `1` then, the endpoint applies the `fields=url,pageFunctionResult,errorInfo` + * and `unwind=pageFunctionResult` query parameters. This feature is used to emulate simplified results provided by the + * legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + simplified?: components["parameters"]["simplified"]; + /** + * @description Defines the view configuration for dataset items based on the schema definition. + * This parameter determines how the data will be filtered and presented. + * For complete specification details, see the [dataset schema documentation](https://docs.apify.com/storage/dataset-schema). + */ + view?: components["parameters"]["view"]; + /** + * @description If `true` or `1` then, the all the items with errorInfo property will be skipped from the output. + * + * This feature is here to emulate functionality of API version 1 used for the legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + skipFailedPages?: components["parameters"]["skipFailedPages"]; + /** + * @description Overrides the auto-generated RSS channel `<title>` element. + * Only used when `format=rss`. If not provided, the title defaults to `Dataset <label>`. + */ + feedTitle?: components["parameters"]["feedTitle"]; + /** + * @description Overrides the auto-generated RSS channel `<description>` element. + * Only used when `format=rss`. If not provided, the description defaults to `Items in dataset with id "<datasetId>".` + */ + feedDescription?: components["parameters"]["feedDescription"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + /** @description The offset of the first item in the current page. */ + "X-Apify-Pagination-Offset"?: { + /** @example 0 */ + "text/plain": string; + }; + /** @description The maximum number of items returned per page. */ + "X-Apify-Pagination-Limit"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The number of items returned in the current page. */ + "X-Apify-Pagination-Count"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The total number of items in the dataset. */ + "X-Apify-Pagination-Total"?: { + /** @example 10204 */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>[]; + /** @example {"foo":"bar"}\n{"foo2":"bar2"}\n */ + "application/jsonl": string; + /** @example foo,bar\nfoo2,bar2\n */ + "text/csv": string; + /** @example <table><tr><th>foo</th><th>bar</th></tr><tr><td>foo</td><td>bar</td></tr><tr><td>foo2</td><td>bar2</td></tr></table> */ + "text/html": string; + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": string; + /** @example <rss><channel><item><foo>bar</foo></item><item><foo2>bar2</foo2></item></channel></rss> */ + "application/rss+xml": string; + /** @example <items><item><foo>bar</foo></item><item><foo2>bar2</foo2></item></items> */ + "application/xml": string; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_dataset_items_post: { + parameters: { + query?: never; + header?: { + /** @description Compression encoding of the request body. */ + "Content-Encoding"?: components["parameters"]["Content-Encoding"]; + }; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PutItemsRequest"] | components["schemas"]["PutItemsRequest"][]; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/datasets/WkzbQMuFYuamGv3YF/items */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PutItemResponseError"] | components["schemas"]["ErrorResponse"]; + }; + }; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_dataset_statistics_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetStatisticsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_keyValueStore_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KeyValueStoreResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_keyValueStore_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "name": "new-store-name" + * } + */ + "application/json": components["schemas"]["UpdateStoreRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KeyValueStoreResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_keyValueStore_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_keyValueStore_keys_get: { + parameters: { + query?: { + /** @description All keys up to this one (including) are skipped from the result. */ + exclusiveStartKey?: components["parameters"]["exclusiveStartKey"]; + /** @description Number of keys to be returned. */ + limit?: components["parameters"]["keyValueStoreParameters_limit"]; + /** @description Limit the results to keys that belong to a specific collection from the key-value store schema. The key-value store need to have a schema defined for this parameter to work. */ + collection?: components["parameters"]["collectionKeys"]; + /** @description Limit the results to keys that start with a specific prefix. */ + prefix?: components["parameters"]["prefixKeys"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfKeysResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_keyValueStore_records_get: { + parameters: { + query?: { + /** @description If specified, only records belonging to a specific collection from the key-value store schema. The key-value store need to have a schema defined for this parameter to work. */ + collection?: components["parameters"]["collectionRecords"]; + /** @description If specified, only records whose key starts with the given prefix are included in the archive. */ + prefix?: components["parameters"]["prefixRecords"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description A ZIP archive containing the requested records. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/zip": string; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_keyValueStore_record_get: { + parameters: { + query?: { + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + /** + * @description If `true` or `1`, the response will be served with `Content-Disposition: attachment` header, + * causing web browsers to offer downloading HTML records instead of displaying them. + */ + attachment?: components["parameters"]["keyValueStoreParameters_attachment"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RecordResponse"]; + "*/*": unknown; + }; + }; + 302: { + headers: { + Location?: { + /** @example https://apifier-key-value-store-prod.s3.amazonaws.com/tqx6jeMia43gYY6eE/INPUT?AWSAccessKeyId=NKDOUN&Expires=1502720992&Signature=DKLVPI4lDDKC */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content?: never; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_keyValueStore_record_put: { + parameters: { + query?: never; + header?: { + /** @description Compression encoding of the request body. */ + "Content-Encoding"?: components["parameters"]["Content-Encoding"]; + }; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PutRecordRequest"]; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/records/some-key */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_keyValueStore_record_post: { + parameters: { + query?: never; + header?: { + /** @description Compression encoding of the request body. */ + "Content-Encoding"?: components["parameters"]["Content-Encoding"]; + }; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PutRecordRequest"]; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/records/some-key */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_keyValueStore_record_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestQueueResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "name": "new-request-queue-name" + * } + */ + "application/json": components["schemas"]["UpdateRequestQueueRequest"] & unknown; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestQueueResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_requests_get: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @deprecated + * @description All requests up to this one (including) are skipped from the result. (Deprecated, use `cursor` instead.) + */ + exclusiveStartId?: components["parameters"]["exclusiveStartId"]; + /** @description Number of keys to be returned. Maximum value is `10000`. */ + limit?: components["parameters"]["listLimit"]; + /** @description A cursor string for pagination, returned in the previous response as `nextCursor`. Use this to retrieve the next page of requests. */ + cursor?: components["parameters"]["cursor"]; + /** @description Filter requests by their state. Possible values are `locked` and `pending`. You can combine multiple values separated by commas, which will mean the union of these filters – requests matching any of the specified states will be returned. (Not compatible with deprecated `exclusiveStartId` parameter.) */ + filter?: components["parameters"]["filter"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfRequestsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_requests_post: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end. Default value is `false` (end of queue). + */ + forefront?: components["parameters"]["forefront"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestBase"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AddRequestResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_requests_batch_post: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end. Default value is `false` (end of queue). + */ + forefront?: components["parameters"]["forefront"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestBase"][]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchAddResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_requests_batch_delete: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header: { + "Content-Type": components["parameters"]["contentTypeJson"]; + }; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestDraftDelete"][]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchDeleteResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_requests_unlock_post: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Number of requests that were unlocked */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UnlockRequestsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_request_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_request_put: { + parameters: { + query?: { + /** + * @description Determines if request should be added to the head of the queue or to the + * end. Default value is `false` (end of queue). + */ + forefront?: components["parameters"]["forefront"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestBase"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UpdateRequestResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_request_delete: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_request_lock_put: { + parameters: { + query: { + /** @description How long the requests will be locked for (in seconds). */ + lockSecs: components["parameters"]["lockSecs"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end after lock expires. + */ + forefront?: components["parameters"]["lockForefront"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProlongRequestLockResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_request_lock_delete: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end after lock was removed. + */ + forefront?: components["parameters"]["deleteForefront"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_head_get: { + parameters: { + query?: { + /** @description How many items from queue should be returned. */ + limit?: components["parameters"]["headLimit"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeadResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_requestQueue_head_lock_post: { + parameters: { + query: { + /** @description How long the requests will be locked for (in seconds). */ + lockSecs: components["parameters"]["lockSecs"]; + /** @description How many items from the queue should be returned. */ + limit?: components["parameters"]["headLockLimit"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeadAndLockResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorRun_log_get: { + parameters: { + query?: { + /** @description If `true` or `1` then the logs will be streamed as long as the run or build is running. */ + stream?: components["parameters"]["stream"]; + /** @description If `true` or `1` then the web browser will download the log file rather than open it in a tab. */ + download?: components["parameters"]["download"]; + /** + * @description If `true` or `1`, the logs will be kept verbatim. By default, the API removes + * ANSI escape codes from the logs, keeping only printable characters. + */ + raw?: components["parameters"]["raw"]; + }; + header?: never; + path: { + /** @description Actor run ID. */ + runId: components["parameters"]["runId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "text/plain": string; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorBuilds_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `startedAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descStartedAt"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfBuildsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorBuild_get: { + parameters: { + query?: { + /** + * @description The maximum number of seconds the server waits for the build to finish. + * By default it is `0`, the maximum value is `60`. <!-- MAX_ACTOR_JOB_ASYNC_WAIT_SECS --> + * If the build finishes in time then the returned build object will have a + * terminal status (e.g. `SUCCEEDED`), otherwise it will have a transitional status (e.g. `RUNNING`). + */ + waitForFinish?: components["parameters"]["waitForFinishBuild"]; + }; + header?: never; + path: { + /** @description ID of the build, found in the build's Info tab. */ + buildId: components["parameters"]["buildId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BuildResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 408: components["responses"]["Timeout"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorBuild_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the build, found in the build's Info tab. */ + buildId: components["parameters"]["buildId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorBuild_abort_post: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the build, found in the build's Info tab. */ + buildId: components["parameters"]["buildId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BuildResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorBuild_log_get: { + parameters: { + query?: { + /** @description If `true` or `1` then the logs will be streamed as long as the run or build is running. */ + stream?: components["parameters"]["stream"]; + /** @description If `true` or `1` then the web browser will download the log file rather than open it in a tab. */ + download?: components["parameters"]["download"]; + }; + header?: never; + path: { + /** @description ID of the build, found in the build's Info tab. */ + buildId: components["parameters"]["buildId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "text/plain": string; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + actorBuild_openapi_json_get: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description ID of the build, found in the build's Info tab. + * Use the special value `default` to get the OpenAPI schema for the Actor's default build. + */ + buildId: components["parameters"]["buildIdWithDefault"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description The OpenAPI specification document for the Actor build. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + keyValueStores_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `createdAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descCreatedAt"]; + /** + * @description If `true` or `1` then all the storages are returned. By default, only + * named storages are returned. + */ + unnamed?: components["parameters"]["unnamed"]; + /** + * @description Filter by ownership. If this parameter is omitted, all accessible key-value stores are returned. + * + * - `ownedByMe`: Return only key-value stores owned by the user. + * - `sharedWithMe`: Return only key-value stores shared with the user by other users. + */ + ownership?: components["schemas"]["StorageOwnership"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfKeyValueStoresResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + keyValueStores_post: { + parameters: { + query?: { + /** @description Custom unique name to easily identify the store in the future. */ + name?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns the existing key-value store object if a store with the given name already exists. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KeyValueStoreResponse"]; + }; + }; + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KeyValueStoreResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + keyValueStore_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Key-value store ID or `username~store-name`. */ + storeId: components["parameters"]["storeId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KeyValueStoreResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + keyValueStore_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Key-value store ID or `username~store-name`. */ + storeId: components["parameters"]["storeId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "name": "new-store-name" + * } + */ + "application/json": components["schemas"]["UpdateStoreRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KeyValueStoreResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + keyValueStore_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Key-value store ID or `username~store-name`. */ + storeId: components["parameters"]["storeId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + keyValueStore_keys_get: { + parameters: { + query?: { + /** @description All keys up to this one (including) are skipped from the result. */ + exclusiveStartKey?: components["parameters"]["exclusiveStartKey"]; + /** @description Number of keys to be returned. */ + limit?: components["parameters"]["keyValueStoreParameters_limit"]; + /** @description Limit the results to keys that belong to a specific collection from the key-value store schema. The key-value store need to have a schema defined for this parameter to work. */ + collection?: components["parameters"]["collectionKeys"]; + /** @description Limit the results to keys that start with a specific prefix. */ + prefix?: components["parameters"]["prefixKeys"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Key-value store ID or `username~store-name`. */ + storeId: components["parameters"]["storeId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfKeysResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + keyValueStore_records_get: { + parameters: { + query?: { + /** @description If specified, only records belonging to a specific collection from the key-value store schema. The key-value store need to have a schema defined for this parameter to work. */ + collection?: components["parameters"]["collectionRecords"]; + /** @description If specified, only records whose key starts with the given prefix are included in the archive. */ + prefix?: components["parameters"]["prefixRecords"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Key-value store ID or `username~store-name`. */ + storeId: components["parameters"]["storeId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description A ZIP archive containing the requested records. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/zip": string; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + keyValueStore_record_get: { + parameters: { + query?: { + /** + * @description If `true` or `1`, the response will be served with `Content-Disposition: attachment` header, + * causing web browsers to offer downloading HTML records instead of displaying them. + */ + attachment?: components["parameters"]["keyValueStoreParameters_attachment"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Key-value store ID or `username~store-name`. */ + storeId: components["parameters"]["storeId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RecordResponse"]; + "*/*": unknown; + }; + }; + 302: { + headers: { + Location?: { + /** @example https://apifier-key-value-store-prod.s3.amazonaws.com/tqx6jeMia43gYY6eE/INPUT?AWSAccessKeyId=NKDOUN&Expires=1502720992&Signature=DKLVPI4lDDKC */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content?: never; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + keyValueStore_record_put: { + parameters: { + query?: never; + header?: { + /** @description Compression encoding of the request body. */ + "Content-Encoding"?: components["parameters"]["Content-Encoding"]; + }; + path: { + /** @description Key-value store ID or `username~store-name`. */ + storeId: components["parameters"]["storeId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PutRecordRequest"]; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/records/some-key */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + keyValueStore_record_post: { + parameters: { + query?: never; + header?: { + /** @description Compression encoding of the request body. */ + "Content-Encoding"?: components["parameters"]["Content-Encoding"]; + }; + path: { + /** @description Key-value store ID or `username~store-name`. */ + storeId: components["parameters"]["storeId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PutRecordRequest"]; + "*/*": unknown; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/records/some-key */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + keyValueStore_record_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Key-value store ID or `username~store-name`. */ + storeId: components["parameters"]["storeId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + keyValueStore_record_head: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Key-value store ID or `username~store-name`. */ + storeId: components["parameters"]["storeId"]; + /** @description Key of the record. */ + recordKey: components["parameters"]["recordKey"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description The record exists */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + datasets_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `createdAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descCreatedAt"]; + /** + * @description If `true` or `1` then all the storages are returned. By default, only + * named storages are returned. + */ + unnamed?: components["parameters"]["unnamed"]; + /** + * @description Filter by ownership. If this parameter is omitted, all accessible datasets are returned. + * + * - `ownedByMe`: Return only datasets owned by the user. + * - `sharedWithMe`: Return only datasets shared with the user by other users. + */ + ownership?: components["schemas"]["StorageOwnership"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfDatasetsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + datasets_post: { + parameters: { + query?: { + /** @description Custom unique name to easily identify the dataset in the future. */ + name?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns the existing dataset object if a dataset with the given name already exists. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetResponse"]; + }; + }; + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/datasets/WkzbQMuFYuamGv3YF */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + dataset_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Dataset ID or `username~dataset-name`. */ + datasetId: components["parameters"]["datasetId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + dataset_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Dataset ID or `username~dataset-name`. */ + datasetId: components["parameters"]["datasetId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UpdateDatasetRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + dataset_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Dataset ID or `username~dataset-name`. */ + datasetId: components["parameters"]["datasetId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + dataset_items_get: { + parameters: { + query?: { + /** @description Format of the results, possible values are: `json`, `jsonl`, `csv`, `html`, `xlsx`, `xml` and `rss`. The default value is `json`. */ + format?: components["parameters"]["format"]; + /** + * @description If `true` or `1` then the API endpoint returns only non-empty items and skips hidden fields (i.e. fields starting with the # character). + * The `clean` parameter is just a shortcut for `skipHidden=true` and `skipEmpty=true` parameters. + * Note that since some objects might be skipped from the output, that the result might contain less items than the `limit` value. + */ + clean?: components["parameters"]["clean"]; + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. By default there is no limit. */ + limit?: components["parameters"]["datasetParameters_limit"]; + /** + * @description A comma-separated list of fields which should be picked from the items, only these fields will remain in the resulting record objects. + * Note that the fields in the outputted items are sorted the same way as they are specified in the `fields` query parameter. + * You can use this feature to effectively fix the output format. + */ + fields?: components["parameters"]["fields"]; + /** + * @description A comma-separated list of output field names that positionally rename the fields specified in the `fields` parameter. + * For example, `?fields=headline,url&outputFields=title,link` renames `headline` to `title` and `url` to `link` in the output. + * The number of names in `outputFields` must match the number of names in `fields`. + * Requires the `fields` parameter to be specified as well. + */ + outputFields?: components["parameters"]["outputFields"]; + /** @description A comma-separated list of fields which should be omitted from the items. */ + omit?: components["parameters"]["omit"]; + /** + * @description A comma-separated list of fields which should be unwound, in order which they should be processed. Each field should be either an array or an object. + * If the field is an array then every element of the array will become a separate record and merged with parent object. + * If the unwound field is an object then it is merged with the parent object. + * If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object then the item gets preserved as it is. + * Note that the unwound items ignore the `desc` parameter. + */ + unwind?: components["parameters"]["unwind"]; + /** + * @description A comma-separated list of fields which should transform nested objects into flat structures. + * + * For example, with `flatten="foo"` the object `{"foo":{"bar": "hello"}}` is turned into `{"foo.bar": "hello"}`. + * + * The original object with properties is replaced with the flattened object. + */ + flatten?: components["parameters"]["flatten"]; + /** + * @description By default, results are returned in the same order as they were stored. + * To reverse the order, set this parameter to `true` or `1`. + */ + desc?: components["parameters"]["descDataset"]; + /** + * @description If `true` or `1` then the response will define the `Content-Disposition: + * attachment` header, forcing a web browser to download the file rather + * than to display it. By default this header is not present. + */ + attachment?: components["parameters"]["attachment"]; + /** + * @description A delimiter character for CSV files, only used if `format=csv`. You + * might need to URL-encode the character (e.g. use `%09` for tab or `%3B` + * for semicolon). The default delimiter is a simple comma (`,`). + */ + delimiter?: components["parameters"]["delimiter"]; + /** + * @description All text responses are encoded in UTF-8 encoding. By default, the + * `format=csv` files are prefixed with the UTF-8 Byte Order Mark (BOM), while `json`, `jsonl`, `xml`, `html` and `rss` files are not. + * + * If you want to override this default behavior, specify `bom=1` query parameter to include the BOM or `bom=0` to skip it. + */ + bom?: components["parameters"]["bom"]; + /** @description Overrides default root element name of `xml` output. By default the root element is `items`. */ + xmlRoot?: components["parameters"]["xmlRoot"]; + /** @description Overrides default element name that wraps each page or page function result object in `xml` output. By default the element name is `item`. */ + xmlRow?: components["parameters"]["xmlRow"]; + /** @description If `true` or `1` then header row in the `csv` format is skipped. */ + skipHeaderRow?: components["parameters"]["skipHeaderRow"]; + /** @description If `true` or `1` then hidden fields are skipped from the output, i.e. fields starting with the `#` character. */ + skipHidden?: components["parameters"]["skipHidden"]; + /** + * @description If `true` or `1` then empty items are skipped from the output. + * + * Note that if used, the results might contain less items than the limit value. + */ + skipEmpty?: components["parameters"]["skipEmpty"]; + /** + * @description If `true` or `1` then, the endpoint applies the `fields=url,pageFunctionResult,errorInfo` + * and `unwind=pageFunctionResult` query parameters. This feature is used to emulate simplified results provided by the + * legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + simplified?: components["parameters"]["simplified"]; + /** + * @description Defines the view configuration for dataset items based on the schema definition. + * This parameter determines how the data will be filtered and presented. + * For complete specification details, see the [dataset schema documentation](https://docs.apify.com/storage/dataset-schema). + */ + view?: components["parameters"]["view"]; + /** + * @description If `true` or `1` then, the all the items with errorInfo property will be skipped from the output. + * + * This feature is here to emulate functionality of API version 1 used for the legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + skipFailedPages?: components["parameters"]["skipFailedPages"]; + /** + * @description Overrides the auto-generated RSS channel `<title>` element. + * Only used when `format=rss`. If not provided, the title defaults to `Dataset <label>`. + */ + feedTitle?: components["parameters"]["feedTitle"]; + /** + * @description Overrides the auto-generated RSS channel `<description>` element. + * Only used when `format=rss`. If not provided, the description defaults to `Items in dataset with id "<datasetId>".` + */ + feedDescription?: components["parameters"]["feedDescription"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Dataset ID or `username~dataset-name`. */ + datasetId: components["parameters"]["datasetId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + /** @description The offset of the first item in the current page. */ + "X-Apify-Pagination-Offset"?: { + /** @example 0 */ + "text/plain": string; + }; + /** @description The maximum number of items returned per page. */ + "X-Apify-Pagination-Limit"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The number of items returned in the current page. */ + "X-Apify-Pagination-Count"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The total number of items in the dataset. */ + "X-Apify-Pagination-Total"?: { + /** @example 10204 */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>[]; + /** @example {"foo":"bar"}\n{"foo2":"bar2"}\n */ + "application/jsonl": string; + /** @example foo,bar\nfoo2,bar2\n */ + "text/csv": string; + /** @example <table><tr><th>foo</th><th>bar</th></tr><tr><td>foo</td><td>bar</td></tr><tr><td>foo2</td><td>bar2</td></tr></table> */ + "text/html": string; + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": string; + /** @example <rss><channel><item><foo>bar</foo></item><item><foo2>bar2</foo2></item></channel></rss> */ + "application/rss+xml": string; + /** @example <items><item><foo>bar</foo></item><item><foo2>bar2</foo2></item></items> */ + "application/xml": string; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + dataset_items_post: { + parameters: { + query?: never; + header?: { + /** @description Compression encoding of the request body. */ + "Content-Encoding"?: components["parameters"]["Content-Encoding"]; + }; + path: { + /** @description Dataset ID or `username~dataset-name`. */ + datasetId: components["parameters"]["datasetId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PutItemsRequest"] | components["schemas"]["PutItemsRequest"][]; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/datasets/WkzbQMuFYuamGv3YF/items */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PutItemResponseError"] | components["schemas"]["ErrorResponse"]; + }; + }; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + dataset_items_head: { + parameters: { + query?: { + /** @description Format of the results, possible values are: `json`, `jsonl`, `csv`, `html`, `xlsx`, `xml` and `rss`. The default value is `json`. */ + format?: components["parameters"]["format"]; + /** + * @description If `true` or `1` then the API endpoint returns only non-empty items and skips hidden fields (i.e. fields starting with the # character). + * The `clean` parameter is just a shortcut for `skipHidden=true` and `skipEmpty=true` parameters. + * Note that since some objects might be skipped from the output, that the result might contain less items than the `limit` value. + */ + clean?: components["parameters"]["clean"]; + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. By default there is no limit. */ + limit?: components["parameters"]["datasetParameters_limit"]; + /** + * @description A comma-separated list of fields which should be picked from the items, only these fields will remain in the resulting record objects. + * Note that the fields in the outputted items are sorted the same way as they are specified in the `fields` query parameter. + * You can use this feature to effectively fix the output format. + */ + fields?: components["parameters"]["fields"]; + /** + * @description A comma-separated list of output field names that positionally rename the fields specified in the `fields` parameter. + * For example, `?fields=headline,url&outputFields=title,link` renames `headline` to `title` and `url` to `link` in the output. + * The number of names in `outputFields` must match the number of names in `fields`. + * Requires the `fields` parameter to be specified as well. + */ + outputFields?: components["parameters"]["outputFields"]; + /** @description A comma-separated list of fields which should be omitted from the items. */ + omit?: components["parameters"]["omit"]; + /** + * @description A comma-separated list of fields which should be unwound, in order which they should be processed. Each field should be either an array or an object. + * If the field is an array then every element of the array will become a separate record and merged with parent object. + * If the unwound field is an object then it is merged with the parent object. + * If the unwound field is missing or its value is neither an array nor an object and therefore cannot be merged with a parent object then the item gets preserved as it is. + * Note that the unwound items ignore the `desc` parameter. + */ + unwind?: components["parameters"]["unwind"]; + /** + * @description A comma-separated list of fields which should transform nested objects into flat structures. + * + * For example, with `flatten="foo"` the object `{"foo":{"bar": "hello"}}` is turned into `{"foo.bar": "hello"}`. + * + * The original object with properties is replaced with the flattened object. + */ + flatten?: components["parameters"]["flatten"]; + /** + * @description By default, results are returned in the same order as they were stored. + * To reverse the order, set this parameter to `true` or `1`. + */ + desc?: components["parameters"]["descDataset"]; + /** + * @description If `true` or `1` then the response will define the `Content-Disposition: + * attachment` header, forcing a web browser to download the file rather + * than to display it. By default this header is not present. + */ + attachment?: components["parameters"]["attachment"]; + /** + * @description A delimiter character for CSV files, only used if `format=csv`. You + * might need to URL-encode the character (e.g. use `%09` for tab or `%3B` + * for semicolon). The default delimiter is a simple comma (`,`). + */ + delimiter?: components["parameters"]["delimiter"]; + /** + * @description All text responses are encoded in UTF-8 encoding. By default, the + * `format=csv` files are prefixed with the UTF-8 Byte Order Mark (BOM), while `json`, `jsonl`, `xml`, `html` and `rss` files are not. + * + * If you want to override this default behavior, specify `bom=1` query parameter to include the BOM or `bom=0` to skip it. + */ + bom?: components["parameters"]["bom"]; + /** @description Overrides default root element name of `xml` output. By default the root element is `items`. */ + xmlRoot?: components["parameters"]["xmlRoot"]; + /** @description Overrides default element name that wraps each page or page function result object in `xml` output. By default the element name is `item`. */ + xmlRow?: components["parameters"]["xmlRow"]; + /** @description If `true` or `1` then header row in the `csv` format is skipped. */ + skipHeaderRow?: components["parameters"]["skipHeaderRow"]; + /** @description If `true` or `1` then hidden fields are skipped from the output, i.e. fields starting with the `#` character. */ + skipHidden?: components["parameters"]["skipHidden"]; + /** + * @description If `true` or `1` then empty items are skipped from the output. + * + * Note that if used, the results might contain less items than the limit value. + */ + skipEmpty?: components["parameters"]["skipEmpty"]; + /** + * @description If `true` or `1` then, the endpoint applies the `fields=url,pageFunctionResult,errorInfo` + * and `unwind=pageFunctionResult` query parameters. This feature is used to emulate simplified results provided by the + * legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + simplified?: components["parameters"]["simplified"]; + /** + * @description Defines the view configuration for dataset items based on the schema definition. + * This parameter determines how the data will be filtered and presented. + * For complete specification details, see the [dataset schema documentation](https://docs.apify.com/storage/dataset-schema). + */ + view?: components["parameters"]["view"]; + /** + * @description If `true` or `1` then, the all the items with errorInfo property will be skipped from the output. + * + * This feature is here to emulate functionality of API version 1 used for the legacy Apify Crawler product and it's not recommended to use it in new integrations. + */ + skipFailedPages?: components["parameters"]["skipFailedPages"]; + /** + * @description Overrides the auto-generated RSS channel `<title>` element. + * Only used when `format=rss`. If not provided, the title defaults to `Dataset <label>`. + */ + feedTitle?: components["parameters"]["feedTitle"]; + /** + * @description Overrides the auto-generated RSS channel `<description>` element. + * Only used when `format=rss`. If not provided, the description defaults to `Items in dataset with id "<datasetId>".` + */ + feedDescription?: components["parameters"]["feedDescription"]; + /** @description Signature used for the access. */ + signature?: components["parameters"]["signature"]; + }; + header?: never; + path: { + /** @description Dataset ID or `username~dataset-name`. */ + datasetId: components["parameters"]["datasetId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + /** @description The offset of the first item in the current page. */ + "X-Apify-Pagination-Offset"?: { + /** @example 0 */ + "text/plain": string; + }; + /** @description The maximum number of items returned per page. */ + "X-Apify-Pagination-Limit"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The number of items returned in the current page. */ + "X-Apify-Pagination-Count"?: { + /** @example 100 */ + "text/plain": string; + }; + /** @description The total number of items in the dataset. */ + "X-Apify-Pagination-Total"?: { + /** @example 10204 */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content?: never; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + dataset_statistics_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Dataset ID or `username~dataset-name`. */ + datasetId: components["parameters"]["datasetId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetStatisticsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueues_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `createdAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descCreatedAt"]; + /** + * @description If `true` or `1` then all the storages are returned. By default, only + * named storages are returned. + */ + unnamed?: components["parameters"]["unnamed"]; + /** + * @description Filter by ownership. If this parameter is omitted, all accessible request queues are returned. + * + * - `ownedByMe`: Return only request queues owned by the user. + * - `sharedWithMe`: Return only request queues shared with the user by other users. + */ + ownership?: components["schemas"]["StorageOwnership"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfRequestQueuesResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueues_post: { + parameters: { + query?: { + /** @description Custom unique name to easily identify the queue in the future. */ + name?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns the existing request queue object if a queue with the given name already exists. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestQueueResponse"]; + }; + }; + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/request-queues/WkzbQMuFYuamGv3YF */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestQueueResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestQueueResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "name": "new-request-queue-name" + * } + */ + "application/json": components["schemas"]["UpdateRequestQueueRequest"] & unknown; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestQueueResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_requests_batch_post: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end. Default value is `false` (end of queue). + */ + forefront?: components["parameters"]["forefront"]; + }; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestBase"][]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchAddResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_requests_batch_delete: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header: { + "Content-Type": components["parameters"]["contentTypeJson"]; + }; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestDraftDelete"][]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchDeleteResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_requests_unlock_post: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Number of requests that were unlocked */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UnlockRequestsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_requests_get: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @deprecated + * @description All requests up to this one (including) are skipped from the result. (Deprecated, use `cursor` instead.) + */ + exclusiveStartId?: components["parameters"]["exclusiveStartId"]; + /** @description Number of keys to be returned. Maximum value is `10000`. */ + limit?: components["parameters"]["listLimit"]; + /** @description A cursor string for pagination, returned in the previous response as `nextCursor`. Use this to retrieve the next page of requests. */ + cursor?: components["parameters"]["cursor"]; + /** @description Filter requests by their state. Possible values are `locked` and `pending`. You can combine multiple values separated by commas, which will mean the union of these filters – requests matching any of the specified states will be returned. (Not compatible with deprecated `exclusiveStartId` parameter.) */ + filter?: components["parameters"]["filter"]; + }; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfRequestsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_requests_post: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end. Default value is `false` (end of queue). + */ + forefront?: components["parameters"]["forefront"]; + }; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestBase"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AddRequestResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_request_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RequestResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_request_put: { + parameters: { + query?: { + /** + * @description Determines if request should be added to the head of the queue or to the + * end. Default value is `false` (end of queue). + */ + forefront?: components["parameters"]["forefront"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RequestBase"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UpdateRequestResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_request_delete: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_head_get: { + parameters: { + query?: { + /** @description How many items from queue should be returned. */ + limit?: components["parameters"]["headLimit"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeadResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 402: components["responses"]["PaymentRequired"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_head_lock_post: { + parameters: { + query: { + /** @description How long the requests will be locked for (in seconds). */ + lockSecs: components["parameters"]["lockSecs"]; + /** @description How many items from the queue should be returned. */ + limit?: components["parameters"]["headLockLimit"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + }; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeadAndLockResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_request_lock_put: { + parameters: { + query: { + /** @description How long the requests will be locked for (in seconds). */ + lockSecs: components["parameters"]["lockSecs"]; + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end after lock expires. + */ + forefront?: components["parameters"]["lockForefront"]; + }; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProlongRequestLockResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + requestQueue_request_lock_delete: { + parameters: { + query?: { + /** + * @description A unique identifier of the client accessing the request queue. It must + * be a string between 1 and 32 characters long. This identifier is used to + * determine whether the queue was accessed by multiple clients. If + * `clientKey` is not provided, + * the system considers this API call to come from a new client. For + * details, see the `hadMultipleClients` field returned by the [Get + * head](#/reference/request-queues/queue-head) operation. + */ + clientKey?: components["parameters"]["clientKey"]; + /** + * @description Determines if request should be added to the head of the queue or to the + * end after lock was removed. + */ + forefront?: components["parameters"]["deleteForefront"]; + }; + header?: never; + path: { + /** @description Queue ID or `username~queue-name`. */ + queueId: components["parameters"]["queueId"]; + /** @description Request ID. */ + requestId: components["parameters"]["requestId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: components["responses"]["NoContent"]; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + webhooks_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `createdAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descCreatedAt"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfWebhooksResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + webhooks_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["WebhookCreate"]; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/webhook/zdc3Pyhyz3m8vjDeM */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["WebhookResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + webhook_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Webhook ID. */ + webhookId: components["parameters"]["webhookId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["WebhookResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + webhook_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Webhook ID. */ + webhookId: components["parameters"]["webhookId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["WebhookUpdate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["WebhookResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + webhook_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Webhook ID. */ + webhookId: components["parameters"]["webhookId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: { + headers: { + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + webhook_test_post: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Webhook ID. */ + webhookId: components["parameters"]["webhookId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TestWebhookResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + webhook_webhookDispatches_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Webhook ID. */ + webhookId: components["parameters"]["webhookId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfWebhookDispatchesResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + webhookDispatches_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `createdAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descCreatedAt"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfWebhookDispatchesResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + webhookDispatch_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Webhook dispatch ID. */ + dispatchId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["WebhookDispatchResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + schedules_get: { + parameters: { + query?: { + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** + * @description If `true` or `1` then the objects are sorted by the `createdAt` field in + * descending order. By default, they are sorted in ascending order. + */ + desc?: components["parameters"]["descCreatedAt"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfSchedulesResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + schedules_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ScheduleCreate"]; + }; + }; + responses: { + 201: { + headers: { + Location?: { + /** @example https://api.apify.com/v2/schedules/asdLZtadYvn4mBZmm */ + "text/plain": string; + }; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ScheduleResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 409: components["responses"]["Conflict"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + schedule_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Schedule ID. */ + scheduleId: components["parameters"]["scheduleId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ScheduleResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + schedule_put: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Schedule ID. */ + scheduleId: components["parameters"]["scheduleId"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ScheduleCreate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ScheduleResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + schedule_delete: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Schedule ID. */ + scheduleId: components["parameters"]["scheduleId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 204: { + headers: { + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + schedule_log_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Schedule ID. */ + scheduleId: components["parameters"]["scheduleId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "data": [ + * { + * "message": "Schedule invoked", + * "level": "INFO", + * "createdAt": "2019-03-26T12:28:00.370Z" + * }, + * { + * "message": "Cannot start Actor task \\\"iEvfA6pm6DWjRTGxS\\\": Provided input must be object, got \\\"string\\\" instead.", + * "level": "ERROR", + * "createdAt": "2019-03-26T12:30:00.325Z" + * } + * ] + * } + */ + "application/json": components["schemas"]["ScheduleLogResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + store_get: { + parameters: { + query?: { + /** @description Maximum number of items to return. The default value as well as the maximum is `1000`. */ + limit?: components["parameters"]["limit"]; + /** @description Number of items that should be skipped at the start. The default value is `0`. */ + offset?: components["parameters"]["offset"]; + /** + * @description String to search by. The search runs on the following fields: `title`, + * `name`, `description`, `username`, `readme`. + */ + search?: string; + /** + * @description Specifies the field by which to sort the results. The supported values + * are `relevance` (default), `popularity`, `newest` and `lastUpdate`. + */ + sortBy?: string; + /** @description Filters the results by the specified category. */ + category?: string; + /** @description Filters the results by the specified username. */ + username?: string; + /** @description Only return Actors with the specified pricing model. */ + pricingModel?: "FREE" | "FLAT_PRICE_PER_MONTH" | "PRICE_PER_DATASET_ITEM" | "PAY_PER_EVENT"; + /** + * @description If true, only return Actors that allow agentic users. If false, only + * return Actors that do not allow agentic users. + */ + allowsAgenticUsers?: boolean; + /** + * @description Controls the shape of the response. Use `full` (default) for the + * complete response including image URLs and all fields. Use `agent` + * for a reduced field set optimized for LLM consumers, which only + * includes `id`, `title`, `name`, `username`, `description`, `notice`, + * `badge`, `categories`, and minimal `stats`. + */ + responseFormat?: "full" | "agent"; + /** + * @description By default, search results exclude Actors that are not safe to run + * automatically (e.g. Actors from developers who haven't passed KYC, or + * full-permission Actors without a large user base). Set to `true` to + * bypass this safety filtering and include all Actors in the results. + */ + includeUnrunnableActors?: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ListOfActorsInStoreResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + log_get: { + parameters: { + query?: { + /** @description If `true` or `1` then the logs will be streamed as long as the run or build is running. */ + stream?: components["parameters"]["stream"]; + /** @description If `true` or `1` then the web browser will download the log file rather than open it in a tab. */ + download?: components["parameters"]["download"]; + /** + * @description If `true` or `1`, the logs will be kept verbatim. By default, the API removes + * ANSI escape codes from the logs, keeping only printable characters. + */ + raw?: components["parameters"]["raw"]; + }; + header?: never; + path: { + /** @description ID of the Actor build or run. */ + buildOrRunId: components["parameters"]["buildOrRunId"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "text/plain": string; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + user_get: { + parameters: { + query?: never; + header?: never; + path: { + /** @description User ID or username. */ + userId: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PublicUserDataResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 404: components["responses"]["NotFound"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + users_me_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PrivateUserDataResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + users_me_usage_monthly_get: { + parameters: { + query?: { + /** @description Date in the YYYY-MM-DD format. */ + date?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MonthlyUsageResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + users_me_limits_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LimitsResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + users_me_limits_put: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["UpdateLimitsRequest"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": Record<string, unknown>; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + tools_browser_info_get: { + parameters: { + query?: { + /** @description If `true` or `1`, the response omits the `headers` field. */ + skipHeaders?: boolean; + /** @description If `true` or `1`, the response includes the `rawHeaders` field with the raw request headers. */ + rawHeaders?: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BrowserInfoResponse"]; + }; + }; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + tools_browser_info_put: { + parameters: { + query?: { + /** @description If `true` or `1`, the response omits the `headers` field. */ + skipHeaders?: boolean; + /** @description If `true` or `1`, the response includes the `rawHeaders` field with the raw request headers. */ + rawHeaders?: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BrowserInfoResponse"]; + }; + }; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + tools_browser_info_post: { + parameters: { + query?: { + /** @description If `true` or `1`, the response omits the `headers` field. */ + skipHeaders?: boolean; + /** @description If `true` or `1`, the response includes the `rawHeaders` field with the raw request headers. */ + rawHeaders?: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BrowserInfoResponse"]; + }; + }; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + tools_browser_info_delete: { + parameters: { + query?: { + /** @description If `true` or `1`, the response omits the `headers` field. */ + skipHeaders?: boolean; + /** @description If `true` or `1`, the response includes the `rawHeaders` field with the raw request headers. */ + rawHeaders?: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BrowserInfoResponse"]; + }; + }; + 405: components["responses"]["MethodNotAllowed"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + tools_encode_and_sign_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + /** + * @example { + * "key": "value" + * } + */ + "application/json": Record<string, unknown>; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EncodeAndSignResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 403: components["responses"]["Forbidden"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; + tools_decode_and_verify_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DecodeAndVerifyRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DecodeAndVerifyResponse"]; + }; + }; + 400: components["responses"]["BadRequest"]; + 405: components["responses"]["MethodNotAllowed"]; + 413: components["responses"]["PayloadTooLarge"]; + 415: components["responses"]["UnsupportedMediaType"]; + 429: components["responses"]["TooManyRequests"]; + }; + }; +} diff --git a/src/models.ts b/src/models.ts new file mode 100644 index 000000000..24b81913d --- /dev/null +++ b/src/models.ts @@ -0,0 +1,1179 @@ +/** + * Public models adapted from the generated OpenAPI types in `./generated/api`. + * + * The generated file is never re-exported directly. Every type here is declared on top of a generated + * schema so the compiler reports drift, and the spec is adopted as-is wherever it is trustworthy. What + * remains is deliberately small, and each deviation falls into exactly one of five kinds, one block per + * kind per schema: + * + * - `*SpecGaps` -- fields the API returns that the spec does not describe at all. Tracked upstream; + * each entry disappears from here as the spec catches up, and `./spec_guards` fails the build once + * one is filled. + * - `*SpecNarrowings` -- the spec is narrower than what the API actually returns, so the wider type is + * kept. Widening needs no evidence and is adopted freely. + * - `*ClientNarrowings` -- the published type is narrower than the spec on purpose. This makes the + * compiler promise something the spec does not, so every entry carries its evidence. + * - `*ClientConversions` -- the client rewrites the value before the caller sees it, so the published + * type is the converted one rather than the wire type the spec describes. + * - `*RePointed` -- the field's type is replaced by a name this package owns: an adapted model, a + * `@apify/consts` union, or a published runtime enum. Left alone, the reference would render the + * generated schema as an indexed access into `./generated/api`, adapted fields on it would be + * unreachable, and a string union would replace an enum callers compare against. + * + * Backward-compatibility shims are deliberately absent. This lands in the next major, so the spec's + * nullability and optionality are adopted rather than papered over. + */ + +import type { + ACTOR_JOB_STATUSES, + ACTOR_PERMISSION_LEVEL, + META_ORIGINS, + RUN_GENERAL_ACCESS, + STORAGE_GENERAL_ACCESS, + ValueOf, + WEBHOOK_EVENT_TYPES, +} from '@apify/consts'; + +import type { components } from './generated/api'; +import type { Timezone } from './timezones'; +import type { Dictionary } from './utils'; + +type Schemas = components['schemas']; + +// Every published model below is declared with `interface ... extends`, never as a type alias, even +// where an alias would read more directly. The docs plugin only emits API-reference pages for classes, +// interfaces and enums, so turning one of these into an alias silently deletes its page and leaves the +// methods that return it linking nowhere. + +/** + * Event types that can trigger webhooks. + * + * Declared here rather than in `./resource_clients/webhook` so that both `Webhook` and + * `WebhookDispatch` can reference it without closing an import cycle. It is re-exported from there, so + * the public name and import path are unchanged. + */ +export type WebhookEventType = (typeof WEBHOOK_EVENT_TYPES)[keyof typeof WEBHOOK_EVENT_TYPES]; + +/** + * Status of a webhook dispatch. + * + * Declared here rather than in `./resource_clients/webhook_dispatch` so that `WebhookDispatch` can + * reference it without closing an import cycle. It is re-exported from there, so the public name and + * import path are unchanged. + */ +export enum WebhookDispatchStatus { + Active = 'ACTIVE', + Succeeded = 'SUCCEEDED', + Failed = 'FAILED', +} + +/** + * Fields the API returns on a dataset that the OpenAPI spec does not describe yet. + * + * TODO: Remove once the spec covers them. + */ +export interface DatasetSpecGaps { + title?: string; + username?: string; +} + +export interface DatasetRePointed { + stats?: DatasetStats; +} + +export interface DatasetSpecNarrowings { + // Spec omits the `null` the API can return for a storage that follows the owner's user setting. + generalAccess?: STORAGE_GENERAL_ACCESS | null; + // Spec lists `consoleUrl` as required, but the same `Dataset` schema backs both `GET /v2/datasets` and + // `GET /v2/datasets/{datasetId}`, and its `required` array describes only the single-resource response. + // The spec documents that split in prose rather than in the schema -- `DatasetStats.storageBytes` says + // "Only returned by the single-dataset endpoint" and `inflatedBytes` "Only returned by the dataset list + // endpoint" -- so a required `consoleUrl` would type-check and then be `undefined` for every item of + // `datasets().list()`. + consoleUrl?: string; +} + +/** + * Represents a dataset storage on the Apify platform. + * + * Datasets store structured data as a sequence of items (records). Each item is a JSON object. + * Datasets are useful for storing results from web scraping, crawling, or data processing tasks. + */ +export interface Dataset + extends + Omit<Schemas['Dataset'], keyof DatasetRePointed | keyof DatasetSpecNarrowings>, + DatasetRePointed, + DatasetSpecNarrowings, + DatasetSpecGaps {} + +/** + * Fields the API returns in dataset stats that the OpenAPI spec does not describe yet. + * + * TODO: Remove once the spec covers them. + */ +export interface DatasetStatsSpecGaps { + deleteCount?: number; +} + +/** An interface cannot extend an indexed access type directly, so each schema is named first. */ +type GeneratedDatasetStats = Schemas['DatasetStats']; +type GeneratedDatasetFieldStatistics = Schemas['DatasetFieldStatistics']; +type GeneratedWebhookDispatchWebhookSummary = Schemas['WebhookDispatchWebhookSummary']; + +// The spec inlines these two shapes into `WebhookDispatch` rather than naming them. +type GeneratedWebhookDispatchCall = NonNullable<Schemas['WebhookDispatch']['calls']>[number]; +type GeneratedWebhookDispatchEventData = NonNullable<Schemas['WebhookDispatch']['eventData']>; + +/** Statistics about dataset usage and storage. */ +export interface DatasetStats extends GeneratedDatasetStats, DatasetStatsSpecGaps {} + +export interface DatasetStatisticsRePointed { + // The published name stays `FieldStatistics` rather than the spec's `DatasetFieldStatistics`. + /** + * Statistics such as `min`, `max`, `nullCount` and `emptyCount` for each field of the dataset's + * [fields schema](https://docs.apify.com/platform/actors/development/actor-definition/dataset-schema/validation). + */ + fieldStatistics?: Record<string, FieldStatistics> | null; +} + +/** + * Statistical information about dataset fields. + * + * Provides insights into the data structure and content of the dataset. + */ +export interface DatasetStatistics + extends Omit<Schemas['DatasetStatistics'], keyof DatasetStatisticsRePointed>, DatasetStatisticsRePointed {} + +/** Statistics for a single field in a dataset. */ +export interface FieldStatistics extends GeneratedDatasetFieldStatistics {} + +/** The subset of a webhook that a dispatch carries. */ +export interface WebhookDispatchWebhookSummary extends GeneratedWebhookDispatchWebhookSummary {} + +export interface WebhookDispatchRePointed { + calls?: WebhookDispatchCall[]; + webhook?: WebhookDispatchWebhookSummary | null; + eventData?: WebhookDispatchEventData | null; + eventType: WebhookEventType; + status: WebhookDispatchStatus; +} + +export interface WebhookDispatch + extends Omit<Schemas['WebhookDispatch'], keyof WebhookDispatchRePointed>, WebhookDispatchRePointed {} + +/** A single delivery attempt made by a webhook dispatch. */ +export interface WebhookDispatchCall extends GeneratedWebhookDispatchCall {} + +/** Identifiers of the resource whose event triggered a webhook. */ +export interface WebhookDispatchEventData extends GeneratedWebhookDispatchEventData {} + +type GeneratedKeyValueStoreStats = Schemas['KeyValueStoreStats']; +type GeneratedKeyValueStoreKey = Schemas['KeyValueStoreKey']; + +/** + * Fields the API returns on a key-value store that the OpenAPI spec does not describe yet. + * + * TODO: Remove once the spec covers them. + */ +export interface KeyValueStoreSpecGaps { + title?: string; +} + +export interface KeyValueStoreRePointed { + stats?: KeyValueStoreStats; +} + +export interface KeyValueStoreSpecNarrowings { + // Spec omits the `null` the API can return for a storage that follows the owner's user setting. + generalAccess?: STORAGE_GENERAL_ACCESS | null; +} + +/** + * Represents a Key-Value Store storage on the Apify platform. + * + * Key-value stores are used to store arbitrary data records or files. Each record is identified + * by a unique key and can contain any data - JSON objects, strings, binary files, etc. + */ +export interface KeyValueStore + extends + Omit<Schemas['KeyValueStore'], keyof KeyValueStoreRePointed | keyof KeyValueStoreSpecNarrowings>, + KeyValueStoreRePointed, + KeyValueStoreSpecNarrowings, + KeyValueStoreSpecGaps {} + +/** Statistics about Key-Value Store usage and storage. */ +export interface KeyValueStoreStats extends GeneratedKeyValueStoreStats {} + +/** Metadata about a single key in a Key-Value Store. */ +export interface KeyValueListItem extends GeneratedKeyValueStoreKey {} + +export interface KeyValueClientListKeysResultRePointed { + // `KeyValueListItem` is the name this client has always used for the spec's `KeyValueStoreKey`. + items: KeyValueListItem[]; +} + +/** + * Result of listing keys in a Key-Value Store. + * + * Contains paginated list of keys with metadata and pagination information. + */ +export interface KeyValueClientListKeysResult + extends + Omit<Schemas['ListOfKeys'], keyof KeyValueClientListKeysResultRePointed>, + KeyValueClientListKeysResultRePointed {} + +type GeneratedVersion = Schemas['Version']; +type GeneratedSourceCodeFile = Schemas['SourceCodeFile']; +type GeneratedSourceCodeFolder = Schemas['SourceCodeFolder']; +type GeneratedEnvVar = Schemas['EnvVar']; + +/** + * Where the source code of an Actor version lives. + * + * Declared here rather than in `./resource_clients/actor_version` so that the version types can + * reference it without closing an import cycle. It is re-exported from there, so the public name and + * import path are unchanged. + */ +export enum ActorSourceType { + SourceFiles = 'SOURCE_FILES', + GitRepo = 'GIT_REPO', + Tarball = 'TARBALL', + GitHubGist = 'GITHUB_GIST', + SourceCode = 'SOURCE_CODE', +} + +/** An environment variable of an Actor version. */ +export interface ActorEnvironmentVariable extends GeneratedEnvVar {} + +/** A single file of an Actor version's source code. */ +export interface ActorVersionSourceFile extends GeneratedSourceCodeFile {} + +/** + * A folder in an Actor version's source code tree. + * + * `sourceFiles` is a flat list that mixes files and folders, told apart by this shape's `folder` flag + * rather than by nesting. + */ +export interface ActorVersionSourceFolder extends GeneratedSourceCodeFolder {} + +/** + * The four fields that hold a version's source location, exactly one of which applies per source + * type. The spec marks all of them optional on a single flat schema; each union variant below + * reinstates the one that its `sourceType` implies, as required. + */ +export type ActorVersionSourceLocation = 'sourceFiles' | 'gitRepoUrl' | 'tarballUrl' | 'gitHubGistUrl'; + +export interface ActorVersionRePointed { + envVars?: ActorEnvironmentVariable[] | null; +} + +export interface ActorVersionClientNarrowings { + // The spec permits `sourceType: null`. It is deliberately not adopted: the published type is a + // union discriminated on exactly this field, and a version with no source type carries no usable + // source location either, so accepting the `null` would only make every variant unreachable. + sourceType: ActorSourceType; +} + +/** + * Fields every Actor version carries, whatever its source type. + * + * The spec models a version as one flat object with all four source locations optional. This client + * keeps a union discriminated on `sourceType` instead, because that narrows the source location down + * to the single field which applies -- so the four are dropped here and reinstated per variant. + */ +export interface BaseActorVersion<SourceType extends ActorSourceType> + extends + Omit< + GeneratedVersion, + keyof ActorVersionClientNarrowings | keyof ActorVersionRePointed | ActorVersionSourceLocation + >, + ActorVersionRePointed { + sourceType: SourceType; +} + +/** An Actor version whose source code is stored on the Apify platform. */ +export interface ActorVersionSourceFiles extends BaseActorVersion<ActorSourceType.SourceFiles> { + sourceFiles: (ActorVersionSourceFile | ActorVersionSourceFolder)[]; +} + +/** An Actor version built from a Git repository. */ +export interface ActorVersionGitRepo extends BaseActorVersion<ActorSourceType.GitRepo> { + gitRepoUrl: NonNullable<GeneratedVersion['gitRepoUrl']>; +} + +/** An Actor version built from a downloadable tarball or ZIP archive. */ +export interface ActorVersionTarball extends BaseActorVersion<ActorSourceType.Tarball> { + tarballUrl: NonNullable<GeneratedVersion['tarballUrl']>; +} + +/** An Actor version built from a GitHub Gist. */ +export interface ActorVersionGitHubGist extends BaseActorVersion<ActorSourceType.GitHubGist> { + gitHubGistUrl: NonNullable<GeneratedVersion['gitHubGistUrl']>; +} + +/** + * An Actor version whose source is a single inline script. + * + * It carries no source location of its own, so it adds nothing to `BaseActorVersion`; the variant + * exists so that `SOURCE_CODE`, which both the spec and `@apify/consts` list, is representable. + */ +export interface ActorVersionSourceCode extends BaseActorVersion<ActorSourceType.SourceCode> {} + +/** A version of an Actor, discriminated on where its source code comes from. */ +export type ActorVersion = + | ActorVersionSourceFiles + | ActorVersionGitRepo + | ActorVersionTarball + | ActorVersionGitHubGist + | ActorVersionSourceCode; + +/** + * An Actor version as the API returns it, where the version number and build tag are always set. + * + * `Required` would not be enough: it strips `undefined` but leaves the `null` the spec allows on + * `buildTag`, so a caller would still have to null-check a field this type promises is set. Both are + * unwrapped with `NonNullable` instead. + */ +export type FinalActorVersion = ActorVersion & { + versionNumber: NonNullable<ActorVersion['versionNumber']>; + buildTag: NonNullable<ActorVersion['buildTag']>; +}; + +type GeneratedActorStats = Schemas['ActorStats']; +type GeneratedActorStandby = Schemas['ActorStandby']; +type GeneratedExampleRunInput = Schemas['ExampleRunInput']; +type GeneratedTaggedBuildInfo = Schemas['TaggedBuildInfo']; +type GeneratedActorChargeEvent = Schemas['ActorChargeEvent']; +type GeneratedActorShort = Schemas['ActorShort']; +type GeneratedFreeActorPricingInfo = Schemas['FreeActorPricingInfo']; +type GeneratedFlatPricePerMonthActorPricingInfo = Schemas['FlatPricePerMonthActorPricingInfo']; +type GeneratedTieredPricingPerDatasetItemEntry = Schemas['TieredPricingPerDatasetItemEntry']; +type GeneratedTieredPricingPerEventEntry = Schemas['TieredPricingPerEventEntry']; + +/** Statistics about Actor usage and activity. */ +export interface ActorStats extends GeneratedActorStats {} + +/** Standby mode configuration, for keeping an Actor warm and responsive. */ +export interface ActorStandby extends GeneratedActorStandby {} + +/** Example input data to demonstrate Actor usage. */ +export interface ActorExampleRunInput extends GeneratedExampleRunInput {} + +/** Information about a specific tagged build. */ +export interface ActorTaggedBuild extends GeneratedTaggedBuildInfo {} + +/** Mapping of build tags (e.g. 'latest', 'beta') to their corresponding build information. */ +export type ActorTaggedBuilds = Record<string, ActorTaggedBuild | null>; + +export interface ActorDefaultRunOptionsRePointed { + forcePermissionLevel?: ACTOR_PERMISSION_LEVEL | null; +} + +/** Default configuration options for Actor runs. */ +export interface ActorDefaultRunOptions + extends + Omit<Schemas['DefaultRunOptions'], keyof ActorDefaultRunOptionsRePointed>, + ActorDefaultRunOptionsRePointed {} + +/** + * Fields of an Actor definition that the OpenAPI spec does not describe yet. + * + * TODO: Remove once the spec covers them. + */ +export interface ActorDefinitionSpecGaps { + /** + * Output schema for the Actor. + * + * @see https://docs.apify.com/platform/actors/development/actor-definition/output-schema + */ + output?: object | null; +} + +export interface ActorDefinitionSpecNarrowings { + // The spec types all three as non-nullable. The `| null` is kept because these are paths into the + // Actor's source tree that the API reports as `null` when the referenced file is absent, which is + // what the hand-written definitions recorded before the spec described this schema at all. + readme?: string | null; + input?: object | null; + changelog?: string | null; +} + +/** + * Actor definition from the `.actor/actor.json` file. + * + * Contains the Actor's configuration, input schema, and other metadata. + * @see https://docs.apify.com/platform/actors/development/actor-definition/actor-json + */ +export interface ActorDefinition + extends + Omit<Schemas['ActorDefinition'], keyof ActorDefinitionSpecNarrowings>, + ActorDefinitionSpecNarrowings, + ActorDefinitionSpecGaps {} + +export interface ActorChargeEventRePointed { + eventTieredPricingUsd?: TieredPricingPerEvent; +} + +/** Definition of a chargeable event for pay-per-event Actors. */ +export interface ActorChargeEvent + extends Omit<GeneratedActorChargeEvent, keyof ActorChargeEventRePointed>, ActorChargeEventRePointed {} + +/** Mapping of event names to their pricing information. */ +export type ActorChargeEvents = Record<string, ActorChargeEvent>; + +/** Pricing information for free Actors. */ +export interface FreeActorPricingInfo extends GeneratedFreeActorPricingInfo {} + +/** Pricing information for Actors with a flat monthly subscription fee. */ +export interface FlatPricePerMonthActorPricingInfo extends GeneratedFlatPricePerMonthActorPricingInfo {} + +export interface PricePerDatasetItemActorPricingInfoRePointed { + tieredPricing?: TieredPricingPerDatasetItem; +} + +/** + * Pricing information for pay-per-result Actors. + * + * These Actors charge based on the number of items saved to the dataset. + */ +export interface PricePerDatasetItemActorPricingInfo + extends + Omit<Schemas['PricePerDatasetItemActorPricingInfo'], keyof PricePerDatasetItemActorPricingInfoRePointed>, + PricePerDatasetItemActorPricingInfoRePointed {} + +export interface PricePerEventActorPricingInfoRePointed { + pricingPerEvent: { + actorChargeEvents?: ActorChargeEvents; + }; +} + +/** + * Pricing information for pay-per-event Actors. + * + * These Actors charge based on specific events (e.g., emails sent, API calls made). The spec names + * this schema `PayPerEventActorPricingInfo`; the published name is kept as it is. + */ +export interface PricePerEventActorPricingInfo + extends + Omit<Schemas['PayPerEventActorPricingInfo'], keyof PricePerEventActorPricingInfoRePointed>, + PricePerEventActorPricingInfoRePointed {} + +/** Union type representing all possible Actor pricing models. */ +export type ActorRunPricingInfo = + | PricePerEventActorPricingInfo + | PricePerDatasetItemActorPricingInfo + | FlatPricePerMonthActorPricingInfo + | FreeActorPricingInfo; + +/** One subscription tier's price per dataset item. */ +export interface TieredPricingPerDatasetItemEntry extends GeneratedTieredPricingPerDatasetItemEntry {} + +/** One subscription tier's price for a single charge event. */ +export interface TieredPricingPerEventEntry extends GeneratedTieredPricingPerEventEntry {} + +/** + * Tiered price-per-dataset-item pricing, keyed by subscription tier such as `FREE` or `GOLD`. + * + * The spec models both tiered maps as index signatures over an entry schema, and the entry is what a + * caller reads, so it is published in its own right and the map points at it. + */ +export interface TieredPricingPerDatasetItem { + [tier: string]: TieredPricingPerDatasetItemEntry; +} + +/** Tiered pay-per-event pricing, keyed by subscription tier such as `FREE` or `GOLD`. */ +export interface TieredPricingPerEvent { + [tier: string]: TieredPricingPerEventEntry; +} + +/** + * Fields the API returns on an Actor that the OpenAPI spec does not describe yet. + * + * TODO: Remove once the spec covers them. + */ +export interface ActorSpecGaps { + /** Whether the Actor can be run by anonymous users without authentication */ + isAnonymouslyRunnable?: boolean; +} + +export interface ActorRePointed { + stats: ActorStats; + versions: ActorVersion[]; + pricingInfos?: ActorRunPricingInfo[]; + defaultRunOptions: ActorDefaultRunOptions; + exampleRunInput?: ActorExampleRunInput | null; + taggedBuilds?: ActorTaggedBuilds | null; + actorStandby?: ActorStandby | null; + actorPermissionLevel?: ACTOR_PERMISSION_LEVEL; +} + +/** + * Represents an Actor in the Apify platform. + * + * Actors are serverless computing units that can perform arbitrary tasks such as web scraping, + * data processing, automation, and more. Each Actor has versions, builds, and can be executed + * with different configurations. + */ +export interface Actor extends Omit<Schemas['Actor'], keyof ActorRePointed>, ActorRePointed, ActorSpecGaps {} + +/** An Actor as it appears in a listing, which carries fewer fields than the full resource. */ +export interface ActorCollectionListItem extends GeneratedActorShort {} + +type GeneratedBuildUsage = Schemas['BuildUsage']; +type GeneratedBuildStats = Schemas['BuildStats']; +type GeneratedBuildOptions = Schemas['BuildOptions']; + +/** Resource usage for an Actor build. */ +export interface BuildUsage extends GeneratedBuildUsage {} + +/** Runtime statistics for an Actor build. */ +export interface BuildStats extends GeneratedBuildStats {} + +/** Configuration options used for an Actor build. */ +export interface BuildOptions extends GeneratedBuildOptions {} + +export interface BuildMetaRePointed { + origin: ValueOf<typeof META_ORIGINS>; +} + +/** + * Metadata about how a Build was initiated. + * + * The spec names this schema `BuildsMeta`; the published name is kept as it is. + */ +export interface BuildMeta extends Omit<Schemas['BuildsMeta'], keyof BuildMetaRePointed>, BuildMetaRePointed {} + +export interface BuildRePointed { + meta: BuildMeta; + stats?: BuildStats | null; + options?: BuildOptions | null; + usage?: BuildUsage | null; + usageUsd?: BuildUsage | null; + actorDefinition?: ActorDefinition | null; + status: ValueOf<typeof ACTOR_JOB_STATUSES>; +} + +/** + * Represents an Actor build. + * + * Builds compile Actor source code and prepare it for execution. Each build has a unique ID + * and can be tagged (e.g., 'latest', 'beta') for easy reference. + */ +export interface Build extends Omit<Schemas['Build'], keyof BuildRePointed>, BuildRePointed {} + +/** A build as it appears in a listing, which carries fewer fields than the full resource. */ +export interface BuildCollectionClientListItem + extends + Omit<Schemas['BuildShort'], keyof BuildCollectionClientListItemRePointed>, + BuildCollectionClientListItemRePointed {} + +export interface BuildCollectionClientListItemRePointed { + meta?: BuildMeta; + status: ValueOf<typeof ACTOR_JOB_STATUSES>; +} + +type GeneratedRunUsage = Schemas['RunUsage']; +type GeneratedRunStats = Schemas['RunStats']; +type GeneratedRunOptions = Schemas['RunOptions']; +type GeneratedMetamorph = Schemas['Metamorph']; + +// The spec inlines the storage-id map into `Run` rather than naming it. +type GeneratedRunStorageIds = NonNullable<Schemas['Run']['storageIds']>; + +/** + * Resource usage metrics for an Actor run. + * + * All values represent the total consumption during the run's lifetime. The same shape doubles as the + * cost breakdown on `ActorRun.usageUsd`, where the spec names it `RunUsageUsd`; the two are + * structurally identical, so the published type stays single. + */ +export interface ActorRunUsage extends GeneratedRunUsage {} + +/** + * Runtime statistics for an Actor run. + * + * Provides detailed metrics about resource consumption and performance during the run. + */ +export interface ActorRunStats extends GeneratedRunStats {} + +/** A metamorph event that occurred during an Actor run. */ +export interface ActorRunMetamorph extends GeneratedMetamorph {} + +/** + * Aliased storage IDs associated with an Actor run, grouped by storage type. + * + * Each group is a map from alias to storage ID. The spec describes no alias as guaranteed, not even + * `default`, so a lookup can come back `undefined`. + */ +export interface ActorRunStorageIds extends GeneratedRunStorageIds {} + +export interface ActorRunMetaRePointed { + origin: ValueOf<typeof META_ORIGINS>; +} + +/** Metadata about how an Actor run was initiated. */ +export interface ActorRunMeta extends Omit<Schemas['RunMeta'], keyof ActorRunMetaRePointed>, ActorRunMetaRePointed {} + +/** + * Fields the API returns in an Actor run's options that the OpenAPI spec does not describe yet. + * + * TODO: Remove once the spec covers it. + */ +export interface ActorRunOptionsSpecGaps { + restartOnError?: boolean; +} + +/** + * Configuration options used for an Actor run. + * + * These are the actual options that were applied to the run (may differ from requested options). + */ +export interface ActorRunOptions extends GeneratedRunOptions, ActorRunOptionsSpecGaps {} + +export interface ActorRunListItemRePointed { + meta: ActorRunMeta; + status: ValueOf<typeof ACTOR_JOB_STATUSES>; +} + +/** An Actor run as it appears in a listing, which carries fewer fields than the full resource. */ +export interface ActorRunListItem + extends Omit<Schemas['RunShort'], keyof ActorRunListItemRePointed>, ActorRunListItemRePointed {} + +export interface ActorRunRePointed { + meta: ActorRunMeta; + stats: ActorRunStats; + options: ActorRunOptions; + usage?: ActorRunUsage | null; + usageUsd?: ActorRunUsage | null; + storageIds?: ActorRunStorageIds; + metamorphs?: ActorRunMetamorph[] | null; + status: ValueOf<typeof ACTOR_JOB_STATUSES>; +} + +export interface ActorRunClientNarrowings { + // The spec reuses the storage-wide `GeneralAccess` schema here, which also lists + // `ANYONE_WITH_NAME_CAN_READ`. A run has no name to be addressed by, which is exactly why + // `@apify/consts` declares a separate three-member `RUN_GENERAL_ACCESS`, and that stays the + // published type. The `| null` and the optionality the spec drops are kept for the same reason as + // on the storages: a run may follow the owner's user setting instead of carrying a level of its own. + generalAccess?: RUN_GENERAL_ACCESS | null; +} + +/** + * Complete Actor run information including statistics and usage details. + * + * Represents a single execution of an Actor with all its configuration, status, + * and resource usage information. + */ +export interface ActorRun + extends + Omit<Schemas['Run'], keyof ActorRunRePointed | keyof ActorRunClientNarrowings>, + ActorRunRePointed, + ActorRunClientNarrowings {} + +type GeneratedTaskStats = Schemas['TaskStats']; +type GeneratedTaskOptions = Schemas['TaskOptions']; +type GeneratedCurrentPricingInfo = Schemas['CurrentPricingInfo']; + +/** Statistics about Actor task usage. */ +export interface TaskStats extends GeneratedTaskStats {} + +/** Configuration options for an Actor task. */ +export interface TaskOptions extends GeneratedTaskOptions {} + +/** + * Fields the API returns on a task that the OpenAPI spec does not describe yet. + * + * TODO: Remove once the spec covers it. + */ +export interface TaskSpecGaps { + description?: string; +} + +export interface TaskRePointed { + stats?: TaskStats | null; + options?: TaskOptions | null; + actorStandby?: ActorStandby | null; +} + +export interface TaskSpecNarrowings { + // The spec models the input as a plain JSON object. The client has always accepted an array of + // objects here too, and this type is reused for `TaskUpdateData`, so narrowing to the spec would + // start rejecting `update()` calls that work today. The `| null` the spec adds is taken. + input?: Dictionary | Dictionary[] | null; +} + +/** + * Represents an Actor task. + * + * Tasks are saved Actor configurations with input and settings that can be executed + * repeatedly without having to specify the full input each time. + */ +export interface Task + extends + Omit<Schemas['Task'], keyof TaskRePointed | keyof TaskSpecNarrowings>, + TaskRePointed, + TaskSpecNarrowings, + TaskSpecGaps {} + +export interface TaskListRePointed { + stats?: TaskStats | null; +} + +/** A task as it appears in a listing, which carries fewer fields than the full resource. */ +export interface TaskList + extends Omit<Schemas['TaskShort'], keyof TaskListRePointed>, TaskListRePointed, TaskSpecGaps {} + +export interface ActorStoreListRePointed { + stats: ActorStats; + currentPricingInfo?: PricingInfo; +} + +/** + * Pricing information as Apify Store reports it. + * + * The spec names this schema `CurrentPricingInfo`; the published name is kept as it is. It is a flat + * summary rather than one of the `ActorRunPricingInfo` variants, so `pricingModel` is a plain string + * and every price field is optional. + */ +export interface PricingInfo extends GeneratedCurrentPricingInfo {} + +/** An Actor as it appears in Apify Store. */ +export interface ActorStoreList + extends Omit<Schemas['StoreListActor'], keyof ActorStoreListRePointed>, ActorStoreListRePointed {} + +type GeneratedWebhookStats = Schemas['WebhookStats']; +type GeneratedWebhookCondition = Schemas['WebhookCondition']; + +/** Statistics about webhook usage. */ +export interface WebhookStats extends GeneratedWebhookStats {} + +/** A webhook that fires for any run of a given Actor. */ +export interface WebhookAnyRunOfActorCondition { + actorId: NonNullable<GeneratedWebhookCondition['actorId']>; +} + +/** A webhook that fires for any run of a given Actor task. */ +export interface WebhookAnyRunOfActorTaskCondition { + actorTaskId: NonNullable<GeneratedWebhookCondition['actorTaskId']>; +} + +/** A webhook that fires for one specific Actor run. */ +export interface WebhookCertainRunCondition { + actorRunId: NonNullable<GeneratedWebhookCondition['actorRunId']>; +} + +/** + * The keys of the spec's flat `WebhookCondition` schema, exactly one of which is set per condition. + * The published type is a union of one-key variants instead, so each key is reinstated as required by + * the variant that owns it. + */ +export type WebhookConditionKey = 'actorId' | 'actorTaskId' | 'actorRunId'; + +/** + * Condition that determines when a webhook should be triggered. + * + * The spec models this as one flat object with all three ids optional and nullable. The published type + * stays a union of single-id variants: exactly one of them applies to any given webhook, and this same + * type backs `WebhookUpdateData`, where the flat shape would let a caller send none of them or all + * three at once. + */ +export type WebhookCondition = + | WebhookAnyRunOfActorCondition + | WebhookAnyRunOfActorTaskCondition + | WebhookCertainRunCondition; + +export interface WebhookLastDispatchRePointed { + status: WebhookDispatchStatus; +} + +/** + * The summary of a webhook's most recent dispatch that the webhook resource carries. + * + * The spec names this schema `ExampleWebhookDispatch`. + */ +export interface WebhookLastDispatch + extends Omit<Schemas['ExampleWebhookDispatch'], keyof WebhookLastDispatchRePointed>, WebhookLastDispatchRePointed {} + +/** + * Fields the API returns on a webhook that the OpenAPI spec does not describe yet. + * + * The spec does carry `isApifyIntegration` on `WebhookShort`, the listing shape, and simply omits it + * from the full `Webhook` schema. + * + * TODO: Remove once the spec covers it. + */ +export interface WebhookSpecGaps { + isApifyIntegration?: boolean; +} + +export interface WebhookRePointed { + condition: WebhookCondition; + stats?: WebhookStats | null; + lastDispatch?: WebhookLastDispatch | null; + eventTypes: WebhookEventType[]; +} + +/** + * Represents a webhook configuration. + * + * Webhooks send HTTP POST requests to specified URLs when certain events occur + * (e.g., Actor run succeeds, fails, or times out). + */ +export interface Webhook extends Omit<Schemas['Webhook'], keyof WebhookRePointed>, WebhookRePointed, WebhookSpecGaps {} + +type GeneratedScheduleActionRunInput = Schemas['ScheduleActionRunInput']; + +/** + * Types of actions that can be scheduled. + * + * Declared here rather than in `./resource_clients/schedule` so that the action types can reference it + * without closing an import cycle. It is re-exported from there, so the public name and import path are + * unchanged. + */ +export enum ScheduleActions { + RunActor = 'RUN_ACTOR', + RunActorTask = 'RUN_ACTOR_TASK', +} + +/** Input configuration for a scheduled Actor run. */ +export interface ScheduledActorRunInput extends GeneratedScheduleActionRunInput {} + +/** + * Run options for a scheduled Actor run. + * + * The spec reuses its `TaskOptions` schema here; the published name is kept as it is. + */ +export interface ScheduledActorRunOptions extends GeneratedTaskOptions {} + +export interface ScheduleActionRunActorRePointed { + type: ScheduleActions.RunActor; + runInput?: ScheduledActorRunInput | null; + runOptions?: ScheduledActorRunOptions | null; +} + +/** Scheduled action to run an Actor. */ +export interface ScheduleActionRunActor + extends + Omit<Schemas['ScheduleActionRunActor'], keyof ScheduleActionRunActorRePointed>, + ScheduleActionRunActorRePointed {} + +export interface ScheduleActionRunActorTaskRePointed { + type: ScheduleActions.RunActorTask; +} + +/** Scheduled action to run an Actor task. */ +export interface ScheduleActionRunActorTask + extends + Omit<Schemas['ScheduleActionRunActorTask'], keyof ScheduleActionRunActorTaskRePointed>, + ScheduleActionRunActorTaskRePointed {} + +/** Union type representing all possible scheduled actions. */ +export type ScheduleAction = ScheduleActionRunActor | ScheduleActionRunActorTask; + +export interface ScheduleRePointed { + actions: ScheduleAction[]; +} + +export interface ScheduleClientNarrowings { + // The spec types the timezone as a bare `string`. The published type is the curated IANA union from + // `./timezones`, which is also what `ScheduleCreateOrUpdateData` accepts, so widening it would drop + // the completion and typo-checking that is the whole reason the union exists. + timezone: Timezone; +} + +/** + * Represents a schedule for automated Actor or Task runs. + * + * Schedules use cron expressions to define when Actors or Tasks should run automatically. + */ +export interface Schedule + extends + Omit<Schemas['Schedule'], keyof ScheduleRePointed | keyof ScheduleClientNarrowings>, + ScheduleRePointed, + ScheduleClientNarrowings {} + +type GeneratedProfile = Schemas['Profile']; +type GeneratedProxy = Schemas['Proxy']; +type GeneratedProxyGroup = Schemas['ProxyGroup']; +type GeneratedPlan = Schemas['Plan']; +type GeneratedEffectivePlatformFeature = Schemas['EffectivePlatformFeature']; +type GeneratedEffectivePlatformFeatures = Schemas['EffectivePlatformFeatures']; +type GeneratedUsageCycle = Schemas['UsageCycle']; +type GeneratedPriceTiers = Schemas['PriceTiers']; +type GeneratedUsageItem = Schemas['UsageItem']; +type GeneratedDailyServiceUsages = Schemas['DailyServiceUsages']; +type GeneratedLimits = Schemas['Limits']; +type GeneratedCurrent = Schemas['Current']; + +/** + * Platform features a plan can enable. + * + * This enum is no longer the element type of `UserPlan.enabledPlatformFeatures`, which the spec types + * as a plain `string[]`: the platform has features this list never gained -- `PROXY_RESIDENTIAL`, + * `ACTORS_PUBLIC_ALL` and `ACTORS_PUBLIC_DEVELOPER` all appear as keys of `EffectivePlatformFeatures` + * -- so using it there promised a completeness that was not real. It stays published for comparisons. + * + * Declared here rather than in `./resource_clients/user` so the user types can live alongside it. It is + * re-exported from there, so the public name and import path are unchanged. + */ +export enum PlatformFeature { + Actors = 'ACTORS', + Storage = 'STORAGE', + ProxySERPS = 'PROXY_SERPS', + Scheduler = 'SCHEDULER', + Webhooks = 'WEBHOOKS', + Proxy = 'PROXY', + ProxyExternalAccess = 'PROXY_EXTERNAL_ACCESS', +} + +/** The public part of a user's profile. */ +export interface UserProfile extends GeneratedProfile {} + +/** A user's proxy credentials and the groups they may use. */ +export interface UserProxy extends GeneratedProxy {} + +/** One proxy group available to a user. */ +export interface ProxyGroup extends GeneratedProxyGroup {} + +/** Whether one platform feature is enabled for a user, and why not if it is off. */ +export interface EffectivePlatformFeature extends GeneratedEffectivePlatformFeature {} + +/** The effective state of every platform feature for a user. */ +export interface EffectivePlatformFeatures extends GeneratedEffectivePlatformFeatures {} + +export interface UserPlanRePointed { + availableProxyGroups: Record<string, number>; +} + +/** The subscription plan a user is on, with the quotas it grants. */ +export interface UserPlan extends Omit<GeneratedPlan, keyof UserPlanRePointed>, UserPlanRePointed {} + +export interface UserRePointed { + profile?: UserProfile; + proxy?: UserProxy; +} + +export interface UserSpecNarrowings { + // `plan`, `effectivePlatformFeatures` and `isPaying` are required on the spec's `UserPrivateInfo`, + // which is the schema this type is built on. They are optional here because the same published type + // also describes `GET /v2/users/{userId}`, whose `UserPublicInfo` response carries none of the three. + plan?: UserPlan; + effectivePlatformFeatures?: EffectivePlatformFeatures; + isPaying?: boolean; +} + +/** + * A user account. + * + * The private fields are only populated for `GET /v2/users/me`, which needs a token; the public + * endpoint returns the username and profile alone. + */ +export interface User + extends + Omit<Schemas['UserPrivateInfo'], keyof UserRePointed | keyof UserSpecNarrowings>, + UserRePointed, + UserSpecNarrowings {} + +/** The start and end of a billing cycle. */ +export interface UsageCycle extends GeneratedUsageCycle {} + +/** The start and end of a monthly billing cycle. The spec reuses its `UsageCycle` schema here. */ +export interface MonthlyUsageCycle extends GeneratedUsageCycle {} + +/** One tier of a volume-discounted price. The spec names this schema `PriceTiers`. */ +export interface PriceTier extends GeneratedPriceTiers {} + +export interface UsageItemRePointed { + priceTiers?: PriceTier[]; +} + +/** What one service cost over a period, before and after volume discounts. */ +export interface UsageItem extends Omit<GeneratedUsageItem, keyof UsageItemRePointed>, UsageItemRePointed {} + +/** + * Usage of each service, keyed by service name such as `ACTOR_COMPUTE_UNITS`. + * + * The spec names the monthly map `MonthlyServiceUsage` and the per-day one `ServiceUsage`. The two are + * structurally identical, so the published type stays single. + */ +export interface ServiceUsage { + [service: string]: UsageItem; +} + +export interface DailyServiceUsageRePointed { + serviceUsage: ServiceUsage; +} + +export interface DailyServiceUsageClientConversions { + // `UserClient.monthlyUsage()` passes a matcher that converts this field as well as the `*At` ones, + // so the caller is handed a `Date`. The spec types the wire value as a plain string, and the field + // does not end in `At`, so nothing else would reveal the conversion. + date: Date; +} + +/** A single day's usage within a monthly cycle. The spec names this schema `DailyServiceUsages`. */ +export interface DailyServiceUsage + extends + Omit<GeneratedDailyServiceUsages, keyof DailyServiceUsageRePointed | keyof DailyServiceUsageClientConversions>, + DailyServiceUsageRePointed, + DailyServiceUsageClientConversions {} + +export interface MonthlyUsageRePointed { + usageCycle: UsageCycle; + monthlyServiceUsage: ServiceUsage; + dailyServiceUsages: DailyServiceUsage[]; +} + +/** A user's platform usage over the current monthly cycle, broken down by service. */ +export interface MonthlyUsage + extends Omit<Schemas['MonthlyUsage'], keyof MonthlyUsageRePointed>, MonthlyUsageRePointed {} + +/** The quotas a user's plan grants. */ +export interface Limits extends GeneratedLimits {} + +/** How much of each quota a user has consumed in the current cycle. */ +export interface Current extends GeneratedCurrent {} + +export interface AccountAndUsageLimitsRePointed { + // The spec types this with its `UsageCycle` schema; the published `MonthlyUsageCycle` name is kept. + monthlyUsageCycle: MonthlyUsageCycle; + limits: Limits; + current: Current; +} + +/** A user's quotas together with their current consumption. */ +export interface AccountAndUsageLimits + extends Omit<Schemas['AccountLimits'], keyof AccountAndUsageLimitsRePointed>, AccountAndUsageLimitsRePointed {} + +type GeneratedRequestQueueStats = Schemas['RequestQueueStats']; +type GeneratedHeadRequest = Schemas['HeadRequest']; +type GeneratedLockedHeadRequest = Schemas['LockedHeadRequest']; +type GeneratedRequestRegistration = Schemas['RequestRegistration']; +type GeneratedRequestLockInfo = Schemas['RequestLockInfo']; +type GeneratedUnlockRequestsResult = Schemas['UnlockRequestsResult']; +type GeneratedBatchAddResult = Schemas['BatchAddResult']; +type GeneratedRequest = Schemas['Request']; + +/** HTTP methods supported by Request Queue requests. */ +export type AllowedHttpMethods = Schemas['HttpMethod']; + +/** Statistics about Request Queue usage and storage. */ +export interface RequestQueueStats extends GeneratedRequestQueueStats {} + +/** + * Fields the API returns on a request queue that the OpenAPI spec does not describe yet. + * + * The spec does carry `username` and `expireAt` on `RequestQueueShort`, the listing shape, and simply + * omits both from the full `RequestQueue` schema. `title` is absent from either. + * + * TODO: Remove once the spec covers them. + */ +export interface RequestQueueSpecGaps { + title?: string; + username?: string; + // A `Date`, not the `string` the wire carries: the key ends in `At`, so `parseDateFields()` converts + // it, and `RequestQueueShort` types it as a date-time too. + expireAt?: Date; +} + +export interface RequestQueueRePointed { + stats?: RequestQueueStats; +} + +export interface RequestQueueSpecNarrowings { + // Spec omits the `null` the API can return for a storage that follows the owner's user setting. + generalAccess?: STORAGE_GENERAL_ACCESS | null; + // Spec lists `consoleUrl` as required on the full resource, and the client types the items of + // `requestQueues().list()` as this same model. The listing is described by `RequestQueueShort`, which + // has no `consoleUrl` at all, so a required one would type-check and then be `undefined` per item. + consoleUrl?: string; +} + +/** + * Represents a Request Queue storage on the Apify platform. + * + * Request queues store URLs (requests) to be processed by web crawlers. They provide + * automatic deduplication, request locking for parallel processing, and persistence. + */ +export interface RequestQueue + extends + Omit<Schemas['RequestQueue'], keyof RequestQueueRePointed | keyof RequestQueueSpecNarrowings>, + RequestQueueRePointed, + RequestQueueSpecNarrowings, + RequestQueueSpecGaps {} + +/** Simplified request information used in queue-head results. */ +export interface RequestQueueClientListItem extends GeneratedHeadRequest {} + +/** A queue-head request that has been locked for processing, so it also reports its lock expiry. */ +export interface RequestQueueClientLockedListItem extends GeneratedLockedHeadRequest {} + +export interface RequestQueueClientListHeadResultRePointed { + items: RequestQueueClientListItem[]; +} + +/** Result of listing requests from the queue head. */ +export interface RequestQueueClientListHeadResult + extends + Omit<Schemas['RequestQueueHead'], keyof RequestQueueClientListHeadResultRePointed>, + RequestQueueClientListHeadResultRePointed {} + +export interface RequestQueueClientListAndLockHeadResultRePointed { + // The locked element type, which the plain head result does not use. + items: RequestQueueClientLockedListItem[]; +} + +/** + * Result of listing and locking requests from the queue head. + * + * This no longer extends {@link RequestQueueClientListHeadResult}. The spec describes the two as + * separate schemas that disagree about which fields are required, and the locked variant carries a + * different element type, so both are derived independently. + */ +export interface RequestQueueClientListAndLockHeadResult + extends + Omit<Schemas['LockedRequestQueueHead'], keyof RequestQueueClientListAndLockHeadResultRePointed>, + RequestQueueClientListAndLockHeadResultRePointed {} + +/** + * Complete schema for a request in the queue. + * + * Represents a URL to be crawled along with its metadata, retry information, and custom data. + */ +export interface RequestQueueClientRequestSchema extends GeneratedRequest {} + +/** + * A request as the caller submits it to the queue. + * + * The API assigns the id, but a unique key and a URL are both required. The spec marks them optional on + * the stored `Request` schema, which describes a response rather than a submission. + */ +export type RequestQueueClientRequestToAdd = Omit<RequestQueueClientRequestSchema, 'id' | 'uniqueKey' | 'url'> & + Required<Pick<RequestQueueClientRequestSchema, 'uniqueKey' | 'url'>>; + +export interface RequestQueueClientListRequestsResultRePointed { + items: RequestQueueClientRequestSchema[]; +} + +/** Result of listing all requests in the queue. */ +export interface RequestQueueClientListRequestsResult + extends + Omit<Schemas['ListOfRequests'], keyof RequestQueueClientListRequestsResultRePointed>, + RequestQueueClientListRequestsResultRePointed {} + +/** Result of adding a request to the queue. */ +export interface RequestQueueClientAddRequestResult extends GeneratedRequestRegistration {} + +/** Result of prolonging a request lock. */ +export interface RequestQueueClientProlongRequestLockResult extends GeneratedRequestLockInfo {} + +/** Result of unlocking requests in the queue. */ +export interface RequestQueueClientUnlockRequestsResult extends GeneratedUnlockRequestsResult {} + +/** + * Result of a batch operation on requests. + * + * Contains lists of successfully processed and unprocessed requests. + */ +export interface RequestQueueClientBatchRequestsOperationResult extends GeneratedBatchAddResult {} diff --git a/src/resource_clients/actor.ts b/src/resource_clients/actor.ts index 90e9bdd6e..7f3670161 100644 --- a/src/resource_clients/actor.ts +++ b/src/resource_clients/actor.ts @@ -1,14 +1,13 @@ import ow from 'ow'; -import type { RUN_GENERAL_ACCESS } from '@apify/consts'; import { ACTOR_JOB_STATUSES, ACTOR_PERMISSION_LEVEL, META_ORIGINS } from '@apify/consts'; import { Log } from '@apify/log'; import type { ApiClientSubResourceOptions } from '../base/api_client'; import { ResourceClient } from '../base/resource_client'; import type { ApifyRequestConfig } from '../http_client'; +import type { Actor, ActorRun } from '../models'; import { cast, parseDateFields, pluckData, stringifyWebhooksToBase64 } from '../utils'; -import type { ActorVersion } from './actor_version'; import { ActorVersionClient } from './actor_version'; import { ActorVersionCollectionClient } from './actor_version_collection'; import type { Build, BuildClientGetOptions } from './build'; @@ -20,6 +19,36 @@ import type { WebhookUpdateData } from './webhook'; import { WebhookCollectionClient } from './webhook_collection'; import type { ValueOf } from 'type-fest'; +export type { + Actor, + ActorChargeEvent, + ActorChargeEvents, + ActorDefaultRunOptions, + ActorDefinition, + ActorExampleRunInput, + ActorRun, + ActorRunListItem, + ActorRunMeta, + ActorRunMetamorph, + ActorRunOptions, + ActorRunPricingInfo, + ActorRunStats, + ActorRunStorageIds, + ActorRunUsage, + ActorStandby, + ActorStats, + ActorTaggedBuild, + ActorTaggedBuilds, + FlatPricePerMonthActorPricingInfo, + FreeActorPricingInfo, + PricePerDatasetItemActorPricingInfo, + PricePerEventActorPricingInfo, + TieredPricingPerDatasetItem, + TieredPricingPerDatasetItemEntry, + TieredPricingPerEvent, + TieredPricingPerEventEntry, +} from '../models'; + /** * Client for managing a specific Actor. * @@ -508,122 +537,6 @@ export class ActorClient extends ResourceClient { } } -/** - * Represents an Actor in the Apify platform. - * - * Actors are serverless computing units that can perform arbitrary tasks such as web scraping, - * data processing, automation, and more. Each Actor has versions, builds, and can be executed - * with different configurations. - */ -export interface Actor { - /** Unique Actor ID */ - id: string; - /** ID of the user who owns the Actor */ - userId: string; - /** Unique name of the Actor (used in API paths, e.g., 'my-actor') */ - name: string; - /** Username of the Actor's owner */ - username: string; - /** Detailed description of what the Actor does */ - description?: string; - /** @deprecated Use defaultRunOptions.restartOnError instead */ - restartOnError?: boolean; - /** Whether the Actor is publicly available in Apify Store */ - isPublic: boolean; - /** Whether the Actor can be run by anonymous users without authentication */ - isAnonymouslyRunnable?: boolean; - /** Timestamp when the Actor was created */ - createdAt: Date; - /** Timestamp when the Actor was last modified */ - modifiedAt: Date; - /** Usage and run statistics for the Actor */ - stats: ActorStats; - /** All versions of this Actor */ - versions: ActorVersion[]; - /** Pricing information for pay-per-result or pay-per-event Actors */ - pricingInfos?: ActorRunPricingInfo[]; - /** Default configuration options for Actor runs */ - defaultRunOptions: ActorDefaultRunOptions; - /** Example input to help users understand how to use the Actor */ - exampleRunInput?: ActorExampleRunInput; - /** Whether the Actor is deprecated and should not be used */ - isDeprecated?: boolean; - /** Deployment key used for automated deployments */ - deploymentKey: string; - /** Human-readable title of the Actor (displayed in UI) */ - title?: string; - /** Mapping of tags to specific builds (e.g., 'latest', 'beta') */ - taggedBuilds?: ActorTaggedBuilds; - /** SEO-optimized title for the Actor's public page */ - seoTitle?: string; - /** SEO-optimized description for the Actor's public page */ - seoDescription?: string; - /** Categories the Actor belongs to (e.g., 'ECOMMERCE', 'SCRAPING') */ - categories?: string[]; - /** Standby mode configuration for keeping Actor warm and responsive */ - actorStandby?: ActorStandby & { - isEnabled: boolean; - }; - /** Permission level of the Actor on Apify platform */ - actorPermissionLevel: ACTOR_PERMISSION_LEVEL; - /** A brief, LLM-generated readme summary */ - readmeSummary?: string; -} - -/** - * Statistics about Actor usage and activity. - */ -export interface ActorStats { - /** Total number of builds created for this Actor */ - totalBuilds: number; - /** Total number of times this Actor has been run */ - totalRuns: number; - /** Total number of unique users who have run this Actor */ - totalUsers: number; - /** Number of unique users in the last 7 days */ - totalUsers7Days: number; - /** Number of unique users in the last 30 days */ - totalUsers30Days: number; - /** Number of unique users in the last 90 days */ - totalUsers90Days: number; - /** Total number of times this Actor was used via metamorph */ - totalMetamorphs: number; - /** Timestamp when the last run was started */ - lastRunStartedAt: Date; -} - -/** - * Default configuration options for Actor runs. - */ -export interface ActorDefaultRunOptions { - build: string; - timeoutSecs: number; - memoryMbytes: number; - restartOnError?: boolean; -} - -/** - * Example input data to demonstrate Actor usage. - */ -export interface ActorExampleRunInput { - body: string; - contentType: string; -} - -/** - * Mapping of build tags (e.g., 'latest', 'beta') to their corresponding build information. - */ -export type ActorTaggedBuilds = Record<string, ActorTaggedBuild>; - -/** - * Information about a specific tagged build. - */ -export interface ActorTaggedBuild { - buildId?: string; - buildNumber?: string; - finishedAt?: Date; -} - /** * Fields that can be updated when modifying an Actor. */ @@ -647,22 +560,6 @@ export type ActorUpdateOptions = Partial< > >; -/** - * Configuration for Actor standby mode. - * - * Standby mode keeps Actor containers warm and ready to process requests with minimal latency. - * This is useful for Actors that need to respond quickly to incoming requests. - */ -export interface ActorStandby { - build?: string; - desiredRequestsPerActorRun?: number; - disableStandbyFieldsOverride?: boolean; - idleTimeoutSecs?: number; - maxRequestsPerActorRun?: number; - memoryMbytes?: number; - shouldPassActorInput?: boolean; -} - export interface ActorStartOptions { /** * Tag or number of the Actor build to run (e.g. `beta` or `1.2.345`). @@ -755,138 +652,6 @@ export interface ActorCallOptions extends Omit<ActorStartOptions, 'waitForFinish log?: Log | null | 'default'; } -/** - * Simplified Actor run information used in list results. - * - * Contains basic information about a run without detailed statistics. - */ -export interface ActorRunListItem { - id: string; - actId: string; - actorTaskId?: string; - startedAt: Date; - finishedAt: Date; - status: (typeof ACTOR_JOB_STATUSES)[keyof typeof ACTOR_JOB_STATUSES]; - meta: ActorRunMeta; - buildId: string; - buildNumber: string; - defaultKeyValueStoreId: string; - defaultDatasetId: string; - defaultRequestQueueId: string; - usageTotalUsd?: number; -} - -export interface ActorRunStorageIds { - /** Aliased dataset IDs for this run. */ - datasets: { default: string; [alias: string]: string }; - /** Aliased key-value store IDs for this run. */ - keyValueStores: { default: string; [alias: string]: string }; - /** Aliased request queue IDs for this run. */ - requestQueues: { default: string; [alias: string]: string }; -} - -/** - * Complete Actor run information including statistics and usage details. - * - * Represents a single execution of an Actor with all its configuration, status, - * and resource usage information. - */ -export interface ActorRun extends ActorRunListItem { - userId: string; - statusMessage?: string; - stats: ActorRunStats; - options: ActorRunOptions; - exitCode?: number; - containerUrl: string; - isContainerServerReady?: boolean; - gitBranchName?: string; - usage?: ActorRunUsage; - usageUsd?: ActorRunUsage; - pricingInfo?: ActorRunPricingInfo; - chargedEventCounts?: Record<string, number>; - generalAccess?: RUN_GENERAL_ACCESS | null; - storageIds?: ActorRunStorageIds; -} - -/** - * Resource usage metrics for an Actor run. - * - * All values represent the total consumption during the run's lifetime. - */ -export interface ActorRunUsage { - /** Compute units consumed (combines CPU and memory usage over time) */ - ACTOR_COMPUTE_UNITS?: number; - /** Number of Dataset read operations */ - DATASET_READS?: number; - /** Number of Dataset write operations */ - DATASET_WRITES?: number; - /** Number of key-value store read operations */ - KEY_VALUE_STORE_READS?: number; - /** Number of key-value store write operations */ - KEY_VALUE_STORE_WRITES?: number; - /** Number of key-value store list operations */ - KEY_VALUE_STORE_LISTS?: number; - /** Number of Request queue read operations */ - REQUEST_QUEUE_READS?: number; - /** Number of Request queue write operations */ - REQUEST_QUEUE_WRITES?: number; - /** Internal data transfer within Apify platform (in gigabytes) */ - DATA_TRANSFER_INTERNAL_GBYTES?: number; - /** External data transfer to/from internet (in gigabytes) */ - DATA_TRANSFER_EXTERNAL_GBYTES?: number; - /** Residential proxy data transfer (in gigabytes) */ - PROXY_RESIDENTIAL_TRANSFER_GBYTES?: number; - /** Number of SERP (Search Engine Results Page) proxy requests */ - PROXY_SERPS?: number; -} - -/** - * Metadata about how an Actor run was initiated. - */ -export interface ActorRunMeta { - origin: string; - clientIp?: string; - userAgent: string; -} - -/** - * Runtime statistics for an Actor run. - * - * Provides detailed metrics about resource consumption and performance during the run. - */ -export interface ActorRunStats { - inputBodyLen: number; - restartCount: number; - resurrectCount: number; - memAvgBytes: number; - memMaxBytes: number; - memCurrentBytes: number; - cpuAvgUsage: number; - cpuMaxUsage: number; - cpuCurrentUsage: number; - netRxBytes: number; - netTxBytes: number; - durationMillis: number; - runTimeSecs: number; - metamorph: number; - computeUnits: number; -} - -/** - * Configuration options used for an Actor run. - * - * These are the actual options that were applied to the run (may differ from requested options). - */ -export interface ActorRunOptions { - build: string; - timeoutSecs: number; - memoryMbytes: number; - diskMbytes: number; - maxItems?: number; - maxTotalChargeUsd?: number; - restartOnError?: boolean; -} - /** * Options for validating an Actor input. */ @@ -923,115 +688,3 @@ export interface ActorLastRunOptions { status?: ValueOf<typeof ACTOR_JOB_STATUSES>; origin?: ValueOf<typeof META_ORIGINS>; } - -/** - * Actor definition from the `.actor/actor.json` file. - * - * Contains the Actor's configuration, input schema, and other metadata. - * @see https://docs.apify.com/platform/actors/development/actor-definition/actor-json - */ -export interface ActorDefinition { - actorSpecification: number; - name: string; - version: string; - buildTag?: string; - environmentVariables?: Record<string, string>; - dockerfile?: string; - dockerContextDir?: string; - readme?: string | null; - /** - * Input schema for the Actor. - * @see https://docs.apify.com/platform/actors/development/actor-definition/input-schema - */ - input?: object | null; - /** - * Output schema for the Actor. - * @see https://docs.apify.com/platform/actors/development/actor-definition/output-schema - */ - output?: object | null; - changelog?: string | null; - storages?: { - dataset?: object; - }; - minMemoryMbytes?: number; - maxMemoryMbytes?: number; - usesStandbyMode?: boolean; -} - -interface CommonActorPricingInfo { - /** In [0, 1], fraction of pricePerUnitUsd that goes to Apify */ - apifyMarginPercentage: number; - /** When this pricing info record has been created */ - createdAt: Date; - /** Since when is this pricing info record effective for a given Actor */ - startedAt: Date; - notifiedAboutFutureChangeAt?: Date; - notifiedAboutChangeAt?: Date; - reasonForChange?: string; -} - -/** - * Pricing information for free Actors. - */ -export interface FreeActorPricingInfo extends CommonActorPricingInfo { - pricingModel: 'FREE'; -} - -/** - * Pricing information for Actors with a flat monthly subscription fee. - */ -export interface FlatPricePerMonthActorPricingInfo extends CommonActorPricingInfo { - pricingModel: 'FLAT_PRICE_PER_MONTH'; - /** For how long this Actor can be used for free in trial period */ - trialMinutes?: number; - /** Monthly flat price in USD */ - pricePerUnitUsd: number; -} - -/** - * Pricing information for pay-per-result Actors. - * - * These Actors charge based on the number of items saved to the dataset. - */ -export interface PricePerDatasetItemActorPricingInfo extends CommonActorPricingInfo { - pricingModel: 'PRICE_PER_DATASET_ITEM'; - /** Name of the unit that is being charged */ - unitName?: string; - pricePerUnitUsd: number; -} - -/** - * Definition of a chargeable event for pay-per-event Actors. - */ -export interface ActorChargeEvent { - eventPriceUsd: number; - eventTitle: string; - eventDescription?: string; -} - -/** - * Mapping of event names to their pricing information. - */ -export type ActorChargeEvents = Record<string, ActorChargeEvent>; - -/** - * Pricing information for pay-per-event Actors. - * - * These Actors charge based on specific events (e.g., emails sent, API calls made). - */ -export interface PricePerEventActorPricingInfo extends CommonActorPricingInfo { - pricingModel: 'PAY_PER_EVENT'; - pricingPerEvent: { - actorChargeEvents: ActorChargeEvents; - }; - minimalMaxTotalChargeUsd?: number; -} - -/** - * Union type representing all possible Actor pricing models. - */ -export type ActorRunPricingInfo = - | PricePerEventActorPricingInfo - | PricePerDatasetItemActorPricingInfo - | FlatPricePerMonthActorPricingInfo - | FreeActorPricingInfo; diff --git a/src/resource_clients/actor_collection.ts b/src/resource_clients/actor_collection.ts index 2a7708e9f..82adabb7a 100644 --- a/src/resource_clients/actor_collection.ts +++ b/src/resource_clients/actor_collection.ts @@ -4,10 +4,13 @@ import type { ACTOR_PERMISSION_LEVEL } from '@apify/consts'; import type { ApiClientSubResourceOptions } from '../base/api_client'; import { ResourceCollectionClient } from '../base/resource_collection_client'; +import type { ActorCollectionListItem } from '../models'; import type { PaginatedIterator, PaginatedList, PaginationOptions } from '../utils'; import type { Actor, ActorDefaultRunOptions, ActorExampleRunInput, ActorStandby } from './actor'; import type { ActorVersion } from './actor_version'; +export type { ActorCollectionListItem } from '../models'; + /** * Client for managing the collection of Actors in your account. * @@ -102,14 +105,6 @@ export interface ActorCollectionListOptions extends PaginationOptions { sortBy?: ActorListSortBy; } -export interface ActorCollectionListItem { - id: string; - createdAt: Date; - modifiedAt: Date; - name: string; - username: string; -} - export type ActorCollectionListResult = PaginatedList<ActorCollectionListItem>; export interface ActorCollectionCreateOptions { diff --git a/src/resource_clients/actor_version.ts b/src/resource_clients/actor_version.ts index 72f0a05da..6c523d557 100644 --- a/src/resource_clients/actor_version.ts +++ b/src/resource_clients/actor_version.ts @@ -2,9 +2,25 @@ import ow from 'ow'; import type { ApiClientSubResourceOptions } from '../base/api_client'; import { ResourceClient } from '../base/resource_client'; +import type { ActorVersion, FinalActorVersion } from '../models'; import { ActorEnvVarClient } from './actor_env_var'; import { ActorEnvVarCollectionClient } from './actor_env_var_collection'; +export type { + ActorEnvironmentVariable, + ActorVersion, + ActorVersionGitHubGist, + ActorVersionGitRepo, + ActorVersionSourceCode, + ActorVersionSourceFile, + ActorVersionSourceFiles, + ActorVersionSourceFolder, + ActorVersionTarball, + BaseActorVersion, + FinalActorVersion, +} from '../models'; +export { ActorSourceType } from '../models'; + /** * Client for managing a specific Actor version. * @@ -95,50 +111,3 @@ export class ActorVersionClient extends ResourceClient { return new ActorEnvVarCollectionClient(this._subResourceOptions()); } } - -export interface BaseActorVersion<SourceType extends ActorSourceType> { - versionNumber?: string; - sourceType: SourceType; - envVars?: ActorEnvironmentVariable[]; - applyEnvVarsToBuild?: boolean; - buildTag?: string; -} - -export interface ActorVersionSourceFiles extends BaseActorVersion<ActorSourceType.SourceFiles> { - sourceFiles: ActorVersionSourceFile[]; -} - -export interface ActorVersionSourceFile { - name: string; - format: 'TEXT' | 'BASE64'; - content: string; -} - -export interface ActorVersionGitRepo extends BaseActorVersion<ActorSourceType.GitRepo> { - gitRepoUrl: string; -} - -export interface ActorVersionTarball extends BaseActorVersion<ActorSourceType.Tarball> { - tarballUrl: string; -} - -export interface ActorVersionGitHubGist extends BaseActorVersion<ActorSourceType.GitHubGist> { - gitHubGistUrl: string; -} - -export enum ActorSourceType { - SourceFiles = 'SOURCE_FILES', - GitRepo = 'GIT_REPO', - Tarball = 'TARBALL', - GitHubGist = 'GITHUB_GIST', -} - -export interface ActorEnvironmentVariable { - name?: string; - value?: string; - isSecret?: boolean; -} - -export type ActorVersion = ActorVersionSourceFiles | ActorVersionGitRepo | ActorVersionTarball | ActorVersionGitHubGist; - -export type FinalActorVersion = ActorVersion & Required<Pick<ActorVersion, 'versionNumber' | 'buildTag'>>; diff --git a/src/resource_clients/build.ts b/src/resource_clients/build.ts index ac17ab697..770770e64 100644 --- a/src/resource_clients/build.ts +++ b/src/resource_clients/build.ts @@ -1,13 +1,13 @@ import ow from 'ow'; -import type { ACT_JOB_TERMINAL_STATUSES } from '@apify/consts'; - import type { ApiClientSubResourceOptions } from '../base/api_client'; import { ResourceClient } from '../base/resource_client'; +import type { Build } from '../models'; import { cast, parseDateFields, pluckData } from '../utils'; -import type { ActorDefinition } from './actor'; import { LogClient } from './log'; +export type { Build, BuildMeta, BuildOptions, BuildStats, BuildUsage } from '../models'; + /** * Client for managing a specific Actor build. * @@ -201,72 +201,6 @@ export interface BuildClientWaitForFinishOptions { waitSecs?: number; } -/** - * Metadata about how a Build was initiated. - */ -export interface BuildMeta { - origin: string; - clientIp: string; - userAgent: string; -} - -/** - * Represents an Actor build. - * - * Builds compile Actor source code and prepare it for execution. Each build has a unique ID - * and can be tagged (e.g., 'latest', 'beta') for easy reference. - */ -export interface Build { - id: string; - actId: string; - userId: string; - startedAt: Date; - finishedAt?: Date; - status: (typeof ACT_JOB_TERMINAL_STATUSES)[number]; - meta: BuildMeta; - stats?: BuildStats; - options?: BuildOptions; - /** - * @deprecated This property is deprecated in favor of `actorDefinition.input`. - */ - inputSchema?: string; - /** - * @deprecated This property is deprecated in favor of `actorDefinition.readme`. - */ - readme?: string; - buildNumber: string; - usage?: BuildUsage; - usageTotalUsd?: number; - usageUsd?: BuildUsage; - actorDefinition?: ActorDefinition; -} - -/** - * Resource usage for an Actor build. - */ -export interface BuildUsage { - ACTOR_COMPUTE_UNITS?: number; -} - -/** - * Runtime statistics for an Actor build. - */ -export interface BuildStats { - durationMillis: number; - runTimeSecs: number; - computeUnits: number; -} - -/** - * Configuration options used for an Actor build. - */ -export interface BuildOptions { - useCache?: boolean; - betaPackages?: boolean; - memoryMbytes?: number; - diskMbytes?: number; -} - /** * OpenAPI specification for an Actor. * diff --git a/src/resource_clients/build_collection.ts b/src/resource_clients/build_collection.ts index 36c4a1a2e..7e858d6d2 100644 --- a/src/resource_clients/build_collection.ts +++ b/src/resource_clients/build_collection.ts @@ -2,8 +2,10 @@ import ow from 'ow'; import type { ApiClientOptionsWithOptionalResourcePath } from '../base/api_client'; import { ResourceCollectionClient } from '../base/resource_collection_client'; +import type { BuildCollectionClientListItem } from '../models'; import type { PaginatedIterator, PaginatedList, PaginationOptions } from '../utils'; -import type { Build } from './build'; + +export type { BuildCollectionClientListItem } from '../models'; /** * Client for managing the collection of Actor builds. @@ -75,7 +77,4 @@ export interface BuildCollectionClientListOptions extends PaginationOptions { desc?: boolean; } -export type BuildCollectionClientListItem = Required<Pick<Build, 'id' | 'status' | 'startedAt' | 'finishedAt'>> & - Partial<Pick<Build, 'meta' | 'usageTotalUsd'>>; - export type BuildCollectionClientListResult = PaginatedList<BuildCollectionClientListItem>; diff --git a/src/resource_clients/dataset.ts b/src/resource_clients/dataset.ts index 4135bfc72..4945c3896 100644 --- a/src/resource_clients/dataset.ts +++ b/src/resource_clients/dataset.ts @@ -12,9 +12,12 @@ import { SMALL_TIMEOUT_MILLIS, } from '../base/resource_client'; import type { ApifyRequestConfig, ApifyResponse } from '../http_client'; +import type { Dataset, DatasetStatistics } from '../models'; import type { PaginatedIterator, PaginatedList, PaginationOptions } from '../utils'; import { applyQueryParamsToUrl, cast, catchNotFoundOrThrow, pluckData } from '../utils'; +export type { Dataset, DatasetStatistics, DatasetStats, FieldStatistics } from '../models'; + /** * Client for managing a specific Dataset. * @@ -405,42 +408,6 @@ export class DatasetClient< } } -/** - * Represents a dataset storage on the Apify platform. - * - * Datasets store structured data as a sequence of items (records). Each item is a JSON object. - * Datasets are useful for storing results from web scraping, crawling, or data processing tasks. - */ -export interface Dataset { - id: string; - name?: string; - title?: string; - userId: string; - username?: string; - createdAt: Date; - modifiedAt: Date; - accessedAt: Date; - itemCount: number; - cleanItemCount: number; - actId?: string; - actRunId?: string; - stats: DatasetStats; - fields: string[]; - generalAccess?: STORAGE_GENERAL_ACCESS | null; - urlSigningSecretKey?: string | null; - itemsPublicUrl: string; -} - -/** - * Statistics about dataset usage and storage. - */ -export interface DatasetStats { - readCount?: number; - writeCount?: number; - deleteCount?: number; - storageBytes?: number; -} - /** * Options for updating a dataset. */ @@ -506,22 +473,3 @@ export interface DatasetClientDownloadItemsOptions extends DatasetClientListItem xmlRoot?: string; xmlRow?: string; } - -/** - * Statistical information about dataset fields. - * - * Provides insights into the data structure and content of the dataset. - */ -export interface DatasetStatistics { - fieldStatistics: Record<string, FieldStatistics>; -} - -/** - * Statistics for a single field in a dataset. - */ -export interface FieldStatistics { - min?: number; - max?: number; - nullCount?: number; - emptyCount?: number; -} diff --git a/src/resource_clients/key_value_store.ts b/src/resource_clients/key_value_store.ts index d6c41f425..ccde2b2cd 100644 --- a/src/resource_clients/key_value_store.ts +++ b/src/resource_clients/key_value_store.ts @@ -16,6 +16,7 @@ import { SMALL_TIMEOUT_MILLIS, } from '../base/resource_client'; import type { ApifyRequestConfig } from '../http_client'; +import type { KeyValueClientListKeysResult, KeyValueListItem, KeyValueStore } from '../models'; import { applyQueryParamsToUrl, cast, @@ -27,6 +28,8 @@ import { pluckData, } from '../utils'; +export type { KeyValueClientListKeysResult, KeyValueListItem, KeyValueStore, KeyValueStoreStats } from '../models'; + /** * Client for managing a specific key-value store. * @@ -172,7 +175,9 @@ export class KeyValueStoreClient extends ResourceClient { while ( currentPage.items.length > 0 && // Continue only if at least some items were returned in the last page. - currentPage.nextExclusiveStartKey !== null && // Continue only if there is some next key. + // Continue only if there is some next key. The API answers with `null` on the last page and + // omits the field entirely for a listing that was not truncated. + currentPage.nextExclusiveStartKey != null && (remainingItems === undefined || remainingItems > 0) // Continue only if the limit was not exceeded. ) { const newOptions = { @@ -506,40 +511,6 @@ export class KeyValueStoreClient extends ResourceClient { } } -/** - * Represents a Key-Value Store storage on the Apify platform. - * - * Key-value stores are used to store arbitrary data records or files. Each record is identified - * by a unique key and can contain any data - JSON objects, strings, binary files, etc. - */ -export interface KeyValueStore { - id: string; - name?: string; - title?: string; - userId: string; - username?: string; - createdAt: Date; - modifiedAt: Date; - accessedAt: Date; - actId?: string; - actRunId?: string; - stats?: KeyValueStoreStats; - generalAccess?: STORAGE_GENERAL_ACCESS | null; - urlSigningSecretKey?: string | null; - keysPublicUrl: string; -} - -/** - * Statistics about Key-Value Store usage and storage. - */ -export interface KeyValueStoreStats { - readCount?: number; - writeCount?: number; - deleteCount?: number; - listCount?: number; - storageBytes?: number; -} - /** * Options for updating a Key-Value Store. */ @@ -569,29 +540,6 @@ export interface KeyValueClientCreateKeysUrlOptions extends KeyValueClientListKe expiresInSecs?: number; } -/** - * Result of listing keys in a Key-Value Store. - * - * Contains paginated list of keys with metadata and pagination information. - */ -export interface KeyValueClientListKeysResult { - count: number; - limit: number; - exclusiveStartKey: string; - isTruncated: boolean; - nextExclusiveStartKey: string; - items: KeyValueListItem[]; -} - -/** - * Metadata about a single key in a Key-Value Store. - */ -export interface KeyValueListItem { - key: string; - size: number; - recordPublicUrl: string; -} - /** * Options for retrieving a record from a Key-Value Store. */ diff --git a/src/resource_clients/request_queue.ts b/src/resource_clients/request_queue.ts index 9d7ee190d..c01007fc1 100644 --- a/src/resource_clients/request_queue.ts +++ b/src/resource_clients/request_queue.ts @@ -9,6 +9,18 @@ import type { ApifyApiError } from '../apify_api_error'; import type { ApiClientSubResourceOptions } from '../base/api_client'; import { MEDIUM_TIMEOUT_MILLIS, ResourceClient, SMALL_TIMEOUT_MILLIS } from '../base/resource_client'; import type { ApifyRequestConfig } from '../http_client'; +import type { + RequestQueue, + RequestQueueClientRequestToAdd, + RequestQueueClientAddRequestResult, + RequestQueueClientBatchRequestsOperationResult, + RequestQueueClientListAndLockHeadResult, + RequestQueueClientListHeadResult, + RequestQueueClientListRequestsResult, + RequestQueueClientProlongRequestLockResult, + RequestQueueClientRequestSchema, + RequestQueueClientUnlockRequestsResult, +} from '../models'; import { cast, catchNotFoundOrThrow, @@ -232,7 +244,7 @@ export class RequestQueueClient extends ResourceClient { * ``` */ async addRequest( - request: Omit<RequestQueueClientRequestSchema, 'id'>, + request: RequestQueueClientRequestToAdd, options: RequestQueueClientAddRequestOptions = {}, ): Promise<RequestQueueClientAddRequestResult> { ow( @@ -269,7 +281,7 @@ export class RequestQueueClient extends ResourceClient { * @private */ protected async _batchAddRequests( - requests: Omit<RequestQueueClientRequestSchema, 'id'>[], + requests: RequestQueueClientRequestToAdd[], options: RequestQueueClientAddRequestOptions = {}, ): Promise<RequestQueueClientBatchRequestsOperationResult> { ow( @@ -305,7 +317,7 @@ export class RequestQueueClient extends ResourceClient { } protected async _batchAddRequestsWithRetries( - requests: Omit<RequestQueueClientRequestSchema, 'id'>[], + requests: RequestQueueClientRequestToAdd[], options: RequestQueueClientBatchAddRequestWithRetriesOptions = {}, ): Promise<RequestQueueClientBatchRequestsOperationResult> { const { @@ -316,10 +328,10 @@ export class RequestQueueClient extends ResourceClient { // Keep track of the requests that remain to be processed (in parameter format) let remainingRequests = requests; // Keep track of the requests that have been processed (in api format) - const processedRequests: ProcessedRequest[] = []; + const processedRequests: RequestQueueClientBatchRequestsOperationResult['processedRequests'] = []; // The requests we have not been able to process in the last call // ie. those we have not been able to process at all - let unprocessedRequests: UnprocessedRequest[] = []; + let unprocessedRequests: RequestQueueClientBatchRequestsOperationResult['unprocessedRequests'] = []; for (let i = 0; i < 1 + maxUnprocessedRequestsRetries; i++) { try { const response = await this._batchAddRequests(remainingRequests, { @@ -409,7 +421,7 @@ export class RequestQueueClient extends ResourceClient { * ``` */ async batchAddRequests( - requests: Omit<RequestQueueClientRequestSchema, 'id'>[], + requests: RequestQueueClientRequestToAdd[], options: RequestQueueClientBatchAddRequestWithRetriesOptions = {}, ): Promise<RequestQueueClientBatchRequestsOperationResult> { const { @@ -816,6 +828,23 @@ export class RequestQueueClient extends ResourceClient { } } +export type { + AllowedHttpMethods, + RequestQueue, + RequestQueueClientAddRequestResult, + RequestQueueClientBatchRequestsOperationResult, + RequestQueueClientListAndLockHeadResult, + RequestQueueClientListHeadResult, + RequestQueueClientListItem, + RequestQueueClientListRequestsResult, + RequestQueueClientLockedListItem, + RequestQueueClientProlongRequestLockResult, + RequestQueueClientRequestSchema, + RequestQueueClientRequestToAdd, + RequestQueueClientUnlockRequestsResult, + RequestQueueStats, +} from '../models'; + /** * User-specific options for RequestQueueClient. */ @@ -824,43 +853,6 @@ export interface RequestQueueUserOptions { timeoutSecs?: number; } -/** - * Represents a Request Queue storage on the Apify platform. - * - * Request queues store URLs (requests) to be processed by web crawlers. They provide - * automatic deduplication, request locking for parallel processing, and persistence. - */ -export interface RequestQueue { - id: string; - name?: string; - title?: string; - userId: string; - username?: string; - createdAt: Date; - modifiedAt: Date; - accessedAt: Date; - expireAt?: string; - totalRequestCount: number; - handledRequestCount: number; - pendingRequestCount: number; - actId?: string; - actRunId?: string; - hadMultipleClients: boolean; - stats: RequestQueueStats; - generalAccess?: STORAGE_GENERAL_ACCESS | null; -} - -/** - * Statistics about Request Queue usage and storage. - */ -export interface RequestQueueStats { - readCount?: number; - writeCount?: number; - deleteCount?: number; - headItemReadCount?: number; - storageBytes?: number; -} - /** * Options for updating a Request Queue. */ @@ -877,16 +869,6 @@ export interface RequestQueueClientListHeadOptions { limit?: number; } -/** - * Result of listing requests from the queue head. - */ -export interface RequestQueueClientListHeadResult { - limit: number; - queueModifiedAt: Date; - hadMultipleClients: boolean; - items: RequestQueueClientListItem[]; -} - export type RequestQueueListRequestsFilter = 'locked' | 'pending'; /** @@ -915,18 +897,6 @@ export interface RequestQueueClientPaginateRequestsOptions { filter?: readonly RequestQueueListRequestsFilter[]; } -/** - * Result of listing all requests in the queue. - */ -export interface RequestQueueClientListRequestsResult { - limit: number; - /** @deprecated Use `cursor` for pagination instead. */ - exclusiveStartId?: string; - cursor?: string; - nextCursor?: string; - items: RequestQueueClientRequestSchema[]; -} - /** * Options for listing and locking requests from the queue head. */ @@ -935,29 +905,6 @@ export interface RequestQueueClientListAndLockHeadOptions { limit?: number; } -/** - * Result of listing and locking requests from the queue head. - * - * Extends {@link RequestQueueClientListHeadResult} with lock information. - */ -export interface RequestQueueClientListAndLockHeadResult extends RequestQueueClientListHeadResult { - lockSecs: number; - queueHasLockedRequests: boolean; - clientKey: string; -} - -/** - * Simplified request information used in list results. - */ -export interface RequestQueueClientListItem { - id: string; - retryCount: number; - uniqueKey: string; - url: string; - method: AllowedHttpMethods; - lockExpiresAt?: Date; -} - export interface RequestQueueClientAddRequestOptions { forefront?: boolean; } @@ -971,10 +918,6 @@ export interface RequestQueueClientDeleteRequestLockOptions { forefront?: boolean; } -export interface RequestQueueClientProlongRequestLockResult { - lockExpiresAt: Date; -} - export interface RequestQueueClientBatchAddRequestWithRetriesOptions { forefront?: boolean; maxUnprocessedRequestsRetries?: number; @@ -982,71 +925,18 @@ export interface RequestQueueClientBatchAddRequestWithRetriesOptions { minDelayBetweenUnprocessedRequestsRetriesMillis?: number; } -/** - * Complete schema for a request in the queue. - * - * Represents a URL to be crawled along with its metadata, retry information, and custom data. - */ -export interface RequestQueueClientRequestSchema { - id: string; - uniqueKey: string; - url: string; - method?: AllowedHttpMethods; - payload?: string; - retryCount?: number; - errorMessages?: string[]; - headers?: Record<string, string>; - userData?: Record<string, unknown>; - handledAt?: string; - noRetry?: boolean; - loadedUrl?: string; -} - -/** - * Result of adding a request to the queue. - */ -export interface RequestQueueClientAddRequestResult { - requestId: string; - wasAlreadyPresent: boolean; - wasAlreadyHandled: boolean; -} - -interface ProcessedRequest { - uniqueKey: string; - requestId: string; - wasAlreadyPresent: boolean; - wasAlreadyHandled: boolean; -} - -interface UnprocessedRequest { - uniqueKey: string; - url: string; - method?: AllowedHttpMethods; -} - -export interface RequestQueueClientUnlockRequestsResult { - unlockedCount: number; -} - -/** - * Result of a batch operation on requests. - * - * Contains lists of successfully processed and unprocessed requests. - */ -export interface RequestQueueClientBatchRequestsOperationResult { - processedRequests: ProcessedRequest[]; - unprocessedRequests: UnprocessedRequest[]; -} - export type RequestQueueClientRequestToDelete = - | Pick<RequestQueueClientRequestSchema, 'id'> - | Pick<RequestQueueClientRequestSchema, 'uniqueKey'>; - -export type RequestQueueClientGetRequestResult = Omit<RequestQueueClientListItem, 'retryCount'>; + // `Required` matters here: both keys are optional on the spec's request schema, so a bare `Pick` + // would let `{}` through and neither branch would identify a request. + | Required<Pick<RequestQueueClientRequestSchema, 'id'>> + | Required<Pick<RequestQueueClientRequestSchema, 'uniqueKey'>>; /** - * HTTP methods supported by Request Queue requests. + * Result of getting a single request from the queue. + * + * `GET /v2/request-queues/{queueId}/requests/{requestId}` answers with the whole request, not the + * queue-head projection this was previously derived from. */ -export type AllowedHttpMethods = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'TRACE' | 'OPTIONS' | 'CONNECT' | 'PATCH'; +export type RequestQueueClientGetRequestResult = RequestQueueClientRequestSchema; export type RequestQueueRequestsAsyncIterable<T> = AsyncIterable<T>; diff --git a/src/resource_clients/schedule.ts b/src/resource_clients/schedule.ts index e7c4bee1a..56a5cb579 100644 --- a/src/resource_clients/schedule.ts +++ b/src/resource_clients/schedule.ts @@ -4,10 +4,20 @@ import type { ApifyApiError } from '../apify_api_error'; import type { ApiClientSubResourceOptions } from '../base/api_client'; import { ResourceClient } from '../base/resource_client'; import type { ApifyRequestConfig } from '../http_client'; -import type { Timezone } from '../timezones'; +import type { Schedule, ScheduleAction } from '../models'; import type { DistributiveOptional } from '../utils'; import { cast, catchNotFoundOrThrow, parseDateFields, pluckData } from '../utils'; +export type { + Schedule, + ScheduleAction, + ScheduleActionRunActor, + ScheduleActionRunActorTask, + ScheduledActorRunInput, + ScheduledActorRunOptions, +} from '../models'; +export { ScheduleActions } from '../models'; + /** * Client for managing a specific Schedule. * @@ -96,31 +106,6 @@ export class ScheduleClient extends ResourceClient { } } -/** - * Represents a schedule for automated Actor or Task runs. - * - * Schedules use cron expressions to define when Actors or Tasks should run automatically. - */ -export interface Schedule { - id: string; - userId: string; - name: string; - title?: string; - cronExpression: string; - timezone: Timezone; - isEnabled: boolean; - isExclusive: boolean; - description?: string; - createdAt: Date; - modifiedAt: Date; - nextRunAt: string; - lastRunAt: string; - actions: ScheduleAction[]; - notifications: { - email: boolean; - }; -} - /** * Data for creating or updating a Schedule. */ @@ -132,56 +117,3 @@ export type ScheduleCreateOrUpdateData = Partial< actions: DistributiveOptional<ScheduleAction, 'id'>[]; } >; - -/** - * Types of actions that can be scheduled. - */ -export enum ScheduleActions { - RunActor = 'RUN_ACTOR', - RunActorTask = 'RUN_ACTOR_TASK', -} - -interface BaseScheduleAction<Type extends ScheduleActions> { - id: string; - type: Type; -} - -/** - * Union type representing all possible scheduled actions. - */ -export type ScheduleAction = ScheduleActionRunActor | ScheduleActionRunActorTask; - -/** - * Scheduled action to run an Actor. - */ -export interface ScheduleActionRunActor extends BaseScheduleAction<ScheduleActions.RunActor> { - actorId: string; - runInput?: ScheduledActorRunInput; - runOptions?: ScheduledActorRunOptions; -} - -/** - * Input configuration for a scheduled Actor run. - */ -export interface ScheduledActorRunInput { - body: string; - contentType: string; -} - -/** - * Run options for a scheduled Actor run. - */ -export interface ScheduledActorRunOptions { - build: string; - timeoutSecs: number; - memoryMbytes: number; - restartOnError?: boolean; -} - -/** - * Scheduled action to run an Actor task. - */ -export interface ScheduleActionRunActorTask extends BaseScheduleAction<ScheduleActions.RunActorTask> { - actorTaskId: string; - input?: string; -} diff --git a/src/resource_clients/store_collection.ts b/src/resource_clients/store_collection.ts index 1c89437b2..5db59fd4b 100644 --- a/src/resource_clients/store_collection.ts +++ b/src/resource_clients/store_collection.ts @@ -2,8 +2,10 @@ import ow from 'ow'; import type { ApiClientSubResourceOptions } from '../base/api_client'; import { ResourceCollectionClient } from '../base/resource_collection_client'; +import type { ActorStoreList } from '../models'; import type { PaginatedIterator, PaginationOptions } from '../utils'; -import type { ActorStats } from './actor'; + +export type { ActorStoreList, PricingInfo } from '../models'; /** * Client for browsing Actors in the Apify Store. @@ -75,25 +77,6 @@ export class StoreCollectionClient extends ResourceCollectionClient { } } -export interface PricingInfo { - pricingModel: string; -} - -export interface ActorStoreList { - id: string; - name: string; - username: string; - title?: string; - description?: string; - stats: ActorStats; - currentPricingInfo: PricingInfo; - pictureUrl?: string; - userPictureUrl?: string; - url: string; - /** A brief, LLM-generated readme summary */ - readmeSummary?: string; -} - export interface StoreCollectionListOptions extends PaginationOptions { search?: string; sortBy?: string; diff --git a/src/resource_clients/task.ts b/src/resource_clients/task.ts index e7e22f7d9..03afa96d0 100644 --- a/src/resource_clients/task.ts +++ b/src/resource_clients/task.ts @@ -6,13 +6,16 @@ import type { ApifyApiError } from '../apify_api_error'; import type { ApiClientSubResourceOptions } from '../base/api_client'; import { ResourceClient } from '../base/resource_client'; import type { ApifyRequestConfig } from '../http_client'; +import type { Task } from '../models'; import type { Dictionary } from '../utils'; import { cast, catchNotFoundOrThrow, parseDateFields, pluckData, stringifyWebhooksToBase64 } from '../utils'; -import type { ActorLastRunOptions, ActorRun, ActorStandby, ActorStartOptions } from './actor'; +import type { ActorLastRunOptions, ActorRun, ActorStartOptions } from './actor'; import { RunClient } from './run'; import { RunCollectionClient } from './run_collection'; import { WebhookCollectionClient } from './webhook_collection'; +export type { Task, TaskOptions, TaskStats } from '../models'; + /** * Client for managing a specific Actor task. * @@ -273,45 +276,6 @@ export class TaskClient extends ResourceClient { } } -/** - * Represents an Actor task. - * - * Tasks are saved Actor configurations with input and settings that can be executed - * repeatedly without having to specify the full input each time. - */ -export interface Task { - id: string; - userId: string; - actId: string; - name: string; - title?: string; - description?: string; - username?: string; - createdAt: Date; - modifiedAt: Date; - stats: TaskStats; - options?: TaskOptions; - input?: Dictionary | Dictionary[]; - actorStandby?: Partial<ActorStandby>; -} - -/** - * Statistics about Actor task usage. - */ -export interface TaskStats { - totalRuns: number; -} - -/** - * Configuration options for an Actor task. - */ -export interface TaskOptions { - build?: string; - timeoutSecs?: number; - memoryMbytes?: number; - restartOnError?: boolean; -} - /** * Fields that can be updated when modifying a Task. */ diff --git a/src/resource_clients/task_collection.ts b/src/resource_clients/task_collection.ts index bfd13b558..b32da8d0e 100644 --- a/src/resource_clients/task_collection.ts +++ b/src/resource_clients/task_collection.ts @@ -2,9 +2,12 @@ import ow from 'ow'; import type { ApiClientSubResourceOptions } from '../base/api_client'; import { ResourceCollectionClient } from '../base/resource_collection_client'; +import type { TaskList } from '../models'; import type { PaginatedIterator, PaginationOptions } from '../utils'; import type { Task, TaskUpdateData } from './task'; +export type { TaskList } from '../models'; + /** * Client for managing the collection of Actor tasks in your account. * @@ -91,8 +94,6 @@ export interface TaskCollectionListOptions extends PaginationOptions { desc?: boolean; } -export type TaskList = Omit<Task, 'options' | 'input'>; - export interface TaskCreateData extends TaskUpdateData { actId: string; } diff --git a/src/resource_clients/user.ts b/src/resource_clients/user.ts index 0e9de50a4..7cb724ce7 100644 --- a/src/resource_clients/user.ts +++ b/src/resource_clients/user.ts @@ -2,6 +2,7 @@ import type { ApifyApiError } from '../apify_api_error'; import type { ApiClientSubResourceOptions } from '../base/api_client'; import { ResourceClient } from '../base/resource_client'; import type { ApifyRequestConfig } from '../http_client'; +import type { AccountAndUsageLimits, MonthlyUsage, User } from '../models'; import { cast, catchNotFoundOrThrow, parseDateFields, pluckData } from '../utils'; /** @@ -119,183 +120,25 @@ export class UserClient extends ResourceClient { } } -// -// Response interface for /users/:userId and /users/me -// Using token will return private user data -// - -export interface User { - // Public properties - username: string; - profile: { - bio?: string; - name?: string; - pictureUrl?: string; - githubUsername?: string; - websiteUrl?: string; - twitterUsername?: string; - }; - // Private properties - id?: string; - email?: string; - proxy?: UserProxy; - plan?: UserPlan; - effectivePlatformFeatures?: EffectivePlatformFeatures; - createdAt?: Date; - isPaying?: boolean; -} - -export interface UserProxy { - password: string; - groups: ProxyGroup[]; -} - -export interface ProxyGroup { - name: string; - description: string; - availableCount: number; -} - -export interface UserPlan { - id: string; - description: string; - isEnabled: boolean; - monthlyBasePriceUsd: number; - monthlyUsageCreditsUsd: number; - usageDiscountPercent: number; - enabledPlatformFeatures: PlatformFeature[]; - maxMonthlyUsageUsd: number; - maxActorMemoryGbytes: number; - maxMonthlyActorComputeUnits: number; - maxMonthlyResidentialProxyGbytes: number; - maxMonthlyProxySerps: number; - maxMonthlyExternalDataTransferGbytes: number; - maxActorCount: number; - maxActorTaskCount: number; - dataRetentionDays: number; - availableProxyGroups: Record<string, number>; - teamAccountSeatCount: number; - supportLevel: string; - availableAddOns: unknown[]; -} - -export enum PlatformFeature { - Actors = 'ACTORS', - Storage = 'STORAGE', - ProxySERPS = 'PROXY_SERPS', - Scheduler = 'SCHEDULER', - Webhooks = 'WEBHOOKS', - Proxy = 'PROXY', - ProxyExternalAccess = 'PROXY_EXTERNAL_ACCESS', -} - -interface EffectivePlatformFeature { - isEnabled: boolean; - disabledReason: string | null; - disabledReasonType: string | null; - isTrial: boolean; - trialExpirationAt: Date | null; -} - -interface EffectivePlatformFeatures { - ACTORS: EffectivePlatformFeature; - STORAGE: EffectivePlatformFeature; - SCHEDULER: EffectivePlatformFeature; - PROXY: EffectivePlatformFeature; - PROXY_EXTERNAL_ACCESS: EffectivePlatformFeature; - PROXY_RESIDENTIAL: EffectivePlatformFeature; - PROXY_SERPS: EffectivePlatformFeature; - WEBHOOKS: EffectivePlatformFeature; - ACTORS_PUBLIC_ALL: EffectivePlatformFeature; - ACTORS_PUBLIC_DEVELOPER: EffectivePlatformFeature; -} - -// -// Response interface for /users/:userId/usage/monthly -// - -export interface MonthlyUsage { - usageCycle: UsageCycle; - monthlyServiceUsage: { [key: string]: MonthlyServiceUsageData }; - dailyServiceUsages: DailyServiceUsage[]; - totalUsageCreditsUsdBeforeVolumeDiscount: number; - totalUsageCreditsUsdAfterVolumeDiscount: number; -} - -export interface UsageCycle { - startAt: Date; - endAt: Date; -} - -/** Monthly usage of a single service */ -interface MonthlyServiceUsageData { - quantity: number; - baseAmountUsd: number; - baseUnitPriceUsd: number; - amountAfterVolumeDiscountUsd: number; - priceTiers: PriceTier[]; -} - -interface PriceTier { - quantityAbove: number; - discountPercent: number; - tierQuantity: number; - unitPriceUsd: number; - priceUsd: number; -} - -interface DailyServiceUsage { - date: Date; - serviceUsage: { [key: string]: DailyServiceUsageData }; - totalUsageCreditsUsd: number; -} - -/** Daily usage of a single service */ -interface DailyServiceUsageData { - quantity: number; - baseAmountUsd: number; -} - -// -// Response interface for /users/:userId/limits -// - -export interface AccountAndUsageLimits { - monthlyUsageCycle: MonthlyUsageCycle; - limits: Limits; - current: Current; -} - -export interface MonthlyUsageCycle { - startAt: Date; - endAt: Date; -} - -export interface Limits { - maxMonthlyUsageUsd: number; - maxMonthlyActorComputeUnits: number; - maxMonthlyExternalDataTransferGbytes: number; - maxMonthlyProxySerps: number; - maxMonthlyResidentialProxyGbytes: number; - maxActorMemoryGbytes: number; - maxActorCount: number; - maxActorTaskCount: number; - maxConcurrentActorJobs: number; - maxTeamAccountSeatCount: number; - dataRetentionDays: number; -} +export type { + AccountAndUsageLimits, + Current, + DailyServiceUsage, + EffectivePlatformFeature, + EffectivePlatformFeatures, + Limits, + MonthlyUsage, + MonthlyUsageCycle, + PriceTier, + ProxyGroup, + ServiceUsage, + UsageCycle, + UsageItem, + User, + UserPlan, + UserProfile, + UserProxy, +} from '../models'; +export { PlatformFeature } from '../models'; export type LimitsUpdateOptions = { maxMonthlyUsageUsd: number } | { dataRetentionDays: number }; - -export interface Current { - monthlyUsageUsd: number; - monthlyActorComputeUnits: number; - monthlyExternalDataTransferGbytes: number; - monthlyProxySerps: number; - monthlyResidentialProxyGbytes: number; - actorMemoryGbytes: number; - actorCount: number; - actorTaskCount: number; - activeActorJobCount: number; - teamAccountSeatCount: number; -} diff --git a/src/resource_clients/webhook.ts b/src/resource_clients/webhook.ts index 445ef3d30..1a278148a 100644 --- a/src/resource_clients/webhook.ts +++ b/src/resource_clients/webhook.ts @@ -1,15 +1,25 @@ import ow from 'ow'; -import type { WEBHOOK_EVENT_TYPES } from '@apify/consts'; - import type { ApifyApiError } from '../apify_api_error'; import type { ApiClientSubResourceOptions } from '../base/api_client'; import { ResourceClient } from '../base/resource_client'; import type { ApifyRequestConfig } from '../http_client'; +import type { Webhook, WebhookEventType } from '../models'; import { cast, catchNotFoundOrThrow, parseDateFields, pluckData } from '../utils'; import type { WebhookDispatch } from './webhook_dispatch'; import { WebhookDispatchCollectionClient } from './webhook_dispatch_collection'; +export type { + Webhook, + WebhookAnyRunOfActorCondition, + WebhookAnyRunOfActorTaskCondition, + WebhookCertainRunCondition, + WebhookCondition, + WebhookEventType, + WebhookLastDispatch, + WebhookStats, +} from '../models'; + /** * Client for managing a specific webhook. * @@ -119,32 +129,6 @@ export class WebhookClient extends ResourceClient { } } -/** - * Represents a webhook for receiving notifications about Actor events. - * - * Webhooks send HTTP POST requests to specified URLs when certain events occur - * (e.g., Actor run succeeds, fails, or times out). - */ -export interface Webhook { - id: string; - userId: string; - createdAt: Date; - modifiedAt: Date; - isAdHoc: boolean; - eventTypes: WebhookEventType[]; - condition: WebhookCondition; - ignoreSslErrors: boolean; - doNotRetry: boolean; - requestUrl: string; - payloadTemplate: string; - lastDispatch: string; - stats: WebhookStats; - shouldInterpolateStrings: boolean; - isApifyIntegration?: boolean; - headersTemplate?: string; - description?: string; -} - export interface WebhookIdempotencyKey { idempotencyKey?: string; } @@ -172,35 +156,3 @@ export type WebhookUpdateData = Partial< } > & WebhookIdempotencyKey; - -/** - * Statistics about webhook usage. - */ -export interface WebhookStats { - totalDispatches: number; -} - -/** - * Event types that can trigger webhooks. - */ -export type WebhookEventType = (typeof WEBHOOK_EVENT_TYPES)[keyof typeof WEBHOOK_EVENT_TYPES]; - -/** - * Condition that determines when a webhook should be triggered. - */ -export type WebhookCondition = - | WebhookAnyRunOfActorCondition - | WebhookAnyRunOfActorTaskCondition - | WebhookCertainRunCondition; - -export interface WebhookAnyRunOfActorCondition { - actorId: string; -} - -export interface WebhookAnyRunOfActorTaskCondition { - actorTaskId: string; -} - -export interface WebhookCertainRunCondition { - actorRunId: string; -} diff --git a/src/resource_clients/webhook_dispatch.ts b/src/resource_clients/webhook_dispatch.ts index 3246befbc..023fd9c5b 100644 --- a/src/resource_clients/webhook_dispatch.ts +++ b/src/resource_clients/webhook_dispatch.ts @@ -1,6 +1,14 @@ import type { ApiClientSubResourceOptions } from '../base/api_client'; import { ResourceClient } from '../base/resource_client'; -import type { Webhook, WebhookEventType } from './webhook'; +import type { WebhookDispatch } from '../models'; + +export type { + WebhookDispatch, + WebhookDispatchCall, + WebhookDispatchEventData, + WebhookDispatchWebhookSummary, +} from '../models'; +export { WebhookDispatchStatus } from '../models'; /** * Client for managing a specific webhook dispatch. @@ -41,36 +49,3 @@ export class WebhookDispatchClient extends ResourceClient { return this._get(); } } - -export interface WebhookDispatch { - id: string; - userId: string; - webhookId: string; - createdAt: Date; - status: WebhookDispatchStatus; - eventType: WebhookEventType; - calls: WebhookDispatchCall[]; - webhook: Pick<Webhook, 'requestUrl' | 'isAdHoc'>; - eventData: WebhookDispatchEventData | null; -} - -export enum WebhookDispatchStatus { - Active = 'ACTIVE', - Succeeded = 'SUCCEEDED', - Failed = 'FAILED', -} - -export interface WebhookDispatchCall { - startedAt: Date; - finishedAt: Date; - errorMessage: string | null; - responseStatus: number | null; - responseBody: string | null; -} - -export interface WebhookDispatchEventData { - actorRunId?: string; - actorId?: string; - actorTaskId?: string; - actorBuildId?: string; -} diff --git a/src/spec_guards.ts b/src/spec_guards.ts new file mode 100644 index 000000000..5e668ea04 --- /dev/null +++ b/src/spec_guards.ts @@ -0,0 +1,360 @@ +/** + * Compile-time guards that fail `pnpm build:node` when the OpenAPI spec drifts away from an assumption + * the hand-written models depend on. + * + * These live in their own module for two reasons. `noUnusedLocals` rejects a non-exported type alias + * that nothing references, and exporting them from a module that `src/index.ts` re-exports would grow + * the public API. Nothing imports this file -- `tsconfig.json` includes all of `src`, so being part of + * the program is enough for the assertions to be checked. + * + * When one of these fails, the fix is a deliberate decision, not a mechanical update: either the shared + * `@apify/consts` value is stale, or a published type needs a new member, or the spec regressed. + */ + +import type { + ACTOR_JOB_STATUSES, + ACTOR_PERMISSION_LEVEL, + ACTOR_SOURCE_TYPES, + META_ORIGINS, + RUN_GENERAL_ACCESS, + STORAGE_GENERAL_ACCESS, + ValueOf, + WEBHOOK_DISPATCH_STATUSES, +} from '@apify/consts'; + +import type { components } from './generated/api'; +import type { + AccountAndUsageLimitsRePointed, + ActorChargeEventRePointed, + ActorDefaultRunOptionsRePointed, + ActorDefinitionSpecGaps, + ActorDefinitionSpecNarrowings, + ActorRePointed, + ActorRunListItemRePointed, + ActorRunMetaRePointed, + ActorRunOptionsSpecGaps, + ActorRunRePointed, + ActorRunClientNarrowings, + ActorSourceType, + ActorSpecGaps, + ActorStoreListRePointed, + ActorVersionRePointed, + ActorVersionSourceLocation, + ActorVersionClientNarrowings, + BuildCollectionClientListItemRePointed, + BuildMetaRePointed, + BuildRePointed, + DailyServiceUsageClientConversions, + DailyServiceUsageRePointed, + DatasetRePointed, + DatasetSpecGaps, + DatasetSpecNarrowings, + DatasetStatisticsRePointed, + DatasetStatsSpecGaps, + KeyValueClientListKeysResultRePointed, + KeyValueStoreRePointed, + KeyValueStoreSpecGaps, + KeyValueStoreSpecNarrowings, + MonthlyUsageRePointed, + PricePerDatasetItemActorPricingInfoRePointed, + PricePerEventActorPricingInfoRePointed, + RequestQueueClientListAndLockHeadResultRePointed, + RequestQueueClientListHeadResultRePointed, + RequestQueueClientListRequestsResultRePointed, + RequestQueueRePointed, + RequestQueueSpecGaps, + RequestQueueSpecNarrowings, + ScheduleActionRunActorRePointed, + ScheduleActionRunActorTaskRePointed, + ScheduleActions, + ScheduleRePointed, + ScheduleClientNarrowings, + TaskListRePointed, + TaskRePointed, + TaskSpecGaps, + TaskSpecNarrowings, + UserPlanRePointed, + UserRePointed, + UsageItemRePointed, + UserSpecNarrowings, + Webhook, + WebhookConditionKey, + WebhookDispatchRePointed, + WebhookDispatchStatus, + WebhookDispatchWebhookSummary, + WebhookEventType, + WebhookLastDispatchRePointed, + WebhookRePointed, + WebhookSpecGaps, +} from './models'; + +type Schemas = components['schemas']; + +/** Resolves to `true` only for mutually assignable types, so a near-miss still fails. */ +type Equals<A, B> = (<T>() => T extends A ? 1 : 2) extends <T>() => T extends B ? 1 : 2 ? true : false; + +/** Fails to compile unless every member of the tuple is exactly `true`. */ +type AssertAll<T extends true[]> = T; + +/** + * Every key an override block replaces must still exist in the schema it overrides. + * + * Without this, dropping a field upstream is invisible: `Omit<T, keyof Override>` of a key that no longer + * exists is a silent no-op, and the override block then supplies the field itself, so the published type + * keeps advertising something the API has stopped documenting. + */ +type OverridesStillExist<Override, Generated> = Equals<keyof Override & keyof Generated, keyof Override>; + +/** + * Every override must still be at least as wide as the field it replaces. + * + * Key-level checks alone are not enough: they pass while the spec changes a field's optionality or + * nullability underneath an override, which is exactly how a narrowing sneaks in. Adopting a wider spec + * type is always safe, so the rule is one-directional -- the generated type must remain assignable to the + * published one. When this fails, either drop the override and take the spec's type, or record why the + * API really is narrower than the spec now claims. + * + * `Pick` deliberately keeps each key's optionality: a field the spec demotes to optional stops being + * assignable to an override that still declares it required, so this is also where required-to-optional + * drift is caught. `OverridesStillExist` cannot see it -- `keyof` does not distinguish `x` from `x?`. + */ +type OverridesStayWider<Override, Generated> = + Pick<Generated, keyof Override & keyof Generated> extends Pick<Override, keyof Override & keyof Generated> + ? true + : false; + +/** Every `*SpecGaps` key must still be absent upstream, so a filled gap shows up as a build failure. */ +type GapsStillMissing<Gaps, Generated> = Equals<keyof Gaps & keyof Generated, never>; + +/** + * `@apify/consts` stays the source of truth for the enums it declares, rather than the spec, because + * `apify-sdk-js` and `crawlee` consume those same types -- diverging would break structural + * compatibility across the Apify JS ecosystem. These assertions prove the two still agree. + */ +export type EnumGuards = AssertAll< + [ + Equals<Schemas['GeneralAccess'], STORAGE_GENERAL_ACCESS>, + Equals<Schemas['WebhookEventType'], WebhookEventType>, + // `WebhookDispatchStatus` is a runtime enum this package publishes itself, so it is pinned to + // `@apify/consts` first -- asserting it only against the spec would quietly make the spec its source + // of truth and contradict the policy above. The spec is checked too, so all three stay in step. + Equals<`${WebhookDispatchStatus}`, ValueOf<typeof WEBHOOK_DISPATCH_STATUSES>>, + Equals<Schemas['WebhookDispatchStatus'], `${WebhookDispatchStatus}`>, + // `ActorSourceType` is the other runtime enum this package publishes, so it gets the same + // two-sided treatment: pinned to `@apify/consts` first, and checked against the spec too. + Equals<`${ActorSourceType}`, ValueOf<typeof ACTOR_SOURCE_TYPES>>, + Equals<Schemas['VersionSourceType'], `${ActorSourceType}`>, + // `ScheduleActions` is the third published runtime enum. `@apify/consts` does not declare an + // equivalent, so the spec's per-variant `type` constants are the only thing to pin it against. + Equals<Schemas['ScheduleActionRunActor']['type'], `${ScheduleActions.RunActor}`>, + Equals<Schemas['ScheduleActionRunActorTask']['type'], `${ScheduleActions.RunActorTask}`>, + Equals<Schemas['ActorPermissionLevel'], ACTOR_PERMISSION_LEVEL>, + Equals<Schemas['ActorJobStatus'], ValueOf<typeof ACTOR_JOB_STATUSES>>, + // `@apify/consts` leads the spec on run origins -- a new one is declared there as soon as the API can + // report it, while apify-docs publishes it a release later (`APIFY_AI` is in that state today). The + // published field is typed from `@apify/consts`, so the spec being narrower is harmless; what must hold + // is that the spec never carries an origin the published union would reject. + Equals<Schemas['RunOrigin'] & ValueOf<typeof META_ORIGINS>, Schemas['RunOrigin']>, + // A run reuses the storage-wide `GeneralAccess` schema in the spec, so equality is the wrong + // question -- `RUN_GENERAL_ACCESS` omits `ANYONE_WITH_NAME_CAN_READ` because a run has no name. + // What must hold is that every run-level value is still one the spec knows about. + Equals<RUN_GENERAL_ACCESS & Schemas['GeneralAccess'], RUN_GENERAL_ACCESS>, + ] +>; + +/** + * `WebhookDispatch.webhook` is a summary of the webhook that triggered it, and the two schemas have to + * keep agreeing about the fields they share. It is no longer declared as `Pick<Webhook, ...>`, because + * the spec's summary also carries `actionType` and `condition`, but the overlap is asserted here. + * + * Only `requestUrl` is asserted. It is nullable on both sides, because a hook action other than a + * plain HTTP request -- Slack, email -- has no URL to report. `isAdHoc` is left out: the spec types it + * as nullable on the full `Webhook` and non-nullable on the summary, and there is no reason to think + * the API really answers differently for the two, so pinning them to each other would only encode the + * inconsistency. + */ +export type WebhookDispatchGuards = AssertAll< + [Equals<Pick<WebhookDispatchWebhookSummary, 'requestUrl'>, Pick<Webhook, 'requestUrl'>>] +>; + +/** + * Keeps the adapter honest about which fields it overrides and which the spec is still missing. A + * failure here means the spec moved: either a field the client overrides was dropped or renamed, or a + * gap was filled and its `*SpecGaps` entry should now be deleted. + */ +export type AdapterKeyGuards = AssertAll< + [ + OverridesStillExist<DatasetRePointed, Schemas['Dataset']>, + OverridesStillExist<DatasetSpecNarrowings, Schemas['Dataset']>, + OverridesStillExist<DatasetStatisticsRePointed, Schemas['DatasetStatistics']>, + OverridesStillExist<WebhookDispatchRePointed, Schemas['WebhookDispatch']>, + OverridesStillExist<KeyValueStoreRePointed, Schemas['KeyValueStore']>, + OverridesStillExist<KeyValueStoreSpecNarrowings, Schemas['KeyValueStore']>, + OverridesStillExist<KeyValueClientListKeysResultRePointed, Schemas['ListOfKeys']>, + OverridesStillExist<ActorVersionRePointed, Schemas['Version']>, + OverridesStillExist<ActorVersionClientNarrowings, Schemas['Version']>, + // `BaseActorVersion` drops these four by name so each union variant can reinstate the one its + // source type implies. Unlike the override blocks, a bare key union in `Omit` is not checked by + // the compiler at all, so losing one upstream would silently leave the variants inventing it. + Equals<ActorVersionSourceLocation & keyof Schemas['Version'], ActorVersionSourceLocation>, + OverridesStillExist<ActorRePointed, Schemas['Actor']>, + OverridesStillExist<ActorDefaultRunOptionsRePointed, Schemas['DefaultRunOptions']>, + OverridesStillExist<ActorDefinitionSpecNarrowings, Schemas['ActorDefinition']>, + OverridesStillExist<ActorChargeEventRePointed, Schemas['ActorChargeEvent']>, + OverridesStillExist< + PricePerDatasetItemActorPricingInfoRePointed, + Schemas['PricePerDatasetItemActorPricingInfo'] + >, + OverridesStillExist<PricePerEventActorPricingInfoRePointed, Schemas['PayPerEventActorPricingInfo']>, + OverridesStillExist<BuildRePointed, Schemas['Build']>, + OverridesStillExist<BuildMetaRePointed, Schemas['BuildsMeta']>, + OverridesStillExist<BuildCollectionClientListItemRePointed, Schemas['BuildShort']>, + OverridesStillExist<ActorRunRePointed, Schemas['Run']>, + OverridesStillExist<ActorRunClientNarrowings, Schemas['Run']>, + OverridesStillExist<ActorRunListItemRePointed, Schemas['RunShort']>, + OverridesStillExist<ActorRunMetaRePointed, Schemas['RunMeta']>, + OverridesStillExist<TaskRePointed, Schemas['Task']>, + OverridesStillExist<TaskSpecNarrowings, Schemas['Task']>, + OverridesStillExist<TaskListRePointed, Schemas['TaskShort']>, + OverridesStillExist<ActorStoreListRePointed, Schemas['StoreListActor']>, + OverridesStillExist<WebhookRePointed, Schemas['Webhook']>, + OverridesStillExist<WebhookLastDispatchRePointed, Schemas['ExampleWebhookDispatch']>, + OverridesStillExist<ScheduleRePointed, Schemas['Schedule']>, + OverridesStillExist<ScheduleClientNarrowings, Schemas['Schedule']>, + OverridesStillExist<ScheduleActionRunActorRePointed, Schemas['ScheduleActionRunActor']>, + OverridesStillExist<ScheduleActionRunActorTaskRePointed, Schemas['ScheduleActionRunActorTask']>, + OverridesStillExist<UserRePointed, Schemas['UserPrivateInfo']>, + OverridesStillExist<UserSpecNarrowings, Schemas['UserPrivateInfo']>, + OverridesStillExist<UserPlanRePointed, Schemas['Plan']>, + OverridesStillExist<MonthlyUsageRePointed, Schemas['MonthlyUsage']>, + OverridesStillExist<UsageItemRePointed, Schemas['UsageItem']>, + OverridesStillExist<DailyServiceUsageRePointed, Schemas['DailyServiceUsages']>, + OverridesStillExist<DailyServiceUsageClientConversions, Schemas['DailyServiceUsages']>, + OverridesStillExist<AccountAndUsageLimitsRePointed, Schemas['AccountLimits']>, + OverridesStillExist<RequestQueueRePointed, Schemas['RequestQueue']>, + OverridesStillExist<RequestQueueSpecNarrowings, Schemas['RequestQueue']>, + OverridesStillExist<RequestQueueClientListHeadResultRePointed, Schemas['RequestQueueHead']>, + OverridesStillExist<RequestQueueClientListAndLockHeadResultRePointed, Schemas['LockedRequestQueueHead']>, + OverridesStillExist<RequestQueueClientListRequestsResultRePointed, Schemas['ListOfRequests']>, + // The published `WebhookCondition` union reinstates each of these as the required key of its own + // variant, so losing one upstream must not pass unnoticed. + Equals<WebhookConditionKey & keyof Schemas['WebhookCondition'], WebhookConditionKey>, + GapsStillMissing<DatasetSpecGaps, Schemas['Dataset']>, + GapsStillMissing<DatasetStatsSpecGaps, Schemas['DatasetStats']>, + GapsStillMissing<KeyValueStoreSpecGaps, Schemas['KeyValueStore']>, + GapsStillMissing<ActorSpecGaps, Schemas['Actor']>, + GapsStillMissing<ActorDefinitionSpecGaps, Schemas['ActorDefinition']>, + GapsStillMissing<ActorRunOptionsSpecGaps, Schemas['RunOptions']>, + GapsStillMissing<TaskSpecGaps, Schemas['Task']>, + // `TaskList` carries the same gap, and the spec describes it in a schema of its own. + GapsStillMissing<TaskSpecGaps, Schemas['TaskShort']>, + GapsStillMissing<WebhookSpecGaps, Schemas['Webhook']>, + GapsStillMissing<RequestQueueSpecGaps, Schemas['RequestQueue']>, + ] +>; + +/** + * The same overrides, checked for width rather than just for existence. Split from `AdapterKeyGuards` so a + * failure says which of the two rules broke. + * + * Every exclusion is noted next to the entry it relates to. Two of them are here rather than inline, + * because width is not the right question for either: + * + * - `WebhookDispatch`'s `calls`, `webhook` and `eventData` re-point at adapted types that are + * intentionally not the generated ones, so only `eventType` is checked. + * - `WebhookDispatch.status` and `WebhookLastDispatch.status` publish this package's runtime enum, and a + * string-literal union is never assignable to a string enum even when the members are identical. + * Their members are pinned by `EnumGuards` instead, against both `@apify/consts` and the spec. The + * four `status` overrides typed from `ACTOR_JOB_STATUSES` are plain unions, so they are checked here. + */ +export type AdapterWidthGuards = AssertAll< + [ + OverridesStayWider<DatasetRePointed, Schemas['Dataset']>, + OverridesStayWider<DatasetSpecNarrowings, Schemas['Dataset']>, + OverridesStayWider<DatasetStatisticsRePointed, Schemas['DatasetStatistics']>, + OverridesStayWider<Pick<WebhookDispatchRePointed, 'eventType'>, Schemas['WebhookDispatch']>, + OverridesStayWider<KeyValueStoreRePointed, Schemas['KeyValueStore']>, + OverridesStayWider<KeyValueStoreSpecNarrowings, Schemas['KeyValueStore']>, + OverridesStayWider<KeyValueClientListKeysResultRePointed, Schemas['ListOfKeys']>, + // `ActorVersionClientNarrowings` has no entry here on purpose: dropping the spec's + // `sourceType: null` is the one narrowing the version union rests on, and it is argued for at + // the declaration. + OverridesStayWider<ActorVersionRePointed, Schemas['Version']>, + // `versions` is excluded: it re-points at the discriminated `ActorVersion` union, which is + // narrower than the spec's flat `Version` by design. + OverridesStayWider<Omit<ActorRePointed, 'versions'>, Schemas['Actor']>, + OverridesStayWider<ActorDefaultRunOptionsRePointed, Schemas['DefaultRunOptions']>, + OverridesStayWider<ActorDefinitionSpecNarrowings, Schemas['ActorDefinition']>, + OverridesStayWider<ActorChargeEventRePointed, Schemas['ActorChargeEvent']>, + OverridesStayWider< + PricePerDatasetItemActorPricingInfoRePointed, + Schemas['PricePerDatasetItemActorPricingInfo'] + >, + OverridesStayWider<PricePerEventActorPricingInfoRePointed, Schemas['PayPerEventActorPricingInfo']>, + OverridesStayWider<BuildRePointed, Schemas['Build']>, + OverridesStayWider<BuildMetaRePointed, Schemas['BuildsMeta']>, + OverridesStayWider<BuildCollectionClientListItemRePointed, Schemas['BuildShort']>, + // `ActorRunClientNarrowings` has no entry here: narrowing the spec's storage-wide `GeneralAccess` + // to the three-member run-specific union is the point of that block, and it is argued for at the + // declaration. `EnumGuards` checks instead that the three are still a subset of the spec's four. + OverridesStayWider<ActorRunRePointed, Schemas['Run']>, + OverridesStayWider<ActorRunListItemRePointed, Schemas['RunShort']>, + OverridesStayWider<ActorRunMetaRePointed, Schemas['RunMeta']>, + // `TaskSpecNarrowings` has no entry here: keeping the array form of `input` that the spec + // dropped is the point of that block, and it is argued for at the declaration. + OverridesStayWider<TaskRePointed, Schemas['Task']>, + OverridesStayWider<TaskListRePointed, Schemas['TaskShort']>, + OverridesStayWider<ActorStoreListRePointed, Schemas['StoreListActor']>, + // Two exclusions. `condition` keeps the union of single-id variants, which is narrower than the + // spec's flat schema by design and argued for at the declaration. `lastDispatch` re-points at a + // type whose `status` is the published runtime enum, and a string-literal union is never + // assignable to a string enum even when the members match -- `EnumGuards` pins those instead. + OverridesStayWider<Omit<WebhookRePointed, 'condition' | 'lastDispatch'>, Schemas['Webhook']>, + // `type` is excluded on both action variants, and `timezone` on the schedule: the first two + // publish a runtime enum, and the third narrows the spec's bare `string` to the curated IANA + // union on purpose. `EnumGuards` pins the two `type` constants instead. `Schedule.actions` is + // excluded for the same reason as the two `type` constants it carries: the re-pointed element + // union discriminates on a runtime enum, so no assignability check can hold either way. + OverridesStayWider<Omit<ScheduleActionRunActorRePointed, 'type'>, Schemas['ScheduleActionRunActor']>, + OverridesStayWider<UserRePointed, Schemas['UserPrivateInfo']>, + OverridesStayWider<UserSpecNarrowings, Schemas['UserPrivateInfo']>, + OverridesStayWider<UserPlanRePointed, Schemas['Plan']>, + // `dailyServiceUsages` is excluded: its element type carries the `date` conversion below, and a + // `string` is never assignable to the `Date` the caller is handed. + OverridesStayWider<Omit<MonthlyUsageRePointed, 'dailyServiceUsages'>, Schemas['MonthlyUsage']>, + OverridesStayWider<UsageItemRePointed, Schemas['UsageItem']>, + OverridesStayWider<DailyServiceUsageRePointed, Schemas['DailyServiceUsages']>, + OverridesStayWider<AccountAndUsageLimitsRePointed, Schemas['AccountLimits']>, + OverridesStayWider<RequestQueueRePointed, Schemas['RequestQueue']>, + OverridesStayWider<RequestQueueSpecNarrowings, Schemas['RequestQueue']>, + OverridesStayWider<RequestQueueClientListHeadResultRePointed, Schemas['RequestQueueHead']>, + OverridesStayWider<RequestQueueClientListAndLockHeadResultRePointed, Schemas['LockedRequestQueueHead']>, + OverridesStayWider<RequestQueueClientListRequestsResultRePointed, Schemas['ListOfRequests']>, + ] +>; + +/** + * Published maps that are written out by hand rather than derived from the spec. + * + * Each is an index signature whose value type had to be re-pointed at the published entry, which + * `interface ... extends` cannot express, so the shape is spelled out instead. These assertions are what + * keeps it tied to the spec: they fail once a map stops being a plain string-keyed map of its entry + * schema. The two service-usage schemas are also pinned to each other, because one published + * `ServiceUsage` stands for both. + */ +export type MapShapeGuards = AssertAll< + [ + Equals<Schemas['TieredPricingPerDatasetItem'], Record<string, Schemas['TieredPricingPerDatasetItemEntry']>>, + Equals<Schemas['TieredPricingPerEvent'], Record<string, Schemas['TieredPricingPerEventEntry']>>, + Equals<Schemas['ServiceUsage'], Record<string, Schemas['UsageItem']>>, + Equals<Schemas['MonthlyServiceUsage'], Record<string, Schemas['UsageItem']>>, + ] +>; + +/** + * `DailyServiceUsage.date` is published as a `Date`, because `UserClient.monthlyUsage()` passes a matcher + * that converts it. The spec types the wire value as a plain string; once it marks the field as a + * date-time, the generator emits a `Date` of its own and the `*ClientConversions` block can be deleted. + * This assertion is what reports that. + */ +export type ClientConversionGuards = AssertAll<[Equals<Schemas['DailyServiceUsages']['date'], string>]>; diff --git a/src/utils.ts b/src/utils.ts index 0d56f2f33..8ce724d7b 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -67,10 +67,15 @@ export function parseDateFields( shouldParseField: ((key: string) => boolean) | null = null, depth = 0, ): ReturnJsonValue { - // Don't go too deep to avoid stack overflows (especially if there is a circular reference). The depth of 3 - // corresponds to obj.data.someArrayField.[x].field and should be generally enough. + // Don't go too deep to avoid stack overflows (especially if there is a circular reference). The depth of 4 + // corresponds to obj.items.[x].someArrayField.[y].field, which is what a list response looks like: it + // nests one level deeper than the single resource it wraps, because both the item array and the nested + // array spend a level. + // + // It also reaches into caller-owned blobs the API stores verbatim, so a request's + // `userData.foo.somethingAt` comes back as a `Date` rather than the string it was written as. // TODO: Consider removing this limitation. It might came across as an annoying surprise as it's not communicated. - if (depth > 3) { + if (depth > 4) { return input as ReturnJsonValue; } diff --git a/test/mock_server/routes/users.ts b/test/mock_server/routes/users.ts index 5e825f0a4..3ac130f4a 100644 --- a/test/mock_server/routes/users.ts +++ b/test/mock_server/routes/users.ts @@ -6,7 +6,7 @@ export const users = express.Router(); const ROUTES: MockServerRoute[] = [ { id: 'get-user', method: 'GET', path: '/:userId' }, - { id: 'get-monthly-usage', method: 'GET', path: '/:userId/usage/monthly' }, + { id: 'get-monthly-usage', method: 'GET', path: '/:userId/usage/monthly', type: 'responseJsonMock' }, { id: 'get-limits', method: 'GET', path: '/:userId/limits' }, { id: 'update-limits', method: 'PUT', path: '/:userId/limits' }, ]; diff --git a/test/spec_transform.test.mts b/test/spec_transform.test.mts new file mode 100644 index 000000000..61dfb7610 --- /dev/null +++ b/test/spec_transform.test.mts @@ -0,0 +1,74 @@ +import ts from 'typescript'; +import { describe, expect, it } from 'vitest'; + +import { absolutizeDocLinks, transformDateTime } from '../scripts/spec_transform.mts'; + +const printer = ts.createPrinter(); +const blankSource = ts.createSourceFile('t.ts', '', ts.ScriptTarget.Latest); + +function print(node: ts.TypeNode | undefined): string | undefined { + return node && printer.printNode(ts.EmitHint.Unspecified, node, blankSource); +} + +const SCHEMA_PATH = '#/components/schemas/Dataset/createdAt'; + +describe('transformDateTime', () => { + it('types a non-nullable date-time schema as Date', () => { + const node = transformDateTime({ type: 'string', format: 'date-time' }, { path: SCHEMA_PATH }); + + expect(print(node)).toBe('Date'); + }); + + it('types an OpenAPI 3.1 nullable date-time schema as a Date union', () => { + const node = transformDateTime({ type: ['string', 'null'], format: 'date-time' }, { path: SCHEMA_PATH }); + + expect(print(node)).toBe('Date | null'); + }); + + it('leaves query parameters as strings, because axios does not serialize a Date as ISO 8601', () => { + const node = transformDateTime( + { type: 'string', format: 'date-time' }, + { path: '#/components/parameters/startedAfter' }, + ); + + expect(node).toBeUndefined(); + }); + + it('ignores schemas that are not date-time', () => { + expect(transformDateTime({ type: 'string' }, { path: SCHEMA_PATH })).toBeUndefined(); + expect(transformDateTime({ type: 'string', format: 'uri' }, { path: SCHEMA_PATH })).toBeUndefined(); + }); + + it('returns a fresh node per call, which the TypeScript factory requires for reuse across a tree', () => { + const first = transformDateTime({ type: 'string', format: 'date-time' }, { path: SCHEMA_PATH }); + const second = transformDateTime({ type: 'string', format: 'date-time' }, { path: SCHEMA_PATH }); + + expect(first).not.toBe(second); + }); +}); + +describe('absolutizeDocLinks', () => { + it('rewrites a root-relative link against the docs base URL', () => { + expect(absolutizeDocLinks('see [docs](/api/v2/dataset-get)')).toBe( + 'see [docs](https://docs.apify.com/api/v2/dataset-get)', + ); + }); + + it('rewrites every occurrence, not just the first', () => { + expect(absolutizeDocLinks('[a](/one) and [b](/two)')).toBe( + '[a](https://docs.apify.com/one) and [b](https://docs.apify.com/two)', + ); + }); + + it('preserves the fragment of a root-relative link', () => { + expect(absolutizeDocLinks('[a](/api/v2/getting-started#authentication)')).toBe( + '[a](https://docs.apify.com/api/v2/getting-started#authentication)', + ); + }); + + it('leaves absolute and protocol-relative links alone', () => { + const untouched = '[a](https://example.com/x) [b](//cdn.example.com/y) [c](./relative)'; + + expect(absolutizeDocLinks(untouched)).toBe(untouched); + }); +}); diff --git a/test/tsconfig.json b/test/tsconfig.json index 63b57c640..8aa2b5060 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -8,6 +8,8 @@ // Nothing is emitted here, so declaration-emit portability errors are not actionable. "declaration": false, "allowJs": true, + // test/spec_transform.test.mts imports the generator's helpers by their real `.mts` path. + "allowImportingTsExtensions": true, "paths": { "apify-client": ["../src"] } diff --git a/test/users.test.ts b/test/users.test.ts index 97a8f2ad1..d5ea1c12b 100644 --- a/test/users.test.ts +++ b/test/users.test.ts @@ -72,6 +72,30 @@ describe('User methods', () => { validateRequest({ query: {}, params: { userId } }); }); + test('monthlyUsage() converts the date fields to Date', async () => { + const body = { + data: { + usageCycle: { startAt: '2026-08-01T00:00:00.000Z', endAt: '2026-08-31T23:59:59.999Z' }, + dailyServiceUsages: [ + { date: '2026-08-03T00:00:00.000Z', serviceUsage: {}, totalUsageCreditsUsd: 1 }, + ], + }, + }; + mockServer.setResponse({ body }); + + try { + const res = await client.user('some-id').monthlyUsage(); + // `date` does not end in `At`, so the conversion rests on the matcher the method passes. + // Typed as `Date` rather than inferred, so a regression to the wire `string` fails the + // type check as well as the assertion. + const date: Date | undefined = res?.dailyServiceUsages[0].date; + expect(date).toBeInstanceOf(Date); + expect(res?.usageCycle.startAt).toBeInstanceOf(Date); + } finally { + mockServer.setResponse(null); + } + }); + test('limits() works', async () => { const userId = 'some-id'; diff --git a/test/utils.test.ts b/test/utils.test.ts index 3d88db63c..c80a86a3d 100644 --- a/test/utils.test.ts +++ b/test/utils.test.ts @@ -56,22 +56,36 @@ describe('utils.parseDateFields()', () => { const original = { data: { foo: [ - { fooAt: date, barat: date, tooDeep: { fooAt: date } }, - { fooAt: date, barat: date, tooDeep: { fooAt: date } }, + { fooAt: date, barat: date, deep: { fooAt: date, tooDeep: { fooAt: date } } }, + { fooAt: date, barat: date, deep: { fooAt: date, tooDeep: { fooAt: date } } }, ], }, }; const parsed = utils.parseDateFields(JSON.parse(JSON.stringify(original))) as utils.Dictionary<any>; - expect(parsed.data.foo[0].fooAt).toBeInstanceOf(Date); - expect(typeof parsed.data.foo[0].barat).toBe('string'); - expect(typeof parsed.data.foo[0].tooDeep.fooAt).toBe('string'); - expect(parsed.data.foo[0].fooAt).toEqual(date); - expect(parsed.data.foo[1].fooAt).toBeInstanceOf(Date); - expect(typeof parsed.data.foo[1].barat).toBe('string'); - expect(typeof parsed.data.foo[1].tooDeep.fooAt).toBe('string'); - expect(parsed.data.foo[1].fooAt).toEqual(date); + for (const item of parsed.data.foo) { + expect(item.fooAt).toBeInstanceOf(Date); + expect(typeof item.barat).toBe('string'); + expect(item.fooAt).toEqual(date); + expect(item.deep.fooAt).toBeInstanceOf(Date); + expect(typeof item.deep.tooDeep.fooAt).toBe('string'); + } + }); + + test('converts dates nested in an array of a list response item', () => { + const date = new Date('2019-12-12T07:34:14.202Z'); + const listResponse = { + total: 1, + items: [{ id: 'a', createdAt: date, calls: [{ startedAt: date, finishedAt: date }] }], + }; + + const parsed = utils.parseDateFields(JSON.parse(JSON.stringify(listResponse))) as utils.Dictionary<any>; + + expect(parsed.items[0].createdAt).toBeInstanceOf(Date); + expect(parsed.items[0].calls[0].startedAt).toBeInstanceOf(Date); + expect(parsed.items[0].calls[0].finishedAt).toBeInstanceOf(Date); + expect(parsed.items[0].calls[0].startedAt).toEqual(date); }); test('does not parse falsy values', () => { diff --git a/tsconfig.scripts.json b/tsconfig.scripts.json new file mode 100644 index 000000000..e6bcafbe5 --- /dev/null +++ b/tsconfig.scripts.json @@ -0,0 +1,33 @@ +{ + // `scripts/` is outside the main project's `include`, so nothing type-checked it. These scripts run under + // Node's native type stripping rather than a build step, hence `noEmit`; `allowImportingTsExtensions` goes + // with it so a script importing another one by its real `.mts` runtime path still type-checks. + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": ".", + "noEmit": true, + // Type stripping erases annotations without understanding them, so whatever would need real codegen + // has to fail here rather than as an `ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX` at run time, which a type + // check alone does not catch: `erasableSyntaxOnly` rejects `enum`/`namespace`/parameter properties, + // and `verbatimModuleSyntax` forces `import type`, since a plain `import { SomeType }` survives + // stripping and then fails as a missing named export. + "erasableSyntaxOnly": true, + "verbatimModuleSyntax": true, + // The root config needs `DOM` for the browser bundle, but a maintainer script has no `window`, and + // inheriting it here would only let `document`/`localStorage` type-check. `fetch`, `Response` and + // `AbortSignal` come from `@types/node` instead. + "lib": ["ESNext"], + // Inherited from `@apify/tsconfig`. Left on, it writes `dist/tsconfig.scripts.tsbuildinfo`, so a bare + // type check would conjure up a `dist/` on a tree that was never built. + "incremental": false, + // Nothing is emitted here, so declaration-emit portability errors are not actionable. + "declaration": false, + // Nothing here pulls in `@types/node` transitively the way `src/` does through its dependencies, and + // this setup gets no automatic `@types` inclusion, so the Node globals have to be asked for by name. + "types": ["node"], + "allowImportingTsExtensions": true, + "module": "nodenext", + "moduleResolution": "nodenext" + }, + "include": ["scripts/**/*"] +} diff --git a/vitest.config.mts b/vitest.config.mts index 74905e1c3..0cfdb989f 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -8,7 +8,8 @@ export default defineConfig({ globals: true, environment: 'node', testTimeout: 20_000, - include: ['test/**/*.test.{js,ts}'], + // `.mts` is here for tests that import the maintainer scripts in `scripts/`, which are ESM. + include: ['test/**/*.test.{js,ts,mts}'], }, resolve: { alias: {