diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..877e8c0a --- /dev/null +++ b/.env.example @@ -0,0 +1,7 @@ + +# PostHog dashboards-as-code (tools/posthog/) +# Generate a Personal API Key at https://us.posthog.com/me/settings#personal-api-keys +# Required scopes: dashboard:write, insight:write, cohort:write, project:read +POSTHOG_PERSONAL_API_KEY= +POSTHOG_HOST=https://us.i.posthog.com +POSTHOG_PROJECT_ID= diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 53366f45..262010f3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -325,3 +325,40 @@ jobs: BASE_URL: https://cockpit.cacheplane.ai EXAMPLES_URL: https://examples.cacheplane.ai OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + + posthog-sync-plan: + name: PostHog — dashboards-as-code drift check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + - run: npm ci + - name: Detect affected + id: affected + run: | + base_sha=$(git merge-base origin/main HEAD) + head_sha=$(git rev-parse HEAD) + affected="$(npx nx show projects --affected --base=$base_sha --head=$head_sha)" + if printf '%s\n' "$affected" | grep -Fx 'posthog-tools' >/dev/null; then + echo "is_affected=yes" >> "$GITHUB_OUTPUT" + else + echo "is_affected=no" >> "$GITHUB_OUTPUT" + echo "::notice::posthog-tools not in affected projects — skipping drift check." + fi + - name: posthog:sync --plan + if: steps.affected.outputs.is_affected == 'yes' + env: + POSTHOG_PERSONAL_API_KEY: ${{ secrets.POSTHOG_PERSONAL_API_KEY }} + POSTHOG_HOST: https://us.i.posthog.com + POSTHOG_PROJECT_ID: ${{ secrets.POSTHOG_PROJECT_ID }} + run: | + if [ -z "$POSTHOG_PERSONAL_API_KEY" ]; then + echo "::notice::POSTHOG_PERSONAL_API_KEY not set — soft skip for contributor PRs." + exit 0 + fi + npx nx run posthog-tools:sync:plan diff --git a/.gitignore b/.gitignore index 83d033b6..3162a155 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,4 @@ libs/licensing/src/lib/license-public-key.generated.ts # superpowers brainstorming output .superpowers/ +tools/posthog/tsconfig.tsbuildinfo diff --git a/docs/superpowers/plans/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code.md b/docs/superpowers/plans/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code.md new file mode 100644 index 00000000..28ae0028 --- /dev/null +++ b/docs/superpowers/plans/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code.md @@ -0,0 +1,2742 @@ +# Analytics Foundation 1A — Dashboards-as-code Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Ship a typed, Nx-integrated PostHog dashboards-as-code pipeline (`sync` + `report` CLIs) plus one sample dashboard (`developer-funnel`) as round-trip proof, with Nx-affected CI gating and a permanent taxonomy guard test. + +**Architecture:** Three layers — authoring (JSON files), engine (zod schema + sync/report TS), transport (openapi-fetch over PostHog's OpenAPI-generated types). Sync uses `posthog_id` writeback for stable matching and always-PATCH for updates (PostHog dedupes; we don't compute drift). New Nx project `posthog-tools` at `tools/posthog/`; CI gate uses `nx show projects --affected`. + +**Tech Stack:** TypeScript via `tsx`; `openapi-fetch` (typed HTTP); `openapi-typescript` (generated types); `zod` (local JSON validation); Node built-in `node:test`; Nx 21.x; GitHub Actions. + +--- + +## Context for the implementer + +- **Spec:** `docs/superpowers/specs/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code-design.md`. Read §4–§11 before starting any task. Anchor source of truth. +- **Parent meta-spec:** `docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md`. Read §7 (analytics architecture) for the original design context. +- **Existing taxonomy:** `docs/gtm/taxonomy.md`. Every event referenced in insight JSONs must appear there. The permanent guard test enforces this. +- **Existing README:** `tools/posthog/README.md` was authored speculatively in Spec 0; Task 17 of this plan aligns it with what's actually implemented. +- **PostHog access:** subagents do NOT have `POSTHOG_PERSONAL_API_KEY`. Tasks 1–17 are all completable without it. Task 18 (first `--apply`) is a manual maintainer step. Task 19 (Chrome MCP verification) happens after the human runs Task 18. +- **TDD discipline:** every code task follows write-test → run-and-fail → implement → run-and-pass → commit. Subagents must not skip the failing-test step. +- **Commits:** small, frequent, conventional. After each task: one commit (or two if a writeback is needed). Commit message format matches existing repo: `feat(posthog-tools): ...` / `test(posthog-tools): ...` / `chore(gtm): ...`. + +## File structure (locked) + +Created or modified by this plan: + +``` +tools/posthog/ +├── README.md # MODIFY (Task 17) +├── project.json # CREATE (Task 3) +├── package.json # CREATE (Task 3) +├── tsconfig.json # CREATE (Task 3) +├── eslint.config.mjs # CREATE (Task 3) +├── env.ts # CREATE (Task 5) +├── env.spec.ts # CREATE (Task 5) +├── schema.ts # CREATE (Task 6) +├── schema.spec.ts # CREATE (Task 6) +├── client.ts # CREATE (Task 7) +├── sync.ts # CREATE (Tasks 8 + 9 + 10) +├── sync.spec.ts # CREATE (Tasks 8 + 9) +├── report.ts # CREATE (Tasks 11 + 12) +├── report.spec.ts # CREATE (Tasks 11 + 12) +├── taxonomy.spec.ts # CREATE (Task 14) +├── types/ +│ ├── README.md # CREATE (Task 4) +│ └── posthog-api.gen.ts # CREATE generated (Task 4) +├── scripts/ +│ └── generate-types.ts # CREATE (Task 4) +├── dashboards/ +│ └── developer-funnel.json # CREATE (Task 13) +├── insights/ +│ ├── pageviews-by-landing.json +│ ├── install-command-clicks.json +│ ├── cockpit-recipe-completion.json +│ └── six-signal-activation-funnel.json +└── cohorts/ + └── .gitkeep # CREATE (Task 13) + +gtm.md # MODIFY §6 + §7 (Task 1) +docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md # MODIFY §6 (Task 1) +package.json # MODIFY scripts + devDeps (Tasks 2, 15) +.env.example # CREATE/MODIFY (Task 15) +.github/workflows/ci.yml # MODIFY add posthog-sync-plan job (Task 16) +``` + +--- + +## Task 1: Decomposition update — gtm.md §6/§7 and meta-spec §6 reflect 1A–1D + +**Files:** +- Modify: `gtm.md` §6 (phases table) and §7 (workstream agents table) +- Modify: `docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md` §6 (workstream decomposition table) + +### Step 1.1 — Update `gtm.md` §6 phases table + +- [ ] Open `gtm.md`. Find the §6 phases table row for Phase 0 (currently reads `analytics-foundation`). +- [ ] Replace that row's "Specs" cell with `analytics-foundation-1a (dashboards-as-code), 1b (telemetry library), 1c (cockpit instrumentation), 1d (website reconciliation)`. + +The full row should read: + +```markdown +| 0 | Measurement foundation | analytics-foundation-1a, 1b, 1c, 1d | 5 dashboards live, 3 event namespaces emitting, `@ngaf/telemetry@0.0.1` published, weekly report runnable. | +``` + +### Step 1.2 — Update `gtm.md` §7 workstream agents table + +- [ ] Find the `analytics-foundation` row in §7. Replace it with four rows for 1A–1D. + +The new rows: + +```markdown +| 0 | analytics-foundation-1a | `cowork/gtm/SKILL.md` | [spec](docs/superpowers/specs/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code-design.md) | `developer-funnel` (sample) | +| 0 | analytics-foundation-1b | `cowork/gtm/SKILL.md` | (pending) | `package-telemetry` | +| 0 | analytics-foundation-1c | `cowork/gtm/SKILL.md` | (pending) | `activation-six-signals` | +| 0 | analytics-foundation-1d | `cowork/gtm/SKILL.md` | (pending) | `enterprise-funnel` | +``` + +### Step 1.3 — Update meta-spec §6 workstream table + +- [ ] Open `docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md`. Find the §6 table with column header `# | Spec | Phase | Depends on | Exit`. Replace the row for `analytics-foundation` (currently row 1) with four rows: + +```markdown +| 1a | analytics-foundation-1a — dashboards-as-code | 0 | — | Sync CLI works locally; `developer-funnel` dashboard renders in PostHog after `--apply`; CI affected gate green. | +| 1b | analytics-foundation-1b — `@ngaf/telemetry` | 0 | — | `@ngaf/telemetry@0.0.1` on npm; Node opt-out + browser opt-in surfaces ship; trust-contract silence test stays green. | +| 1c | analytics-foundation-1c — cockpit instrumentation | 0 | 1b | All six cockpit signals fire; `cockpit:six_signals_complete` aggregation works. | +| 1d | analytics-foundation-1d — website reconciliation | 0 | — | Audit of May-2 plan complete; `marketing:lead_qualified` server enrichment ships; `/api/ingest` proxy live. | +``` + +Renumber the table's row numbers below (was 2,3,4,5,6,7 → now 2,3,4,5,6,7 remain identical since we replaced row 1 with rows 1a-1d). + +### Step 1.4 — Verify and commit + +- [ ] Run: `grep -n "analytics-foundation" gtm.md docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md` + +Expected: every match references `-1a`, `-1b`, `-1c`, or `-1d`. No bare `analytics-foundation` (without sub-suffix) remains except in headings/prose where it refers to the parent. + +- [ ] Commit: + +```bash +git add gtm.md docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md +git commit -m "$(cat <<'EOF' +chore(gtm): decompose analytics-foundation into 1a-1d sub-specs + +Updates gtm.md §6/§7 and meta-spec §6 to reflect the 4-spec decomposition +agreed during Spec 1A brainstorm. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 2: Add workspace devDependencies + +**Files:** +- Modify: `package.json` (root) +- Modify: `package-lock.json` (root, auto) + +The repo uses npm workspaces and the user's persistent memory says: **never regenerate package-lock.json on macOS** (drops Linux @next/swc-* bindings, breaks CI). Use targeted `npm install ` commands; npm preserves existing lockfile entries. + +### Step 2.1 — Install the three devDeps explicitly + +- [ ] From repo root, run: + +```bash +npm install --save-dev --workspaces=false openapi-fetch@^0.13.0 openapi-typescript@^7.4.0 zod@^3.23.0 +``` + +The `--workspaces=false` flag scopes install to the root package only (we don't want these inside every workspace). + +### Step 2.2 — Verify lockfile diff is bounded + +- [ ] Run: + +```bash +git diff --stat package.json package-lock.json +``` + +Expected: `package.json` shows 3 added lines under `devDependencies`. `package-lock.json` shows additions for the 3 packages and their dependencies, **no deletions of `@next/swc-linux-*` bindings**. + +- [ ] If deletions appear, **STOP**. Restore the lockfile (`git checkout package-lock.json`) and re-run with `--no-save` then manually edit package.json (per the project memory note about platform bindings). + +### Step 2.3 — Commit + +- [ ] Run: + +```bash +git add package.json package-lock.json +git commit -m "$(cat <<'EOF' +chore(deps): add openapi-fetch, openapi-typescript, zod for posthog-tools + +Devdeps for the Spec 1A dashboards-as-code pipeline. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 3: Nx project scaffold for `posthog-tools` + +**Files:** +- Create: `tools/posthog/package.json` +- Create: `tools/posthog/tsconfig.json` +- Create: `tools/posthog/project.json` +- Create: `tools/posthog/eslint.config.mjs` + +### Step 3.1 — Create `tools/posthog/package.json` + +- [ ] Write file: + +```json +{ + "name": "@ngaf/posthog-tools", + "private": true, + "version": "0.0.0", + "type": "module" +} +``` + +### Step 3.2 — Create `tools/posthog/tsconfig.json` + +- [ ] Write file: + +```json +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "module": "esnext", + "moduleResolution": "bundler", + "target": "es2022", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "noEmit": true, + "resolveJsonModule": true + }, + "include": ["**/*.ts"], + "exclude": ["node_modules"] +} +``` + +### Step 3.3 — Create `tools/posthog/project.json` + +- [ ] Write file: + +```json +{ + "name": "posthog-tools", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "tools/posthog", + "projectType": "library", + "tags": ["scope:gtm", "type:tool"], + "namedInputs": { + "taxonomy": ["{workspaceRoot}/docs/gtm/taxonomy.md"] + }, + "targets": { + "lint": { + "executor": "@nx/eslint:lint" + }, + "test": { + "executor": "nx:run-commands", + "options": { + "command": "npx tsx --test tools/posthog/*.spec.ts" + } + }, + "sync:plan": { + "executor": "nx:run-commands", + "inputs": ["default", "taxonomy"], + "options": { + "command": "npx tsx tools/posthog/sync.ts --plan" + } + }, + "sync:apply": { + "executor": "nx:run-commands", + "inputs": ["default", "taxonomy"], + "options": { + "command": "npx tsx tools/posthog/sync.ts --apply" + } + }, + "report": { + "executor": "nx:run-commands", + "options": { + "command": "npx tsx tools/posthog/report.ts" + } + }, + "generate-types": { + "executor": "nx:run-commands", + "options": { + "command": "npx tsx tools/posthog/scripts/generate-types.ts" + } + } + } +} +``` + +### Step 3.4 — Create `tools/posthog/eslint.config.mjs` + +- [ ] Write file: + +```javascript +import baseConfig from '../../eslint.config.mjs'; + +export default [ + ...baseConfig, + { + files: ['**/*.ts'], + rules: { + '@typescript-eslint/no-explicit-any': 'warn' + } + }, + { + files: ['**/*.spec.ts'], + rules: { + '@typescript-eslint/no-explicit-any': 'off' + } + } +]; +``` + +### Step 3.5 — Verify Nx recognizes the project + +- [ ] Run: + +```bash +npx nx show projects | grep -Fx posthog-tools +``` + +Expected: prints `posthog-tools`. If it doesn't, check the JSON files for syntax errors. + +- [ ] Run: + +```bash +npx nx show project posthog-tools --json | head -30 +``` + +Expected: JSON output showing the targets (`lint`, `test`, `sync:plan`, `sync:apply`, `report`, `generate-types`). + +### Step 3.6 — Commit + +- [ ] Run: + +```bash +git add tools/posthog/{package,tsconfig,project}.json tools/posthog/eslint.config.mjs +git commit -m "$(cat <<'EOF' +feat(posthog-tools): scaffold Nx project with sync/report/test targets + +namedInputs.taxonomy includes docs/gtm/taxonomy.md so taxonomy edits +mark this project as affected. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 4: Generate PostHog API types from OpenAPI spec + +**Files:** +- Create: `tools/posthog/scripts/generate-types.ts` +- Create: `tools/posthog/types/README.md` +- Create: `tools/posthog/types/posthog-api.gen.ts` (generated) + +### Step 4.1 — Write the generator script + +- [ ] Create `tools/posthog/scripts/generate-types.ts`: + +```typescript +#!/usr/bin/env tsx +/** + * Regenerates tools/posthog/types/posthog-api.gen.ts from PostHog's published + * OpenAPI spec. Run quarterly or whenever PostHog changes their API surface. + * + * Usage: nx run posthog-tools:generate-types + */ +import { writeFile } from 'node:fs/promises'; +import { fileURLToPath } from 'node:url'; +import { dirname, join } from 'node:path'; +import openapiTS, { astToString } from 'openapi-typescript'; + +const POSTHOG_SCHEMA_URL = 'https://us.posthog.com/api/schema/'; +const OUTPUT_PATH = join( + dirname(fileURLToPath(import.meta.url)), + '..', + 'types', + 'posthog-api.gen.ts', +); + +async function main(): Promise { + console.log(`Fetching OpenAPI spec from ${POSTHOG_SCHEMA_URL}...`); + const ast = await openapiTS(new URL(POSTHOG_SCHEMA_URL)); + const contents = astToString(ast); + const header = `/* eslint-disable */\n// Generated by tools/posthog/scripts/generate-types.ts.\n// DO NOT EDIT MANUALLY. Run: npx nx run posthog-tools:generate-types\n// Source: ${POSTHOG_SCHEMA_URL}\n\n`; + await writeFile(OUTPUT_PATH, header + contents, 'utf8'); + console.log(`Wrote ${OUTPUT_PATH}`); +} + +main().catch((err) => { + console.error(err); + process.exit(1); +}); +``` + +### Step 4.2 — Write the types README + +- [ ] Create `tools/posthog/types/README.md`: + +```markdown +# Generated PostHog API types + +`posthog-api.gen.ts` is generated from PostHog's published OpenAPI spec at +https://us.posthog.com/api/schema/. It is committed to the repo deliberately: + +- Avoids a build-time network call to PostHog (faster, more reliable). +- Makes type-shift visible in PRs (you can `git blame` field renames). +- Keeps `tsx` startup fast (no runtime codegen step). + +## Regenerating + +Run quarterly or whenever PostHog announces an API change: + +```bash +npx nx run posthog-tools:generate-types +``` + +This rewrites `posthog-api.gen.ts` in place. Commit the diff if PostHog's API +changed; review the diff carefully — field renames or required-field additions +will surface here. +``` + +### Step 4.3 — Run the generator + +- [ ] Run: + +```bash +npx tsx tools/posthog/scripts/generate-types.ts +``` + +Expected output: +``` +Fetching OpenAPI spec from https://us.posthog.com/api/schema/... +Wrote /Users/blove/repos/.../tools/posthog/types/posthog-api.gen.ts +``` + +The generated file should be 5,000–50,000 lines depending on PostHog's current spec size. If it's under 1000 lines, the fetch likely returned an error page — inspect the file. + +### Step 4.4 — Verify the generated types compile + +- [ ] Run: + +```bash +npx tsc --noEmit --project tools/posthog/tsconfig.json +``` + +Expected: no errors. (At this stage there's no consumer code yet; this just confirms the generated file is syntactically valid TypeScript.) + +### Step 4.5 — Commit + +- [ ] Run: + +```bash +git add tools/posthog/scripts/generate-types.ts tools/posthog/types/ +git commit -m "$(cat <<'EOF' +feat(posthog-tools): add OpenAPI type generation + initial types + +Commits the generated posthog-api.gen.ts. Regenerate quarterly via +nx run posthog-tools:generate-types. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 5: `env.ts` with TDD + +**Files:** +- Create: `tools/posthog/env.spec.ts` +- Create: `tools/posthog/env.ts` + +### Step 5.1 — Write the failing test + +- [ ] Create `tools/posthog/env.spec.ts`: + +```typescript +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { parseEnv } from './env.js'; + +test('parseEnv accepts a valid environment', () => { + const env = parseEnv({ + POSTHOG_PERSONAL_API_KEY: 'phx_'.padEnd(40, 'a'), + POSTHOG_PROJECT_ID: '12345', + }); + assert.equal(env.POSTHOG_PERSONAL_API_KEY, 'phx_'.padEnd(40, 'a')); + assert.equal(env.POSTHOG_HOST, 'https://us.i.posthog.com'); + assert.equal(env.POSTHOG_PROJECT_ID, 12345); +}); + +test('parseEnv coerces POSTHOG_PROJECT_ID to a number', () => { + const env = parseEnv({ + POSTHOG_PERSONAL_API_KEY: 'phx_'.padEnd(40, 'a'), + POSTHOG_PROJECT_ID: '987', + }); + assert.equal(env.POSTHOG_PROJECT_ID, 987); + assert.equal(typeof env.POSTHOG_PROJECT_ID, 'number'); +}); + +test('parseEnv respects POSTHOG_HOST override', () => { + const env = parseEnv({ + POSTHOG_PERSONAL_API_KEY: 'phx_'.padEnd(40, 'a'), + POSTHOG_PROJECT_ID: '12345', + POSTHOG_HOST: 'https://eu.i.posthog.com', + }); + assert.equal(env.POSTHOG_HOST, 'https://eu.i.posthog.com'); +}); + +test('parseEnv throws on missing required POSTHOG_PERSONAL_API_KEY', () => { + assert.throws( + () => parseEnv({ POSTHOG_PROJECT_ID: '12345' }), + /POSTHOG_PERSONAL_API_KEY/, + ); +}); + +test('parseEnv throws on short key', () => { + assert.throws( + () => parseEnv({ POSTHOG_PERSONAL_API_KEY: 'short', POSTHOG_PROJECT_ID: '1' }), + /POSTHOG_PERSONAL_API_KEY/, + ); +}); + +test('parseEnv throws on non-numeric POSTHOG_PROJECT_ID', () => { + assert.throws( + () => parseEnv({ POSTHOG_PERSONAL_API_KEY: 'phx_'.padEnd(40, 'a'), POSTHOG_PROJECT_ID: 'abc' }), + /POSTHOG_PROJECT_ID/, + ); +}); +``` + +### Step 5.2 — Run the test, see it fail + +- [ ] Run: + +```bash +npx tsx --test tools/posthog/env.spec.ts +``` + +Expected: ERROR — cannot resolve module `./env.js`. + +### Step 5.3 — Implement `env.ts` + +- [ ] Create `tools/posthog/env.ts`: + +```typescript +import { z } from 'zod'; + +const envSchema = z.object({ + POSTHOG_PERSONAL_API_KEY: z + .string() + .min(20, 'POSTHOG_PERSONAL_API_KEY must be at least 20 characters'), + POSTHOG_HOST: z + .string() + .url() + .default('https://us.i.posthog.com'), + POSTHOG_PROJECT_ID: z.coerce + .number({ invalid_type_error: 'POSTHOG_PROJECT_ID must be numeric' }) + .int('POSTHOG_PROJECT_ID must be an integer') + .positive('POSTHOG_PROJECT_ID must be positive'), +}); + +export type PosthogEnv = z.infer; + +export function parseEnv(source: NodeJS.ProcessEnv | Record): PosthogEnv { + return envSchema.parse(source); +} + +// Lazy singleton for runtime use. Tests pass their own source to parseEnv directly. +let cached: PosthogEnv | null = null; +export function env(): PosthogEnv { + if (!cached) cached = parseEnv(process.env); + return cached; +} +``` + +### Step 5.4 — Run the test, see it pass + +- [ ] Run: + +```bash +npx tsx --test tools/posthog/env.spec.ts +``` + +Expected: `✔ 6 tests passing`. + +### Step 5.5 — Commit + +- [ ] Run: + +```bash +git add tools/posthog/env.ts tools/posthog/env.spec.ts +git commit -m "$(cat <<'EOF' +feat(posthog-tools): env.ts with zod-validated POSTHOG_* parsing + +6 tests covering required key, host default, project id coercion, +and rejection of missing/short/non-numeric values. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 6: `schema.ts` (zod schemas for local JSON shapes) with TDD + +**Files:** +- Create: `tools/posthog/schema.spec.ts` +- Create: `tools/posthog/schema.ts` + +### Step 6.1 — Write the failing test + +- [ ] Create `tools/posthog/schema.spec.ts`: + +```typescript +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { readFile } from 'node:fs/promises'; +import { glob } from 'node:fs/promises'; +import { join } from 'node:path'; +import { DashboardLocal, InsightLocal, CohortLocal } from './schema.js'; + +const TOOLS_POSTHOG = new URL('.', import.meta.url).pathname; + +test('DashboardLocal accepts minimal valid input', () => { + const result = DashboardLocal.safeParse({ + slug: 'developer-funnel', + posthog_id: null, + name: 'GTM · Developer funnel', + description: 'Pageview → install → activation.', + tiles: [{ insight: 'pageviews-by-landing' }], + }); + assert.equal(result.success, true); + if (result.success) assert.deepEqual(result.data.tags, []); // default +}); + +test('DashboardLocal rejects uppercase slug', () => { + const result = DashboardLocal.safeParse({ + slug: 'Bad-Slug', + posthog_id: null, + name: 'x', + description: 'x', + tiles: [], + }); + assert.equal(result.success, false); +}); + +test('InsightLocal accepts a trend with breakdown', () => { + const result = InsightLocal.safeParse({ + slug: 'pageviews-by-landing', + posthog_id: null, + kind: 'trends', + name: 'Pageviews by landing path', + events: [{ event: '$pageview', math: 'total' }], + breakdown: '$pathname', + date_from: '-30d', + }); + assert.equal(result.success, true); +}); + +test('InsightLocal funnel requires steps', () => { + const result = InsightLocal.safeParse({ + slug: 'six-signal', + posthog_id: null, + kind: 'funnel', + name: 'six', + window_minutes: 30, + date_from: '-30d', + }); + assert.equal(result.success, false); +}); + +test('InsightLocal funnel with steps validates', () => { + const result = InsightLocal.safeParse({ + slug: 'six-signal', + posthog_id: null, + kind: 'funnel', + name: 'six', + window_minutes: 30, + steps: [{ event: 'cockpit:install_command_copied' }], + date_from: '-30d', + }); + assert.equal(result.success, true); +}); + +test('CohortLocal accepts pass-through query', () => { + const result = CohortLocal.safeParse({ + slug: 'activated-developers', + posthog_id: null, + name: 'Activated developers', + description: 'last 30d', + query: { kind: 'ActorsQuery', source: {} }, + }); + assert.equal(result.success, true); +}); + +test('every committed JSON in dashboards/insights/cohorts parses', async () => { + const root = TOOLS_POSTHOG; + const checks = [ + { dir: 'dashboards', schema: DashboardLocal }, + { dir: 'insights', schema: InsightLocal }, + { dir: 'cohorts', schema: CohortLocal }, + ]; + for (const { dir, schema } of checks) { + for await (const path of glob(`${join(root, dir)}/*.json`)) { + const json = JSON.parse(await readFile(path, 'utf8')); + const result = schema.safeParse(json); + assert.equal(result.success, true, `${path}: ${result.success ? '' : JSON.stringify(result.error.issues)}`); + } + } +}); +``` + +### Step 6.2 — Run, see fail + +- [ ] Run: + +```bash +npx tsx --test tools/posthog/schema.spec.ts +``` + +Expected: ERROR — cannot resolve `./schema.js`. + +### Step 6.3 — Implement `schema.ts` + +- [ ] Create `tools/posthog/schema.ts`: + +```typescript +import { z } from 'zod'; + +const slug = z.string().regex(/^[a-z0-9-]+$/, 'slug must be lowercase kebab-case'); + +export const DashboardLocal = z.object({ + slug, + posthog_id: z.number().nullable(), + name: z.string().min(1), + description: z.string(), + tags: z.array(z.string()).default([]), + tiles: z.array(z.object({ insight: z.string() })), +}); +export type DashboardLocal = z.infer; + +export const InsightLocal = z + .object({ + slug, + posthog_id: z.number().nullable(), + kind: z.enum(['trends', 'funnel', 'retention']), + name: z.string().min(1), + // trends-specific + events: z + .array( + z.object({ + event: z.string(), + math: z.enum(['total', 'dau', 'unique_session']).optional(), + properties: z + .array( + z.object({ + key: z.string(), + value: z.union([z.string(), z.number(), z.boolean()]), + operator: z.enum(['exact', 'is_not', 'icontains']).default('exact'), + }), + ) + .optional(), + }), + ) + .optional(), + breakdown: z.string().optional(), + breakdown_limit: z.number().int().positive().optional(), + interval: z.enum(['minute', 'hour', 'day', 'week', 'month']).default('day'), + // funnel-specific + window_minutes: z.number().int().positive().optional(), + steps: z + .array(z.object({ event: z.string(), name: z.string().optional() })) + .optional(), + date_from: z.string().default('-30d'), + }) + .refine((v) => (v.kind === 'funnel' ? Array.isArray(v.steps) && v.steps.length > 0 : true), { + message: 'funnel insights require non-empty steps', + path: ['steps'], + }); +export type InsightLocal = z.infer; + +export const CohortLocal = z.object({ + slug, + posthog_id: z.number().nullable(), + name: z.string().min(1), + description: z.string(), + query: z.unknown(), +}); +export type CohortLocal = z.infer; +``` + +### Step 6.4 — Run, see pass + +- [ ] Run: + +```bash +npx tsx --test tools/posthog/schema.spec.ts +``` + +Expected: `✔ 7 tests passing`. (Final test scans `dashboards/insights/cohorts` — they don't exist yet, so the loop is empty and the test passes trivially.) + +### Step 6.5 — Commit + +```bash +git add tools/posthog/schema.ts tools/posthog/schema.spec.ts +git commit -m "$(cat <<'EOF' +feat(posthog-tools): zod schemas for dashboard/insight/cohort JSON + +Schemas validate slug format, required fields, funnel-specific +constraints. Fixture validator parses every committed JSON file. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 7: `client.ts` — openapi-fetch wrapper with 429 retry + +**Files:** +- Create: `tools/posthog/client.ts` + +### Step 7.1 — Implement + +- [ ] Create `tools/posthog/client.ts`: + +```typescript +import createClient, { type Middleware } from 'openapi-fetch'; +import type { paths } from './types/posthog-api.gen.js'; +import { env } from './env.js'; + +const RETRYABLE_STATUSES = new Set([429, 502, 503, 504]); +const MAX_ATTEMPTS = 3; + +const retryMiddleware: Middleware = { + async onResponse({ response, request }) { + let attempt = 1; + let res = response; + while (RETRYABLE_STATUSES.has(res.status) && attempt < MAX_ATTEMPTS) { + const backoffMs = Math.min(8000, 500 * 2 ** (attempt - 1)); + await new Promise((resolve) => setTimeout(resolve, backoffMs)); + res = await fetch(request.clone()); + attempt += 1; + } + return res; + }, +}; + +export function createPosthogClient() { + const e = env(); + const client = createClient({ + baseUrl: `${e.POSTHOG_HOST}/api/projects/${e.POSTHOG_PROJECT_ID}`, + headers: { + Authorization: `Bearer ${e.POSTHOG_PERSONAL_API_KEY}`, + 'Content-Type': 'application/json', + }, + }); + client.use(retryMiddleware); + return client; +} + +// Lazy singleton. +let cached: ReturnType | null = null; +export function ph() { + if (!cached) cached = createPosthogClient(); + return cached; +} +``` + +### Step 7.2 — Sanity check it compiles + +- [ ] Run: + +```bash +npx tsc --noEmit --project tools/posthog/tsconfig.json +``` + +Expected: no errors. + +### Step 7.3 — Commit + +```bash +git add tools/posthog/client.ts +git commit -m "$(cat <<'EOF' +feat(posthog-tools): openapi-fetch client with 429/503 backoff + +Three-attempt retry with exponential backoff (500ms, 1s, 2s, max 8s) +for transient PostHog errors. Lazy singleton via ph(). + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 8: `sync.ts` — plan computation with TDD + +**Files:** +- Create: `tools/posthog/sync.spec.ts` +- Create: `tools/posthog/sync.ts` (partial — plan only) + +This task implements `loadLocal()`, `loadRemote()`, and `computePlan()`. The next task implements `applyPlan()` and writeback. The task after wires the CLI. + +### Step 8.1 — Write the failing plan tests + +- [ ] Create `tools/posthog/sync.spec.ts`: + +```typescript +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { mkdtemp, writeFile, mkdir, readFile } from 'node:fs/promises'; +import { tmpdir } from 'node:os'; +import { join } from 'node:path'; +import { computePlan, type SyncClient } from './sync.js'; + +async function fixtureRoot(): Promise { + const dir = await mkdtemp(join(tmpdir(), 'posthog-tools-test-')); + await mkdir(join(dir, 'dashboards'), { recursive: true }); + await mkdir(join(dir, 'insights'), { recursive: true }); + await mkdir(join(dir, 'cohorts'), { recursive: true }); + return dir; +} + +function fakeClient(remote: { dashboards?: any[]; insights?: any[]; cohorts?: any[] } = {}): SyncClient { + return { + listDashboards: async () => remote.dashboards ?? [], + listInsights: async () => remote.insights ?? [], + listCohorts: async () => remote.cohorts ?? [], + createDashboard: async (body) => ({ ...body, id: 1000 }), + createInsight: async (body) => ({ ...body, id: 2000 }), + createCohort: async (body) => ({ ...body, id: 3000 }), + updateDashboard: async (id, body) => ({ ...body, id }), + updateInsight: async (id, body) => ({ ...body, id }), + updateCohort: async (id, body) => ({ ...body, id }), + deleteDashboard: async () => undefined, + deleteInsight: async () => undefined, + deleteCohort: async () => undefined, + }; +} + +test('computePlan: all-new local artifacts produce [create] for each', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'dashboards/d1.json'), JSON.stringify({ + slug: 'd1', posthog_id: null, name: 'D1', description: '', tiles: [{ insight: 'i1' }], + })); + await writeFile(join(root, 'insights/i1.json'), JSON.stringify({ + slug: 'i1', posthog_id: null, kind: 'trends', name: 'I1', events: [{ event: '$pageview', math: 'total' }], + })); + const plan = await computePlan({ root, client: fakeClient() }); + assert.equal(plan.create.length, 2); // 1 dashboard + 1 insight + assert.equal(plan.update.length, 0); + assert.equal(plan.orphan.length, 0); +}); + +test('computePlan: existing posthog_id matches remote and produces [update]', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/i1.json'), JSON.stringify({ + slug: 'i1', posthog_id: 42, kind: 'trends', name: 'I1', events: [{ event: '$pageview' }], + })); + const plan = await computePlan({ + root, + client: fakeClient({ insights: [{ id: 42, name: 'I1', filters: {} }] }), + }); + assert.equal(plan.update.length, 1); + assert.equal(plan.update[0].local.slug, 'i1'); +}); + +test('computePlan: remote without local match becomes [orphan]', async () => { + const root = await fixtureRoot(); + const plan = await computePlan({ + root, + client: fakeClient({ dashboards: [{ id: 999, name: 'Stray dashboard' }] }), + }); + assert.equal(plan.orphan.length, 1); + assert.equal(plan.orphan[0].remote.name, 'Stray dashboard'); +}); + +test('computePlan: name-fallback match when posthog_id is null', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/by-name.json'), JSON.stringify({ + slug: 'by-name', posthog_id: null, kind: 'trends', name: 'Existing Insight', + events: [{ event: '$pageview' }], + })); + const plan = await computePlan({ + root, + client: fakeClient({ insights: [{ id: 77, name: 'Existing Insight' }] }), + }); + assert.equal(plan.update.length, 1); + assert.equal(plan.update[0].remoteId, 77); +}); + +test('computePlan: ambiguous name match (two remotes same name) forces create', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/x.json'), JSON.stringify({ + slug: 'x', posthog_id: null, kind: 'trends', name: 'Same Name', + events: [{ event: '$pageview' }], + })); + const plan = await computePlan({ + root, + client: fakeClient({ + insights: [{ id: 1, name: 'Same Name' }, { id: 2, name: 'Same Name' }], + }), + }); + assert.equal(plan.create.length, 1); + assert.equal(plan.orphan.length, 2); // both ambiguous remotes become orphans +}); + +test('computePlan: invalid local JSON throws with file path in message', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/bad.json'), JSON.stringify({ slug: 'BAD-SLUG', posthog_id: null })); + await assert.rejects( + () => computePlan({ root, client: fakeClient() }), + /insights\/bad\.json/, + ); +}); +``` + +### Step 8.2 — Run, see fail + +- [ ] Run: + +```bash +npx tsx --test tools/posthog/sync.spec.ts +``` + +Expected: ERROR — cannot resolve `./sync.js`. + +### Step 8.3 — Implement plan computation in `sync.ts` + +- [ ] Create `tools/posthog/sync.ts`: + +```typescript +import { readFile, readdir } from 'node:fs/promises'; +import { join } from 'node:path'; +import { DashboardLocal, InsightLocal, CohortLocal } from './schema.js'; +import { z } from 'zod'; + +// Minimal remote shapes — we only read fields we use, so we keep these loose. +export interface RemoteDashboard { id: number; name: string; tags?: string[] } +export interface RemoteInsight { id: number; name: string; filters?: unknown } +export interface RemoteCohort { id: number; name: string } + +// Transport interface. The real client adapts openapi-fetch to this shape. +export interface SyncClient { + listDashboards(): Promise; + listInsights(): Promise; + listCohorts(): Promise; + createDashboard(body: any): Promise; + createInsight(body: any): Promise; + createCohort(body: any): Promise; + updateDashboard(id: number, body: any): Promise; + updateInsight(id: number, body: any): Promise; + updateCohort(id: number, body: any): Promise; + deleteDashboard(id: number): Promise; + deleteInsight(id: number): Promise; + deleteCohort(id: number): Promise; +} + +export type Kind = 'dashboard' | 'insight' | 'cohort'; + +export interface PlanItem { + kind: Kind; + local?: any; + remote?: any; + remoteId?: number; + path?: string; +} + +export interface SyncPlan { + create: PlanItem[]; + update: PlanItem[]; + orphan: PlanItem[]; +} + +async function loadLocalDir( + root: string, + subdir: string, + schema: z.ZodType, +): Promise> { + const dir = join(root, subdir); + let files: string[]; + try { + files = (await readdir(dir)).filter((f) => f.endsWith('.json')); + } catch { + return []; + } + const out: Array<{ data: T; path: string }> = []; + for (const f of files) { + const path = join(subdir, f); + const json = JSON.parse(await readFile(join(root, path), 'utf8')); + const result = schema.safeParse(json); + if (!result.success) { + throw new Error(`${path}: ${JSON.stringify(result.error.issues)}`); + } + out.push({ data: result.data, path }); + } + return out; +} + +function matchRemoteById( + local: { posthog_id: number | null; name: string }, + remotes: R[], +): { remote: R | null; ambiguous: R[] } { + if (local.posthog_id !== null) { + const remote = remotes.find((r) => r.id === local.posthog_id) ?? null; + return { remote, ambiguous: [] }; + } + const named = remotes.filter((r) => r.name === local.name); + if (named.length === 1) return { remote: named[0], ambiguous: [] }; + if (named.length > 1) return { remote: null, ambiguous: named }; + return { remote: null, ambiguous: [] }; +} + +export async function computePlan({ + root, + client, +}: { + root: string; + client: SyncClient; +}): Promise { + const localDashboards = await loadLocalDir(root, 'dashboards', DashboardLocal); + const localInsights = await loadLocalDir(root, 'insights', InsightLocal); + const localCohorts = await loadLocalDir(root, 'cohorts', CohortLocal); + const remoteDashboards = await client.listDashboards(); + const remoteInsights = await client.listInsights(); + const remoteCohorts = await client.listCohorts(); + + const plan: SyncPlan = { create: [], update: [], orphan: [] }; + const matchedRemoteIds = { dashboard: new Set(), insight: new Set(), cohort: new Set() }; + + const apply = ( + kind: Kind, + locals: Array<{ data: L; path: string }>, + remotes: R[], + matched: Set, + ) => { + for (const { data, path } of locals) { + const { remote, ambiguous } = matchRemoteById(data, remotes); + if (remote) { + plan.update.push({ kind, local: data, remote, remoteId: remote.id, path }); + matched.add(remote.id); + } else if (ambiguous.length > 0) { + plan.create.push({ kind, local: data, path }); + for (const r of ambiguous) { + plan.orphan.push({ kind, remote: r }); + matched.add(r.id); + } + } else { + plan.create.push({ kind, local: data, path }); + } + } + for (const r of remotes) { + if (!matched.has(r.id)) { + plan.orphan.push({ kind, remote: r }); + } + } + }; + + apply('dashboard', localDashboards, remoteDashboards, matchedRemoteIds.dashboard); + apply('insight', localInsights, remoteInsights, matchedRemoteIds.insight); + apply('cohort', localCohorts, remoteCohorts, matchedRemoteIds.cohort); + + return plan; +} +``` + +### Step 8.4 — Run, see pass + +- [ ] Run: + +```bash +npx tsx --test tools/posthog/sync.spec.ts +``` + +Expected: `✔ 6 tests passing`. + +### Step 8.5 — Commit + +```bash +git add tools/posthog/sync.ts tools/posthog/sync.spec.ts +git commit -m "$(cat <<'EOF' +feat(posthog-tools): computePlan() for sync engine + +Loads local JSON, validates via zod, matches against remote by +posthog_id (or unique name fallback), classifies into +create/update/orphan. Ambiguous name matches force create. + +6 tests covering match-by-id, name fallback, ambiguous case, +orphan detection, invalid JSON error handling. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 9: `sync.ts` — apply + writeback with TDD + +**Files:** +- Modify: `tools/posthog/sync.spec.ts` (add tests) +- Modify: `tools/posthog/sync.ts` (add apply + writeback) + +### Step 9.1 — Add the failing apply tests + +- [ ] Append to `tools/posthog/sync.spec.ts`: + +```typescript +import { applyPlan, type ApplyResult } from './sync.js'; + +test('applyPlan: apply order — insights POSTed before dashboards', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'dashboards/d.json'), JSON.stringify({ + slug: 'd', posthog_id: null, name: 'D', description: '', tiles: [{ insight: 'i' }], + })); + await writeFile(join(root, 'insights/i.json'), JSON.stringify({ + slug: 'i', posthog_id: null, kind: 'trends', name: 'I', events: [{ event: '$pageview' }], + })); + const createCalls: string[] = []; + const client: SyncClient = { + ...fakeClient(), + createInsight: async (body) => { createCalls.push('insight'); return { ...body, id: 2001 }; }, + createDashboard: async (body) => { createCalls.push('dashboard'); return { ...body, id: 1001 }; }, + }; + const plan = await computePlan({ root, client }); + await applyPlan({ root, client, plan }); + assert.deepEqual(createCalls, ['insight', 'dashboard']); +}); + +test('applyPlan: writeback updates posthog_id in source JSON', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/i.json'), JSON.stringify({ + slug: 'i', posthog_id: null, kind: 'trends', name: 'I', events: [{ event: '$pageview' }], + }, null, 2)); + const client: SyncClient = { ...fakeClient(), createInsight: async (body) => ({ ...body, id: 7777 }) }; + const plan = await computePlan({ root, client }); + await applyPlan({ root, client, plan }); + const updated = JSON.parse(await readFile(join(root, 'insights/i.json'), 'utf8')); + assert.equal(updated.posthog_id, 7777); +}); + +test('applyPlan: dashboard with unknown insight slug throws', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'dashboards/d.json'), JSON.stringify({ + slug: 'd', posthog_id: null, name: 'D', description: '', tiles: [{ insight: 'missing-insight' }], + })); + const client = fakeClient(); + const plan = await computePlan({ root, client }); + await assert.rejects( + () => applyPlan({ root, client, plan }), + /missing-insight/, + ); +}); + +test('applyPlan: partial success — failed insight does not block other creates', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/a.json'), JSON.stringify({ + slug: 'a', posthog_id: null, kind: 'trends', name: 'A', events: [{ event: '$pageview' }], + })); + await writeFile(join(root, 'insights/fail.json'), JSON.stringify({ + slug: 'fail', posthog_id: null, kind: 'trends', name: 'Fail', events: [{ event: '$pageview' }], + })); + let calls = 0; + const client: SyncClient = { + ...fakeClient(), + createInsight: async (body) => { + calls += 1; + if (body.name === 'Fail') throw new Error('500'); + return { ...body, id: 100 + calls }; + }, + }; + const plan = await computePlan({ root, client }); + const result: ApplyResult = await applyPlan({ root, client, plan }); + assert.equal(result.applied, 1); + assert.equal(result.failed, 1); +}); + +test('applyPlan: --plan mode never writes to disk', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/i.json'), JSON.stringify({ + slug: 'i', posthog_id: null, kind: 'trends', name: 'I', events: [{ event: '$pageview' }], + })); + const before = await readFile(join(root, 'insights/i.json'), 'utf8'); + const client = fakeClient(); + const plan = await computePlan({ root, client }); + // computePlan never writes; applyPlan({ dryRun: true }) also never writes + await applyPlan({ root, client, plan, dryRun: true }); + const after = await readFile(join(root, 'insights/i.json'), 'utf8'); + assert.equal(before, after); +}); + +test('applyPlan: orphans are never deleted unless deleteOrphans:true', async () => { + const root = await fixtureRoot(); + const deleteCalls: number[] = []; + const client: SyncClient = { + ...fakeClient({ dashboards: [{ id: 999, name: 'Stray' }] }), + deleteDashboard: async (id) => { deleteCalls.push(id); }, + }; + const plan = await computePlan({ root, client }); + await applyPlan({ root, client, plan }); + assert.deepEqual(deleteCalls, []); + await applyPlan({ root, client, plan, deleteOrphans: true }); + assert.deepEqual(deleteCalls, [999]); +}); +``` + +### Step 9.2 — Run, see fail + +- [ ] Run: + +```bash +npx tsx --test tools/posthog/sync.spec.ts +``` + +Expected: error — `applyPlan` not exported. + +### Step 9.3 — Add apply + writeback to `sync.ts` + +- [ ] Append to `tools/posthog/sync.ts`: + +```typescript +import { writeFile, rename } from 'node:fs/promises'; + +export interface ApplyResult { + applied: number; + failed: number; + errors: Array<{ kind: Kind; slug: string; error: string }>; +} + +export interface ApplyOptions { + root: string; + client: SyncClient; + plan: SyncPlan; + dryRun?: boolean; + deleteOrphans?: boolean; +} + +async function atomicWriteJson(path: string, data: unknown): Promise { + const tmpPath = `${path}.tmp`; + await writeFile(tmpPath, JSON.stringify(data, null, 2) + '\n', 'utf8'); + await rename(tmpPath, path); +} + +function resolveTiles( + dashboard: any, + insightSlugToId: Map, +): Array<{ insight: number }> { + return (dashboard.tiles ?? []).map((t: { insight: string }) => { + const id = insightSlugToId.get(t.insight); + if (id === undefined) { + throw new Error( + `dashboards/${dashboard.slug}.json references unknown insight slug "${t.insight}"`, + ); + } + return { insight: id }; + }); +} + +export async function applyPlan(options: ApplyOptions): Promise { + const { root, client, plan, dryRun = false, deleteOrphans = false } = options; + const result: ApplyResult = { applied: 0, failed: 0, errors: [] }; + const insightSlugToId = new Map(); + + // Pre-populate insight slug→id map from existing posthog_ids (for dashboards referencing already-synced insights). + for (const item of plan.update.filter((p) => p.kind === 'insight')) { + insightSlugToId.set(item.local.slug, item.remoteId!); + } + + // Apply order: cohorts → insights → dashboards. Creates within a tier before updates. + const tiers: Array<{ kind: Kind; create: PlanItem[]; update: PlanItem[] }> = [ + { kind: 'cohort', create: plan.create.filter((p) => p.kind === 'cohort'), update: plan.update.filter((p) => p.kind === 'cohort') }, + { kind: 'insight', create: plan.create.filter((p) => p.kind === 'insight'), update: plan.update.filter((p) => p.kind === 'insight') }, + { kind: 'dashboard', create: plan.create.filter((p) => p.kind === 'dashboard'), update: plan.update.filter((p) => p.kind === 'dashboard') }, + ]; + + for (const tier of tiers) { + for (const item of tier.create) { + if (dryRun) continue; + try { + let created: any; + if (item.kind === 'cohort') created = await client.createCohort(item.local); + else if (item.kind === 'insight') created = await client.createInsight(item.local); + else { + const tiles = resolveTiles(item.local, insightSlugToId); + created = await client.createDashboard({ ...item.local, tiles }); + } + if (item.kind === 'insight') insightSlugToId.set(item.local.slug, created.id); + // Writeback posthog_id into local JSON. + if (item.path) { + const fullPath = join(root, item.path); + await atomicWriteJson(fullPath, { ...item.local, posthog_id: created.id }); + } + result.applied += 1; + } catch (err) { + result.failed += 1; + result.errors.push({ + kind: item.kind, + slug: item.local.slug, + error: err instanceof Error ? err.message : String(err), + }); + } + } + for (const item of tier.update) { + if (dryRun) continue; + try { + if (item.kind === 'cohort') await client.updateCohort(item.remoteId!, item.local); + else if (item.kind === 'insight') await client.updateInsight(item.remoteId!, item.local); + else { + const tiles = resolveTiles(item.local, insightSlugToId); + await client.updateDashboard(item.remoteId!, { ...item.local, tiles }); + } + result.applied += 1; + } catch (err) { + result.failed += 1; + result.errors.push({ + kind: item.kind, + slug: item.local.slug, + error: err instanceof Error ? err.message : String(err), + }); + } + } + } + + if (deleteOrphans && !dryRun) { + for (const item of plan.orphan) { + try { + if (item.kind === 'cohort') await client.deleteCohort(item.remote.id); + else if (item.kind === 'insight') await client.deleteInsight(item.remote.id); + else await client.deleteDashboard(item.remote.id); + } catch (err) { + result.errors.push({ + kind: item.kind, + slug: `(orphan id=${item.remote.id})`, + error: err instanceof Error ? err.message : String(err), + }); + } + } + } + + return result; +} +``` + +### Step 9.4 — Run, see pass + +- [ ] Run: + +```bash +npx tsx --test tools/posthog/sync.spec.ts +``` + +Expected: all 12 tests pass (6 from Task 8 + 6 new). + +### Step 9.5 — Commit + +```bash +git add tools/posthog/sync.ts tools/posthog/sync.spec.ts +git commit -m "$(cat <<'EOF' +feat(posthog-tools): applyPlan() with writeback + slug resolution + +Apply order: cohorts → insights → dashboards. Creates before updates +within a tier. Atomic writeback via temp-file + rename. Partial success +tracked. Orphans only deleted with deleteOrphans:true. + +6 new tests cover apply order, writeback persistence, slug resolution +failure, partial success, dry-run no-write, orphan protection. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 10: `sync.ts` CLI entry + adapter from openapi-fetch to SyncClient + +**Files:** +- Modify: `tools/posthog/sync.ts` (add adapter + CLI main) + +### Step 10.1 — Add the openapi-fetch → SyncClient adapter and CLI entrypoint + +- [ ] Append to `tools/posthog/sync.ts`: + +```typescript +import { fileURLToPath } from 'node:url'; +import { dirname, resolve as resolvePath } from 'node:path'; +import { ph } from './client.js'; + +function makeRealClient(): SyncClient { + const c = ph(); + const ok = (r: { data?: T; error?: unknown }, op: string): T => { + if (r.error || r.data === undefined) { + throw new Error(`PostHog ${op} failed: ${JSON.stringify(r.error)}`); + } + return r.data; + }; + return { + listDashboards: async () => { + const r = await c.GET('/dashboards/' as any, { params: { query: { limit: 200 } } } as any); + return ((ok(r as any, 'list dashboards') as any).results ?? []) as RemoteDashboard[]; + }, + listInsights: async () => { + const r = await c.GET('/insights/' as any, { params: { query: { limit: 200 } } } as any); + return ((ok(r as any, 'list insights') as any).results ?? []) as RemoteInsight[]; + }, + listCohorts: async () => { + const r = await c.GET('/cohorts/' as any, { params: { query: { limit: 200 } } } as any); + return ((ok(r as any, 'list cohorts') as any).results ?? []) as RemoteCohort[]; + }, + createDashboard: async (body) => ok(await c.POST('/dashboards/' as any, { body } as any), 'create dashboard') as RemoteDashboard, + createInsight: async (body) => ok(await c.POST('/insights/' as any, { body } as any), 'create insight') as RemoteInsight, + createCohort: async (body) => ok(await c.POST('/cohorts/' as any, { body } as any), 'create cohort') as RemoteCohort, + updateDashboard: async (id, body) => ok(await c.PATCH(`/dashboards/{id}/` as any, { params: { path: { id } }, body } as any), 'update dashboard') as RemoteDashboard, + updateInsight: async (id, body) => ok(await c.PATCH(`/insights/{id}/` as any, { params: { path: { id } }, body } as any), 'update insight') as RemoteInsight, + updateCohort: async (id, body) => ok(await c.PATCH(`/cohorts/{id}/` as any, { params: { path: { id } }, body } as any), 'update cohort') as RemoteCohort, + deleteDashboard: async (id) => { await c.DELETE(`/dashboards/{id}/` as any, { params: { path: { id } } } as any); }, + deleteInsight: async (id) => { await c.DELETE(`/insights/{id}/` as any, { params: { path: { id } } } as any); }, + deleteCohort: async (id) => { await c.DELETE(`/cohorts/{id}/` as any, { params: { path: { id } } } as any); }, + }; +} + +function formatPlanSummary(plan: SyncPlan): string { + const lines: string[] = []; + for (const item of plan.create) lines.push(`[create] ${item.kind} ${item.local.slug}`); + for (const item of plan.update) lines.push(`[update] ${item.kind} ${item.local.slug} (posthog_id=${item.remoteId})`); + for (const item of plan.orphan) lines.push(`[orphan] ${item.kind} "${item.remote.name}" (posthog_id=${item.remote.id})`); + if (lines.length === 0) lines.push('(nothing to do)'); + return lines.join('\n'); +} + +async function main(): Promise { + const args = process.argv.slice(2); + const wantPlan = args.includes('--plan'); + const wantApply = args.includes('--apply'); + const deleteOrphans = args.includes('--delete-orphans'); + if (!wantPlan && !wantApply) { + console.error('Usage: sync.ts (--plan | --apply [--delete-orphans])'); + return 1; + } + if (wantPlan && wantApply) { + console.error('Cannot combine --plan and --apply'); + return 1; + } + + const here = dirname(fileURLToPath(import.meta.url)); + const root = resolvePath(here); // tools/posthog/ + + let client: SyncClient; + try { + client = makeRealClient(); + } catch (err) { + console.error(`Failed to initialize PostHog client: ${err instanceof Error ? err.message : err}`); + return 1; + } + + let plan: SyncPlan; + try { + plan = await computePlan({ root, client }); + } catch (err) { + console.error(`Plan computation failed: ${err instanceof Error ? err.message : err}`); + return 1; + } + + console.log(formatPlanSummary(plan)); + + if (wantPlan) return 0; + + const result = await applyPlan({ root, client, plan, deleteOrphans }); + console.log(`\napplied: ${result.applied}, failed: ${result.failed}`); + if (result.errors.length > 0) { + for (const e of result.errors) { + console.error(` ${e.kind} ${e.slug}: ${e.error}`); + } + return 1; + } + + // Helpful next-step hint after apply with writeback. + const writeback = plan.create.filter((p) => p.kind !== 'cohort' || p.path); + if (writeback.length > 0) { + const slugs = writeback.map((p) => p.local.slug).join(', '); + console.log(`\nWriteback complete. Commit with:`); + console.log(` git add tools/posthog/{dashboards,insights,cohorts}/`); + console.log(` git commit -m "chore(posthog): writeback ids for ${slugs}"`); + } + return 0; +} + +// Only run main when executed directly (not when imported by tests). +const isDirectRun = process.argv[1] && resolvePath(process.argv[1]) === fileURLToPath(import.meta.url); +if (isDirectRun) { + main().then((code) => process.exit(code)); +} +``` + +### Step 10.2 — Smoke test the CLI usage error path + +- [ ] Run (no env vars; just exercise argv parsing): + +```bash +npx tsx tools/posthog/sync.ts +``` + +Expected: prints `Usage: sync.ts (--plan | --apply [--delete-orphans])` and exits 1. + +- [ ] Run: + +```bash +npx tsx tools/posthog/sync.ts --plan --apply +``` + +Expected: prints `Cannot combine --plan and --apply` and exits 1. + +### Step 10.3 — Verify tests still pass + +- [ ] Run: + +```bash +npx tsx --test tools/posthog/sync.spec.ts +``` + +Expected: 12 tests pass. (We added new code to sync.ts but it's CLI/adapter only; the test surface is unchanged.) + +### Step 10.4 — Commit + +```bash +git add tools/posthog/sync.ts +git commit -m "$(cat <<'EOF' +feat(posthog-tools): sync.ts CLI entry + openapi-fetch adapter + +CLI accepts --plan, --apply, --apply --delete-orphans. Adapter wraps +openapi-fetch in the SyncClient interface used by tests. Direct-run +guard prevents tests from triggering main(). + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 11: `report.ts` — pure functions with TDD + +**Files:** +- Create: `tools/posthog/report.spec.ts` +- Create: `tools/posthog/report.ts` (partial — pure functions only) + +### Step 11.1 — Write the failing tests + +- [ ] Create `tools/posthog/report.spec.ts`: + +```typescript +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { sparkline, formatDeltaCell, renderReport } from './report.js'; + +test('sparkline: empty array returns dash', () => { + assert.equal(sparkline([]), '—'); +}); + +test('sparkline: maps values to 8-bar palette', () => { + assert.equal(sparkline([0, 1, 2, 4, 8]), '▁▂▃▅█'); +}); + +test('sparkline: all zeros returns flat low bars', () => { + assert.equal(sparkline([0, 0, 0, 0]), '▁▁▁▁'); +}); + +test('formatDeltaCell: zero last week with positive this week returns "new"', () => { + const cell = formatDeltaCell({ thisWeek: 5, lastWeek: 0 }); + assert.match(cell, /\+5 \(new\)/); +}); + +test('formatDeltaCell: standard percent diff', () => { + const cell = formatDeltaCell({ thisWeek: 120, lastWeek: 100 }); + assert.match(cell, /\+20 \(\+20%\)/); +}); + +test('formatDeltaCell: negative diff', () => { + const cell = formatDeltaCell({ thisWeek: 80, lastWeek: 100 }); + assert.match(cell, /-20 \(-20%\)/); +}); + +test('renderReport: produces stable markdown structure', () => { + const out = renderReport( + [{ name: 'GTM · Test', rows: [{ metric: 'X', thisWeek: 10, lastWeek: 5, weeks: [1, 2, 3, 10] }] }], + '2026-05-14', + ); + assert.match(out, /^# GTM weekly snapshot — 2026-05-14/); + assert(out.includes('## GTM · Test')); + assert(out.includes('## Notes')); + assert(out.includes(''); + lines.push('- _Add observations here before merging._'); + lines.push(''); + return lines.join('\n'); +} +``` + +### Step 11.4 — Run, see pass + +- [ ] Run: + +```bash +npx tsx --test tools/posthog/report.spec.ts +``` + +Expected: `✔ 7 tests passing`. + +### Step 11.5 — Commit + +```bash +git add tools/posthog/report.ts tools/posthog/report.spec.ts +git commit -m "$(cat <<'EOF' +feat(posthog-tools): report.ts pure functions (sparkline, delta, render) + +7 tests cover sparkline edge cases (empty, all-zero, normalization), +delta-cell formatting (new, percent, negative), and markdown structure. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 12: `report.ts` — main flow + CLI + +**Files:** +- Modify: `tools/posthog/report.ts` (add generateReport + CLI main) + +### Step 12.1 — Add generateReport + main + +- [ ] Append to `tools/posthog/report.ts`: + +```typescript +import { writeFile, mkdir, access } from 'node:fs/promises'; +import { join, resolve as resolvePath, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { ph } from './client.js'; + +interface FetchedInsight { + id: number; + name: string; + filters?: { insight?: string }; + result?: any; +} + +interface FetchedDashboard { + id: number; + name: string; + tags?: string[]; + tiles?: Array<{ insight?: number | { id: number } }>; +} + +function extractWeeklyValues(insight: FetchedInsight): { thisWeek: number; lastWeek: number; weeks: number[] } { + // PostHog trends return result[0].data as an array of daily counts. + // We fold into 7-day buckets, newest first. + const series = (Array.isArray(insight.result) ? insight.result[0]?.data : insight.result?.[0]?.data) ?? []; + const buckets: number[] = []; + for (let i = 0; i < 4; i++) { + const start = series.length - (i + 1) * 7; + const end = series.length - i * 7; + if (start < 0) break; + buckets.unshift(series.slice(start, end).reduce((a: number, b: number) => a + b, 0)); + } + while (buckets.length < 4) buckets.unshift(0); + return { + thisWeek: buckets[buckets.length - 1] ?? 0, + lastWeek: buckets[buckets.length - 2] ?? 0, + weeks: buckets, + }; +} + +export async function generateReport(): Promise<{ markdown: string; date: string }> { + const c = ph(); + const dashRes = await c.GET('/dashboards/' as any, { params: { query: { limit: 200 } } } as any); + const dashboards = ((dashRes as any).data?.results ?? []) as FetchedDashboard[]; + const gtmDashboards = dashboards.filter((d) => d.tags?.includes('gtm')); + + const sections: ReportSection[] = []; + for (const d of gtmDashboards) { + const rows: ReportRow[] = []; + for (const tile of d.tiles ?? []) { + const tileId = typeof tile.insight === 'number' ? tile.insight : tile.insight?.id; + if (typeof tileId !== 'number') continue; + const insightRes = await c.GET(`/insights/{id}/` as any, { + params: { path: { id: tileId }, query: { refresh: 'force_cache' } }, + } as any); + const insight = ((insightRes as any).data ?? {}) as FetchedInsight; + const { thisWeek, lastWeek, weeks } = extractWeeklyValues(insight); + rows.push({ metric: insight.name, thisWeek, lastWeek, weeks }); + } + sections.push({ name: d.name, rows }); + } + + const date = new Date().toISOString().slice(0, 10); + return { markdown: renderReport(sections, date), date }; +} + +async function nextOutputPath(reportsDir: string, date: string): Promise { + const base = join(reportsDir, `${date}-weekly`); + let candidate = `${base}.md`; + let suffix = 2; + while (true) { + try { + await access(candidate); + candidate = `${base}-${suffix}.md`; + suffix += 1; + } catch { + return candidate; + } + } +} + +async function main(): Promise { + let report: { markdown: string; date: string }; + try { + report = await generateReport(); + } catch (err) { + console.error(`Report generation failed: ${err instanceof Error ? err.message : err}`); + return 1; + } + const here = dirname(fileURLToPath(import.meta.url)); + const reportsDir = resolvePath(here, '..', '..', 'docs', 'gtm', 'reports'); + await mkdir(reportsDir, { recursive: true }); + const outPath = await nextOutputPath(reportsDir, report.date); + await writeFile(outPath, report.markdown, 'utf8'); + console.log(`Wrote ${outPath}`); + return 0; +} + +const isDirectRun = process.argv[1] && resolvePath(process.argv[1]) === fileURLToPath(import.meta.url); +if (isDirectRun) { + main().then((code) => process.exit(code)); +} +``` + +### Step 12.2 — Verify the report tests still pass + +- [ ] Run: + +```bash +npx tsx --test tools/posthog/report.spec.ts +``` + +Expected: 7 tests pass. (We added new code; the existing tests cover pure functions only.) + +### Step 12.3 — Commit + +```bash +git add tools/posthog/report.ts +git commit -m "$(cat <<'EOF' +feat(posthog-tools): report.ts main flow + 7-day bucket extraction + +generateReport() pulls dashboards tagged 'gtm', queries each tile's +insight, folds daily counts into 4 weekly buckets. Output goes to +docs/gtm/reports/-weekly[-N].md (never overwrites). + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 13: Sample dashboard + 4 insight JSON files + +**Files:** +- Create: `tools/posthog/dashboards/developer-funnel.json` +- Create: `tools/posthog/insights/pageviews-by-landing.json` +- Create: `tools/posthog/insights/install-command-clicks.json` +- Create: `tools/posthog/insights/cockpit-recipe-completion.json` +- Create: `tools/posthog/insights/six-signal-activation-funnel.json` +- Create: `tools/posthog/cohorts/.gitkeep` + +### Step 13.1 — Create the dashboard + +- [ ] Write `tools/posthog/dashboards/developer-funnel.json`: + +```json +{ + "slug": "developer-funnel", + "posthog_id": null, + "name": "GTM · Developer funnel", + "description": "Pageview → install → cockpit activation. Source: gtm.md §4.", + "tags": ["gtm", "developer-track", "phase-1"], + "tiles": [ + { "insight": "pageviews-by-landing" }, + { "insight": "install-command-clicks" }, + { "insight": "cockpit-recipe-completion" }, + { "insight": "six-signal-activation-funnel" } + ] +} +``` + +### Step 13.2 — Create the four insights + +- [ ] Write `tools/posthog/insights/pageviews-by-landing.json`: + +```json +{ + "slug": "pageviews-by-landing", + "posthog_id": null, + "kind": "trends", + "name": "Pageviews by landing path", + "events": [{ "event": "$pageview", "math": "total" }], + "breakdown": "$pathname", + "breakdown_limit": 15, + "date_from": "-30d", + "interval": "day" +} +``` + +- [ ] Write `tools/posthog/insights/install-command-clicks.json`: + +```json +{ + "slug": "install-command-clicks", + "posthog_id": null, + "kind": "trends", + "name": "Install command clicks", + "events": [ + { + "event": "marketing:cta_click", + "math": "total", + "properties": [ + { "key": "track", "value": "developer", "operator": "exact" } + ] + } + ], + "breakdown": "cta_id", + "breakdown_limit": 10, + "date_from": "-30d", + "interval": "day" +} +``` + +- [ ] Write `tools/posthog/insights/cockpit-recipe-completion.json`: + +```json +{ + "slug": "cockpit-recipe-completion", + "posthog_id": null, + "kind": "trends", + "name": "Cockpit recipe completion", + "events": [ + { "event": "cockpit:recipe_start", "math": "total" }, + { "event": "cockpit:chat_first_message", "math": "total" } + ], + "date_from": "-30d", + "interval": "day" +} +``` + +- [ ] Write `tools/posthog/insights/six-signal-activation-funnel.json`: + +```json +{ + "slug": "six-signal-activation-funnel", + "posthog_id": null, + "kind": "funnel", + "name": "Six-signal activation (30-min window)", + "window_minutes": 30, + "steps": [ + { "event": "cockpit:install_command_copied" }, + { "event": "cockpit:transport_connected" }, + { "event": "cockpit:chat_first_message" }, + { "event": "cockpit:thread_persisted" }, + { "event": "cockpit:interrupt_handled" }, + { "event": "cockpit:generative_component_rendered" } + ], + "date_from": "-30d" +} +``` + +### Step 13.3 — Create the cohorts gitkeep + +- [ ] Run: + +```bash +mkdir -p tools/posthog/cohorts +touch tools/posthog/cohorts/.gitkeep +``` + +### Step 13.4 — Verify all JSON parses against schema + +- [ ] Run: + +```bash +npx tsx --test tools/posthog/schema.spec.ts +``` + +Expected: 7 tests pass. The fixture validator test now actually exercises the JSON files (previously empty directories were trivially passing). + +### Step 13.5 — Commit + +```bash +git add tools/posthog/dashboards tools/posthog/insights tools/posthog/cohorts +git commit -m "$(cat <<'EOF' +feat(posthog-tools): developer-funnel sample dashboard + 4 insights + +The round-trip proof for Spec 1A. Four insights: pageviews-by-landing, +install-command-clicks, cockpit-recipe-completion (zero until Spec 1C), +six-signal-activation-funnel (zero until Spec 1C). Empty cohorts/.gitkeep +since cohorts come after data flows. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 14: Taxonomy guard test + +**Files:** +- Create: `tools/posthog/taxonomy.spec.ts` + +### Step 14.1 — Write the test + +- [ ] Create `tools/posthog/taxonomy.spec.ts`: + +```typescript +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { readFile, readdir } from 'node:fs/promises'; +import { join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; + +const HERE = dirname(fileURLToPath(import.meta.url)); +const INSIGHTS_DIR = join(HERE, 'insights'); +const TAXONOMY_PATH = join(HERE, '..', '..', 'docs', 'gtm', 'taxonomy.md'); + +test('every event in any insight JSON appears in docs/gtm/taxonomy.md', async () => { + // 1. Collect events referenced in insights. + const referenced = new Set(); + const files = (await readdir(INSIGHTS_DIR)).filter((f) => f.endsWith('.json')); + for (const f of files) { + const json = JSON.parse(await readFile(join(INSIGHTS_DIR, f), 'utf8')); + for (const step of json.steps ?? []) { + if (typeof step.event === 'string') referenced.add(step.event); + } + for (const ev of json.events ?? []) { + if (typeof ev.event === 'string') referenced.add(ev.event); + } + } + + // 2. Collect events documented in taxonomy.md. + const taxonomy = await readFile(TAXONOMY_PATH, 'utf8'); + const matches = taxonomy.matchAll(/`(\$pageview|(?:marketing|cockpit|ngaf|docs):[a-z_]+)`/g); + const documented = new Set(); + for (const m of matches) documented.add(m[1]); + + // 3. Difference. + const undocumented = [...referenced].filter((e) => !documented.has(e)); + assert.deepEqual( + undocumented, + [], + `Events used in dashboards but missing from docs/gtm/taxonomy.md:\n${undocumented.join('\n')}`, + ); +}); +``` + +### Step 14.2 — Run, see pass + +- [ ] Run: + +```bash +npx tsx --test tools/posthog/taxonomy.spec.ts +``` + +Expected: `✔ 1 test passing`. (If any event from the insight JSONs is missing in taxonomy.md, the test fails with the exact list — fix taxonomy.md or the insight JSON to align.) + +### Step 14.3 — Run all tests together as a final integration check + +- [ ] Run: + +```bash +npx nx run posthog-tools:test +``` + +Expected: all 4 spec files pass — 22 tests total (env.spec.ts: 6 + schema.spec.ts: 7 + sync.spec.ts: 12 + report.spec.ts: 7 + taxonomy.spec.ts: 1 = 33 tests; adjust if any count differs in your implementation). + +### Step 14.4 — Commit + +```bash +git add tools/posthog/taxonomy.spec.ts +git commit -m "$(cat <<'EOF' +test(posthog-tools): permanent taxonomy guard + +Every event referenced in any insight JSON must appear in +docs/gtm/taxonomy.md. This test stays green permanently and +catches event renames or insight drift. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 15: Root `package.json` scripts + `.env.example` + +**Files:** +- Modify: `package.json` (root) — add scripts +- Create or modify: `.env.example` + +### Step 15.1 — Add scripts to root `package.json` + +- [ ] Open root `package.json`. In the `"scripts"` block, add three lines: + +```json +{ + "scripts": { + "posthog:sync": "nx run posthog-tools:sync:plan", + "posthog:apply": "nx run posthog-tools:sync:apply", + "posthog:report": "nx run posthog-tools:report", + "posthog:generate-types": "nx run posthog-tools:generate-types" + } +} +``` + +(Keep all existing scripts; just add these four.) + +### Step 15.2 — Document env vars in `.env.example` + +- [ ] Check if `.env.example` exists. If yes, append; if no, create. + +```bash +test -f .env.example || touch .env.example +``` + +- [ ] Append (or create) with this content. If file exists and has unrelated content, append a new section at the bottom; do not duplicate any existing PostHog vars (e.g., the website may already document `NEXT_PUBLIC_POSTHOG_TOKEN`). + +```bash +cat >> .env.example <<'EOF' + +# PostHog dashboards-as-code (tools/posthog/) +# Generate a Personal API Key at https://us.posthog.com/me/settings#personal-api-keys +# Required scopes: dashboard:write, insight:write, cohort:write, project:read +POSTHOG_PERSONAL_API_KEY= +POSTHOG_HOST=https://us.i.posthog.com +POSTHOG_PROJECT_ID= +EOF +``` + +### Step 15.3 — Smoke-test the scripts resolve + +- [ ] Run: + +```bash +npm run posthog:sync -- --help 2>&1 || true +``` + +Expected: should resolve through Nx to `npx tsx tools/posthog/sync.ts --plan` and fail with "POSTHOG_PERSONAL_API_KEY must be at least 20 characters" or similar env error (we haven't set the secret). The Nx wiring is correct; the error proves it reached our code. + +### Step 15.4 — Commit + +```bash +git add package.json .env.example +git commit -m "$(cat <<'EOF' +feat(posthog-tools): root scripts + .env.example + +npm run posthog:sync/apply/report/generate-types as thin Nx aliases. +.env.example documents POSTHOG_PERSONAL_API_KEY, POSTHOG_HOST, +POSTHOG_PROJECT_ID. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 16: CI workflow — Nx-affected gated `posthog-sync-plan` job + +**Files:** +- Modify: `.github/workflows/ci.yml` + +### Step 16.1 — Add the new job + +- [ ] Open `.github/workflows/ci.yml`. Locate the top-level `jobs:` block. Append (preserving 2-space indent under `jobs:`): + +```yaml + posthog-sync-plan: + name: PostHog — dashboards-as-code drift check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + - run: npm ci + - name: Detect affected + id: affected + run: | + base_sha=$(git merge-base origin/main HEAD) + head_sha=$(git rev-parse HEAD) + affected="$(npx nx show projects --affected --base=$base_sha --head=$head_sha)" + if printf '%s\n' "$affected" | grep -Fx 'posthog-tools' >/dev/null; then + echo "is_affected=yes" >> "$GITHUB_OUTPUT" + else + echo "is_affected=no" >> "$GITHUB_OUTPUT" + echo "::notice::posthog-tools not in affected projects — skipping drift check." + fi + - name: posthog:sync --plan + if: steps.affected.outputs.is_affected == 'yes' + env: + POSTHOG_PERSONAL_API_KEY: ${{ secrets.POSTHOG_PERSONAL_API_KEY }} + POSTHOG_HOST: https://us.i.posthog.com + POSTHOG_PROJECT_ID: ${{ secrets.POSTHOG_PROJECT_ID }} + run: | + if [ -z "$POSTHOG_PERSONAL_API_KEY" ]; then + echo "::notice::POSTHOG_PERSONAL_API_KEY not set — soft skip for contributor PRs." + exit 0 + fi + npx nx run posthog-tools:sync:plan +``` + +### Step 16.2 — Validate YAML syntax + +- [ ] Run: + +```bash +python3 -c "import yaml; yaml.safe_load(open('.github/workflows/ci.yml'))" && echo "YAML OK" +``` + +Expected: `YAML OK`. If YAML errors, fix indentation. + +### Step 16.3 — Commit + +```bash +git add .github/workflows/ci.yml +git commit -m "$(cat <<'EOF' +ci(posthog-tools): add Nx-affected gated sync plan check + +New posthog-sync-plan job runs `nx run posthog-tools:sync:plan` +on PRs that affect posthog-tools (per nx show projects --affected). +Soft-skips when POSTHOG_PERSONAL_API_KEY secret is absent (fork PRs). + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 17: Update `tools/posthog/README.md` to align with implementation + +**Files:** +- Modify: `tools/posthog/README.md` + +The current README (committed in Spec 0) was speculative — it references `schema/dashboard.json` JSON Schema files (we chose zod-only), raw `npm run posthog:sync` (we use `nx run`), and a different env var name (`POSTHOG_API_KEY`, we use `POSTHOG_PERSONAL_API_KEY`). Align it. + +### Step 17.1 — Replace the README with an aligned version + +- [ ] Overwrite `tools/posthog/README.md` with: + +```markdown +# PostHog dashboards-as-code + +> Spec: [analytics-foundation-1a-dashboards-as-code](../../docs/superpowers/specs/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code-design.md). + +PostHog is configured via a Public-API-driven sync script — not through the PostHog UI. Every dashboard, insight, and cohort the GTM motion depends on is a JSON file in this directory. The sync tool reconciles JSON ↔ PostHog. Git is the source of truth. + +## Directory layout + +``` +tools/posthog/ +├── project.json # Nx project (posthog-tools) +├── env.ts # zod-validated env parsing +├── client.ts # openapi-fetch wrapper +├── schema.ts # zod schemas for local JSON +├── sync.ts # CLI: plan / apply / writeback +├── report.ts # CLI: pull insights → markdown +├── *.spec.ts # tests +├── types/posthog-api.gen.ts # generated from PostHog OpenAPI spec +├── scripts/generate-types.ts # regenerate the above +├── dashboards/*.json # one JSON per dashboard +├── insights/*.json # reusable insight specs +└── cohorts/ # currently empty; populated post-1A +``` + +## CLI + +All commands wrap `nx run posthog-tools:*`. Root-package aliases: + +```bash +npm run posthog:sync # → nx run posthog-tools:sync:plan +npm run posthog:apply # → nx run posthog-tools:sync:apply +npm run posthog:report # → nx run posthog-tools:report +npm run posthog:generate-types # → regenerate types/posthog-api.gen.ts +``` + +Direct Nx invocations work too: + +```bash +nx run posthog-tools:sync:plan +nx run posthog-tools:sync:apply +nx run posthog-tools:sync:apply --args="--delete-orphans" +nx run posthog-tools:test +nx run posthog-tools:lint +``` + +## Auth + +Requires a **Personal API Key** with `dashboard:write`, `insight:write`, `cohort:write`, `project:read` scopes. Create one at https://us.posthog.com/me/settings#personal-api-keys. + +Env vars (see `.env.example` at repo root): + +| Variable | Purpose | +|----------|---------| +| `POSTHOG_PERSONAL_API_KEY` | Personal API Key (Bearer) | +| `POSTHOG_HOST` | `https://us.i.posthog.com` (default) or your region | +| `POSTHOG_PROJECT_ID` | Numeric project id (visible in PostHog URL) | + +**CI** uses the same key (write-scoped) for `--plan` only. **Production hardening TODO:** create a read-only Personal API Key for CI and add it as `POSTHOG_PERSONAL_API_KEY_READONLY` in GitHub Actions secrets. Local development continues using the write-scoped key for `--apply` and `--report`. + +## JSON contract + +```jsonc +// tools/posthog/dashboards/developer-funnel.json +{ + "slug": "developer-funnel", // local id, stable across syncs + "posthog_id": null, // assigned on first sync; do not edit + "name": "GTM · Developer funnel", + "description": "Pageview → install → cockpit activation.", + "tags": ["gtm", "developer-track"], + "tiles": [ + { "insight": "pageviews-by-landing" }, + { "insight": "six-signal-activation-funnel" } + ] +} +``` + +```jsonc +// tools/posthog/insights/six-signal-activation-funnel.json +{ + "slug": "six-signal-activation-funnel", + "posthog_id": null, + "kind": "funnel", + "window_minutes": 30, + "steps": [ + { "event": "cockpit:install_command_copied" }, + { "event": "cockpit:transport_connected" } + ] +} +``` + +Event names must match [`docs/gtm/taxonomy.md`](../../docs/gtm/taxonomy.md). The `taxonomy.spec.ts` test enforces this on every CI run. + +## Sync semantics + +- **`--plan`** — diff against PostHog, no writes. Outputs `[create] [update] [orphan]` per artifact. CI runs this on every PR that affects `posthog-tools`. +- **`--apply`** — idempotent upsert via PATCH. Re-running with no JSON change is a no-op (PostHog dedupes). +- **`--apply --delete-orphans`** — explicit deletion of remote artifacts that have no local JSON. Never automatic. +- **`posthog_id` writeback** — first successful create writes the assigned PostHog id back into the JSON. Commit the writeback as `chore(posthog): writeback ids for `. + +## Renaming an artifact + +To rename without losing the PostHog id: + +1. Edit the `slug` field in the JSON, keeping `posthog_id` unchanged. +2. **Do not move the file** — the file path is the slug source. +3. `npm run posthog:sync` will detect this as an update, not a create + orphan. + +## Regenerating types + +PostHog publishes their full Public API as OpenAPI 3 at `https://us.posthog.com/api/schema/`. We commit the generated TypeScript types to avoid network calls at build time. Refresh quarterly: + +```bash +npm run posthog:generate-types +``` + +Review the diff carefully — field renames in PostHog's API will surface here. + +## Why dashboards-as-code + +- `git blame` answers "who changed this metric and why." +- No clicking through the PostHog UI ("api/cli-first" actually delivers). +- Reproducible on a fresh PostHog project for staging/test envs. +- Reviewable in PRs like any other change. +- `taxonomy.spec.ts` prevents dashboards from referencing events the taxonomy doesn't document. + +## See also + +- [gtm.md](../../gtm.md) — durable strategy +- [docs/gtm/taxonomy.md](../../docs/gtm/taxonomy.md) — event names +- [cowork/gtm/SKILL.md](../../cowork/gtm/SKILL.md) — operates this CLI weekly +``` + +### Step 17.2 — Commit + +```bash +git add tools/posthog/README.md +git commit -m "$(cat <<'EOF' +docs(posthog-tools): align README with Spec 1A implementation + +Drops speculative JSON Schema references (zod-only), updates CLI +commands to nx run posthog-tools:*, documents POSTHOG_PERSONAL_API_KEY, +adds rename procedure, links to the spec. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +--- + +## Task 18: First `--apply` round trip (manual maintainer step) + +This task **requires** `POSTHOG_PERSONAL_API_KEY`, `POSTHOG_PROJECT_ID`, and `POSTHOG_HOST` in `.env`. A subagent without these cannot complete it. **The user (Brian) runs this locally.** If the user has not set these env vars yet, skip to Task 19 with a clear note that Task 18 is a maintainer follow-up. + +### Step 18.1 — Verify env vars are set + +- [ ] Run: + +```bash +[ -n "$POSTHOG_PERSONAL_API_KEY" ] && echo "key set" || echo "MISSING — populate .env" +[ -n "$POSTHOG_PROJECT_ID" ] && echo "project id set" || echo "MISSING — populate .env" +``` + +Both must print `set` to proceed. If either prints `MISSING`, stop and tell the user to populate `.env` (and `source .env` or use a tool like `dotenv-cli`). + +### Step 18.2 — Run `--plan` first + +- [ ] Run: + +```bash +npm run posthog:sync +``` + +Expected output (something like): + +``` +[create] insight pageviews-by-landing +[create] insight install-command-clicks +[create] insight cockpit-recipe-completion +[create] insight six-signal-activation-funnel +[create] dashboard developer-funnel +``` + +If `[orphan]` lines appear referencing dashboards/insights you don't recognize, **stop and investigate** — there may be a name collision with an unrelated existing PostHog object. + +### Step 18.3 — Apply + +- [ ] Run: + +```bash +npm run posthog:apply +``` + +Expected output: + +``` +[create] insight pageviews-by-landing +... +applied: 5, failed: 0 + +Writeback complete. Commit with: + git add tools/posthog/{dashboards,insights,cohorts}/ + git commit -m "chore(posthog): writeback ids for ..." +``` + +### Step 18.4 — Verify writeback in JSON + +- [ ] Run: + +```bash +grep -l '"posthog_id":' tools/posthog/dashboards/*.json tools/posthog/insights/*.json | xargs grep '"posthog_id":' | head +``` + +Expected: every `posthog_id` line now has a number, not `null`. + +### Step 18.5 — Commit the writeback + +- [ ] Run: + +```bash +git add tools/posthog/dashboards tools/posthog/insights +git commit -m "$(cat <<'EOF' +chore(posthog): writeback ids for developer-funnel and 4 insights + +Records the PostHog-assigned ids after first --apply. Future syncs +match by posthog_id, not by name. + +Co-Authored-By: Claude Opus 4.7 +EOF +)" +``` + +### Step 18.6 — Run report to confirm read path + +- [ ] Run: + +```bash +npm run posthog:report +``` + +Expected output: `Wrote docs/gtm/reports/-weekly.md`. The file should contain at least one section (`## GTM · Developer funnel`) with rows (likely all zeros since events haven't started flowing). + +**Note:** The report file is **NOT** committed in this task. Weekly reports come from the `/gtm` Cowork skill flow. + +--- + +## Task 19: Chrome MCP verification (manual) + +After Task 18 completes (`--apply` succeeded), use Chrome MCP to visually confirm the dashboard rendered correctly in PostHog. This catches schema-level bugs (e.g., a tile created but the dashboard didn't actually reference it) that the round-trip writeback wouldn't catch. + +**A subagent or the controller with Chrome MCP loaded** does this. If Chrome MCP is unavailable, this becomes a manual "open the URL and check" step for the user. + +### Step 19.1 — Load Chrome MCP tools if not already available + +If not already in this session's tool list, load via ToolSearch: + +``` +ToolSearch with query="Claude_in_Chrome" max_results=10 +``` + +### Step 19.2 — Navigate to the dashboard + +- [ ] Construct the dashboard URL using the writeback'd posthog_id: + +```bash +DASH_ID=$(jq -r .posthog_id tools/posthog/dashboards/developer-funnel.json) +echo "https://${POSTHOG_HOST#https://}/dashboard/${DASH_ID}" +``` + +Or for the default host: `https://us.posthog.com/project/${POSTHOG_PROJECT_ID}/dashboard/${DASH_ID}`. + +- [ ] Use Chrome MCP `navigate` to open the URL. + +- [ ] Use Chrome MCP `read_page` (or `get_page_text`) to confirm: + - Page title contains "GTM · Developer funnel" + - Four tiles render (even if empty) with names matching: "Pageviews by landing path", "Install command clicks", "Cockpit recipe completion", "Six-signal activation (30-min window)" + +### Step 19.3 — Document the verification + +If verification passes, no commit needed — this is operational verification, not a code change. If it fails, file a follow-up task and **do not advance to Task 20** until resolved. + +--- + +## Task 20: Push branch + open PR + enable auto-merge + +**Files:** none modified; this is a git/gh operation. + +### Step 20.1 — Verify worktree state + +- [ ] Run: + +```bash +git status --short +git log --oneline origin/main..HEAD | head -25 +``` + +Expected: `git status` empty (or only stray ignored files). The log shows ~18 commits from this plan. + +### Step 20.2 — Push branch with explicit upstream + +- [ ] Run: + +```bash +git push -u origin "$(git branch --show-current)" +``` + +Expected: success message ending with `* [new branch]` line. + +### Step 20.3 — Create PR + +- [ ] Run: + +```bash +gh pr create \ + --title "feat(posthog-tools): dashboards-as-code pipeline + developer-funnel sample" \ + --body "$(cat <<'EOF' +## Summary + +Implements Spec 1A (analytics-foundation, sub-spec A): the dashboards-as-code pipeline for Cacheplane's GTM motion. + +- New Nx project `posthog-tools` at `tools/posthog/` +- Typed PostHog client via `openapi-fetch` + generated types from PostHog's OpenAPI spec +- `sync` CLI: `--plan` (read-only diff), `--apply` (idempotent upsert + writeback), `--apply --delete-orphans` (explicit) +- `report` CLI: pulls dashboards tagged `gtm`, renders weekly markdown snapshot with sparklines +- Sample dashboard `developer-funnel` + 4 insights (round-trip proof) +- 33 unit tests across `env.spec.ts`, `schema.spec.ts`, `sync.spec.ts`, `report.spec.ts`, `taxonomy.spec.ts` +- Permanent taxonomy guard: every event referenced in any insight JSON must appear in `docs/gtm/taxonomy.md` +- CI: new `posthog-sync-plan` job with Nx-affected gating + soft-skip on missing secret +- Decomposition update: `gtm.md §6/§7` + meta-spec §6 now reflect 1A-1D sub-specs + +Spec: [docs/superpowers/specs/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code-design.md](docs/superpowers/specs/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code-design.md) + +## Test Plan + +- [ ] CI passes: lint, test, and `posthog-sync-plan` (Nx-affected gate green) +- [ ] Local `npm run posthog:sync` shows a `[create]` plan for 1 dashboard + 4 insights (or `[update]` if maintainer has already applied) +- [ ] Local `npm run posthog:apply` writes back posthog_ids; the maintainer commits the writeback as `chore(posthog): writeback ids ...` +- [ ] PostHog UI shows the `GTM · Developer funnel` dashboard with 4 tiles (verified via Chrome MCP or manually) +- [ ] Local `npm run posthog:report` produces a valid markdown snapshot at `docs/gtm/reports/-weekly.md` +- [ ] Taxonomy guard test stays green (`nx run posthog-tools:test`) + +🤖 Generated with [Claude Code](https://claude.com/claude-code) +EOF +)" +``` + +Expected: prints the PR URL. + +### Step 20.4 — Enable auto-merge + +- [ ] Run: + +```bash +gh pr merge --rebase --auto --delete-branch +``` + +Expected: PR is marked for auto-merge. GitHub will rebase + merge once CI is green. + +### Step 20.5 — Report final state + +- [ ] Print the PR URL one more time: + +```bash +gh pr view --json url --jq .url +``` + +Hand off to the user with: "PR open at , auto-merge enabled. Will merge when CI is green." + +--- + +## Self-Review + +**1. Spec coverage:** + +| Spec § | Task | +|--------|------| +| §3 Scope — Nx project | Task 3 | +| §3 Scope — Generated types | Task 4 | +| §3 Scope — Typed client | Task 7 | +| §3 Scope — Zod schemas | Task 6 | +| §3 Scope — sync CLI | Tasks 8, 9, 10 | +| §3 Scope — report CLI | Tasks 11, 12 | +| §3 Scope — env config | Task 5 | +| §3 Scope — 1 dashboard + 4 insights | Task 13 | +| §3 Scope — CI workflow | Task 16 | +| §3 Scope — 22 tests | Tasks 5, 6, 8, 9, 11, 14 | +| §3 Scope — decomposition update | Task 1 | +| §3 Scope — README alignment | Task 17 | +| §3 Scope — Chrome MCP verification | Task 19 | +| §4 Architecture — three-layer separation | Tasks 5–12 (each file has one job) | +| §5 Sync semantics — matching | Task 8 | +| §5 Sync semantics — apply order | Task 9 | +| §5 Sync semantics — writeback | Task 9 | +| §5 Sync semantics — orphans never auto-deleted | Task 9 (`deleteOrphans:true` test) | +| §6 Report engine — sparkline | Task 11 | +| §6 Report engine — markdown template | Task 11 | +| §6 Report engine — 7-day buckets | Task 12 | +| §7 Sample dashboard content | Task 13 | +| §9 Nx integration | Task 3, 16 | +| §10 Testing — taxonomy guard | Task 14 | +| §12 Deliverables checkbox list | All tasks | + +**2. Placeholder scan:** No `TBD`, `TODO`, `implement later`, or vague requirements remain. Production-hardening TODO mentions are explicit deferred items, not plan placeholders. ✓ + +**3. Type consistency:** Cross-task type references checked: +- `SyncClient` interface (Task 8) used in `applyPlan` (Task 9) and `makeRealClient` (Task 10) — consistent shape. +- `SyncPlan` (Task 8) consumed by `applyPlan` and `formatPlanSummary` (Task 10) — consistent shape. +- `ReportRow` / `ReportSection` (Task 11) consumed by `generateReport` (Task 12) — consistent shape. +- `DashboardLocal` / `InsightLocal` / `CohortLocal` (Task 6) consumed by `loadLocalDir` (Task 8) — consistent. +- Env var name `POSTHOG_PERSONAL_API_KEY` used consistently across Tasks 5, 7, 15, 16, 17, 18. ✓ +- Sample dashboard event names (Task 13) match the canonical taxonomy (`cockpit:install_command_copied` etc.) referenced in the meta-spec. ✓ diff --git a/docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md b/docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md index 50a4f95d..e286f782 100644 --- a/docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md +++ b/docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md @@ -120,7 +120,10 @@ Seven specs follow Spec 0. Dependencies form a DAG: | # | Spec | Phase | Depends on | Exit | |--:|------|------:|------------|------| -| 1 | analytics-foundation | 0 | — | 5 dashboards live, all 3 event namespaces emitting, `@ngaf/telemetry@0.0.1` published, weekly report runnable. | +| 1a | analytics-foundation-1a — dashboards-as-code | 0 | — | Sync CLI works locally; `developer-funnel` dashboard renders in PostHog after `--apply`; CI affected gate green. | +| 1b | analytics-foundation-1b — `@ngaf/telemetry` | 0 | — | `@ngaf/telemetry@0.0.1` on npm; Node opt-out + browser opt-in surfaces ship; trust-contract silence test stays green. | +| 1c | analytics-foundation-1c — cockpit instrumentation | 0 | 1b | All six cockpit signals fire; `cockpit:six_signals_complete` aggregation works. | +| 1d | analytics-foundation-1d — website reconciliation | 0 | — | Audit of May-2 plan complete; `marketing:lead_qualified` server enrichment ships; `/api/ingest` proxy live. | | 2 | positioning-and-risks | 1 | 1 | New hero shipped (incl. CTA fork), `/contact` route live, risk-cleanup copy deployed (Angular matrix, A2UI v0.9, telemetry footnote), both CTA tracks measurable. | | 3 | comparison-pages | 1 | 2 | 4 comparison pages live (langchain-angular, copilotkit, hashbrown, a2ui-renderer), each with measurable CTA clicks on both tracks. | | 4 | cockpit-activation-recipes | 1 | 1, 3 | All 6 activation signals fire from cockpit; six-signal activation funnel non-zero; one comparison page successfully drives an activation. | diff --git a/docs/superpowers/specs/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code-design.md b/docs/superpowers/specs/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code-design.md new file mode 100644 index 00000000..c8a68744 --- /dev/null +++ b/docs/superpowers/specs/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code-design.md @@ -0,0 +1,510 @@ +--- +workstream: analytics-foundation-1a-dashboards-as-code +status: approved +owner: brian +phase: 0 +spec: docs/superpowers/specs/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code-design.md +plan: docs/superpowers/plans/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code.md +parent: docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md +--- + +# Analytics Foundation 1A — Dashboards-as-code (Design) + +> Spec 1A of the Cacheplane GTM motion. Decomposed from the meta-spec's `analytics-foundation` workstream into 4 sub-specs (1A–1D). This spec covers **dashboards-as-code infrastructure only** — the `@ngaf/telemetry` library (1B), cockpit instrumentation (1C), and website reconciliation (1D) are their own specs. + +## 1. Goal + +Establish a PostHog dashboards-as-code pipeline so every dashboard, insight, and cohort the GTM motion depends on is a committed JSON file, reconciled to PostHog via a typed CLI. Ship one sample dashboard (`developer-funnel`) end-to-end as round-trip proof that future dashboards plug in without infra changes. + +## 2. Context + +- The meta-spec (`docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md`) bundled the entire analytics surface into a single `analytics-foundation` workstream. After re-scoping, that workstream is decomposed into 4 specs that ship and review independently: + - **1A (this spec):** dashboards-as-code infrastructure + 1 sample dashboard + - **1B:** `@ngaf/telemetry` library (Node + browser surfaces, postinstall, publish) + - **1C:** cockpit instrumentation (six-signal events from `apps/cockpit`) + - **1D:** website reconciliation (audit May-2 plan; add `marketing:lead_qualified` server enrichment; build `/api/ingest` proxy) +- Why 1A first: it's independent of 1B/1C/1D, it produces a measurable artifact (a dashboard in PostHog), and it unblocks future specs from needing to invent their own dashboard storage. +- PostHog does not publish a Node SDK for its management API. The Public API is REST-only. We will not hand-type response shapes; we generate them from PostHog's published OpenAPI spec. +- "api/cli-first" (per meta-spec) is satisfied by: every dashboard a JSON file in git; the only way to mutate PostHog is via `nx run posthog-tools:sync:apply`; the weekly report is a CLI that writes markdown. + +## 3. Scope + +**In scope:** + +- New Nx project `posthog-tools` at `tools/posthog/` +- Generated TypeScript types from PostHog's OpenAPI spec (`tools/posthog/types/posthog-api.gen.ts`) +- Typed PostHog client (`tools/posthog/client.ts`) using `openapi-fetch` +- Zod schemas for local JSON files (`tools/posthog/schema.ts`) +- `sync` CLI with `--plan` and `--apply` modes, atomic writeback (`tools/posthog/sync.ts`) +- `report` CLI producing weekly markdown snapshot (`tools/posthog/report.ts`) +- Env-var config + validation (`tools/posthog/env.ts`) +- One sample dashboard JSON + 4 insight JSONs (the `developer-funnel` content) +- CI workflow job with Nx-affected gating + soft-skip on missing secrets +- Tests: schema validation, sync engine, report engine, taxonomy guard (~22 tests) +- Decomposition update to `gtm.md §6` / §7 and meta-spec §6 reflecting 1A–1D +- Documentation refresh: `tools/posthog/README.md` updates that align with this design + +**Out of scope:** + +- Telemetry library (Spec 1B) +- Cockpit instrumentation (Spec 1C) +- Website reconciliation, `/api/ingest` proxy, `marketing:lead_qualified` server enrichment (Spec 1D) +- The remaining 4 dashboards (`enterprise-funnel`, `activation-six-signals` expanded, `content-intent`, `package-telemetry`) — follow-up `dashboards-content` spec after 1B/1C/1D unlock the events those dashboards depend on +- Cohort definitions (empty `cohorts/` directory ships; cohorts come after data flows) +- Feature flags / experiments / session replay sync (post-Phase-4 deferred) +- Read-only scoped CI key (option A.ii — production hardening TODO documented in README) +- Auto-merge of weekly snapshot PRs (Cowork skill drafts; human merges) + +## 4. Architecture + +### 4.1 Three-layer separation + +``` +┌────────────────────────────────────────────────────────────────┐ +│ AUTHORING LAYER — Pure data, edited by humans │ +│ tools/posthog/dashboards/ /insights/ /cohorts/ │ +└──────────────────────────┬─────────────────────────────────────┘ + │ read + validate (zod) + ▼ +┌────────────────────────────────────────────────────────────────┐ +│ ENGINE LAYER — Domain logic, no HTTP │ +│ tools/posthog/schema.ts — shape validation (zod) │ +│ tools/posthog/sync.ts — match + apply order + writeback │ +│ tools/posthog/report.ts — pull insights + render markdown │ +│ tools/posthog/env.ts — config + secrets │ +└──────────────────────────┬─────────────────────────────────────┘ + │ openapi-fetch (typed) + ▼ +┌────────────────────────────────────────────────────────────────┐ +│ TRANSPORT LAYER — Pure PostHog REST wrapper │ +│ tools/posthog/client.ts │ +│ tools/posthog/types/posthog-api.gen.ts (generated) │ +└──────────────────────────┬─────────────────────────────────────┘ + │ HTTP (Bearer token) + ▼ + PostHog Public API +``` + +Each layer has one job. The transport layer doesn't know about GTM, slugs, or our taxonomy. The engine layer doesn't know about HTTP shapes. The authoring layer is pure data. + +### 4.2 Lifecycle + +``` + 1. Author edits a JSON file in tools/posthog/ + 2. git commit + PR opens + 3. CI: Nx affected detects posthog-tools changed → runs `sync:plan` + - Soft-skips if POSTHOG_PERSONAL_API_KEY_READONLY not in PR's secrets (forks) + - Hard-fails if local JSON is invalid or drift detected + 4. Merge to main + 5. Maintainer runs `nx run posthog-tools:sync:apply` locally with write-scoped key + 6. PostHog mutates; engine writes assigned `posthog_id` back into JSON + 7. Maintainer commits the writeback as `chore(posthog): writeback ids for ` + 8. Every Monday, /gtm Cowork skill runs `nx run posthog-tools:report` + → docs/gtm/reports/-weekly.md → PR for review + merge +``` + +### 4.3 File layout + +``` +tools/posthog/ +├── README.md # Updated to align with this design +├── project.json # NEW: Nx project (sync:plan, sync:apply, report, lint, test) +├── package.json # NEW: devDeps (openapi-fetch, openapi-typescript, zod) +├── tsconfig.json # NEW: extends root tsconfig +├── eslint.config.mjs # NEW: minimal eslint config +├── env.ts # NEW: zod-validated process.env parsing +├── client.ts # NEW: openapi-fetch client (~30 LOC) +├── schema.ts # NEW: zod schemas for local JSON shapes +├── sync.ts # NEW: CLI — plan / apply / writeback +├── report.ts # NEW: CLI — pull insights → markdown +├── *.spec.ts # NEW: test files (4) +├── types/ +│ ├── README.md # NEW: explains why posthog-api.gen.ts is committed +│ └── posthog-api.gen.ts # NEW: generated TypeScript from OpenAPI +├── scripts/ +│ └── generate-types.ts # NEW: regenerates posthog-api.gen.ts from PostHog spec +├── dashboards/ +│ └── developer-funnel.json # NEW: the sample dashboard +├── insights/ +│ ├── pageviews-by-landing.json +│ ├── install-command-clicks.json +│ ├── cockpit-recipe-completion.json +│ └── six-signal-activation-funnel.json +└── cohorts/ + └── .gitkeep # NEW: empty for 1A +``` + +Plus repo-root touches: +- `package.json`: scripts `posthog:sync`, `posthog:report`, `posthog:generate-types` +- `package.json`: devDeps `openapi-fetch`, `openapi-typescript`, `zod` +- `.github/workflows/ci.yml`: new `posthog-sync-plan` job with affected gate + soft-skip +- `.env.example`: documented `POSTHOG_PERSONAL_API_KEY`, `POSTHOG_HOST`, `POSTHOG_PROJECT_ID` +- `gtm.md` §6 / §7: replace `analytics-foundation` row with rows 1A–1D +- `docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md` §6: same decomposition +- `tools/posthog/README.md`: align with implemented shape + +## 5. Sync engine semantics + +### 5.1 Matching local ↔ remote + +1. **By `posthog_id`** if local JSON has one. +2. **By case-sensitive `name`** if local has `posthog_id: null` AND exactly one remote artifact has that name. Two-or-more remote name matches force a create (no accidental adoption). +3. No match → create. + +After first `--apply`, every artifact has a `posthog_id` and we never fall back to name matching. + +### 5.2 Create vs update — no drift computation + +``` +for each local artifact: + if posthog_id is null: + → CREATE (POST; writeback id) + else: + → UPDATE (PATCH full declarative body; PostHog dedupes) +``` + +PostHog's PATCH is idempotent. We do not compute drift hashes; we let PostHog decide whether anything actually changed. Tradeoff: `--plan` loses the `[no-op]` category. Acceptable at our scale. + +### 5.3 Apply order + +``` +1. cohorts (creates first, then updates within tier) +2. insights (resolves cohort.posthog_id refs before POST/PATCH) +3. dashboards (resolves insight.posthog_id refs in tile list before POST/PATCH) +``` + +Within each tier, creates before updates. + +### 5.4 Slug → posthog_id resolution + +When a dashboard references an insight by slug, the engine resolves at apply time: + +```ts +function resolveTiles(local: DashboardLocal, allInsights: Map): TilePayload[] { + return local.tiles.map(t => { + const id = allInsights.get(t.insight); + if (!id) throw new Error(`dashboards/${local.slug}.json references unknown insight slug "${t.insight}"`); + return { insight: id }; + }); +} +``` + +### 5.5 Writeback + +After successful create: atomic temp-file write + `fs.rename` (POSIX-atomic). Stable 2-space JSON to keep diffs minimal. Skip on `--plan`. If create succeeds but writeback fails, print a recovery hint with the assigned id. + +### 5.6 Error semantics + +| Mode | On schema failure | On API error | On missing key | +|------|-------------------|--------------|----------------| +| `--plan` | exit 1 | exit 0 + stderr warning | engine: exit 1; CI workflow soft-skips | +| `--apply` | exit 1 | exit 1, partial state allowed | exit 1 | + +Partial apply: successful creates keep their writeback. Final summary: *"applied: 2, failed: 1 — see error log."* + +### 5.7 Orphans + +Orphans (remote artifacts with no local match) are reported in `--plan` output, never auto-deleted. `--apply --delete-orphans` is the only deletion path. Documented in `tools/posthog/README.md` along with the tombstone-JSON alternative. + +## 6. Report engine + +### 6.1 Flow + +```ts +async function generateReport(): Promise { + const dashboards = (await ph.GET('/dashboards/', { params: { query: { limit: 200 } } })) + .data.results.filter(d => d.tags?.includes('gtm')); + + const sections: ReportSection[] = []; + for (const d of dashboards) { + const rows: ReportRow[] = []; + for (const tile of d.tiles) { + const result = await ph.GET('/insights/{id}/', { + params: { path: { id: tile.insight }, query: { refresh: 'force_cache' } }, + }); + rows.push(extractRow(result.data)); + } + sections.push({ name: d.name, rows }); + } + return renderMarkdown(sections, todayUtc()); +} +``` + +### 6.2 Markdown template + +```markdown +# GTM weekly snapshot — YYYY-MM-DD + +> Generated by `nx run posthog-tools:report`. Notes below are hand-edited. + +## + +| Metric | This week | Last week | Δ | 4-wk | +|--------|----------:|----------:|--:|------| +| ... | ... | ... | | ▁▂▃▅ | + +## Notes + + +- _Add observations here before merging._ +``` + +### 6.3 Time windows + +- **This week** = trailing 7 days ending at run time, UTC. +- **Last week** = the prior 7 days, UTC. +- **4-wk sparkline** = four most recent complete 7-day buckets, normalized per metric. + +### 6.4 Insight kind → row extraction + +| Kind | "This week" value | +|------|-------------------| +| `trends` | Sum of event counts in window | +| `funnel` | Count completing final step in window | +| `retention` | Day-7 retention rate (decimal) | +| any other | `?` + stderr warning (no crash) | + +### 6.5 Sparkline + +```ts +const BARS = ['▁','▂','▃','▄','▅','▆','▇','█']; +function sparkline(values: readonly number[]): string { + if (!values.length) return '—'; + const max = Math.max(...values, 1); + return values.map(v => BARS[Math.min(7, Math.round((v / max) * 7))]).join(''); +} +``` + +### 6.6 Output safety + +- Always writes a file, even if all values are zero. +- If `-weekly.md` exists, appends `-2`, `-3` — never overwrites. +- Notes section ships with a `` marker. + +### 6.7 What the report engine does not do + +- No cross-week math beyond the 4-wk sparkline. +- No anomaly detection. +- No commit / no PR. The Cowork skill orchestrates git operations; the engine is a pure function of PostHog. + +## 7. Sample dashboard content + +### 7.1 `dashboards/developer-funnel.json` + +```jsonc +{ + "slug": "developer-funnel", + "posthog_id": null, + "name": "GTM · Developer funnel", + "description": "Pageview → install → cockpit activation. Source: gtm.md §4.", + "tags": ["gtm", "developer-track", "phase-1"], + "tiles": [ + { "insight": "pageviews-by-landing" }, + { "insight": "install-command-clicks" }, + { "insight": "cockpit-recipe-completion" }, + { "insight": "six-signal-activation-funnel" } + ] +} +``` + +### 7.2 Four insight JSONs + +**`insights/pageviews-by-landing.json`** — top of funnel; `$pageview` totals by `$pathname`, 30d/daily. + +**`insights/install-command-clicks.json`** — developer-track CTA signal; `marketing:cta_click` filtered to `track=developer`, broken out by `cta_id`, 30d/daily. + +**`insights/cockpit-recipe-completion.json`** — mid-funnel; two trends (`cockpit:recipe_start`, `cockpit:chat_first_message`), 30d/daily. Will be zero until Spec 1C ships. + +**`insights/six-signal-activation-funnel.json`** — north-star funnel; the six cockpit signals in order, 30-minute window, 30d. Will be zero until Spec 1C ships. + +### 7.3 What's not in 1A's content + +- No cohorts (`cohorts/` ships empty with `.gitkeep`). +- No retention insights. +- The other 4 dashboards (`enterprise-funnel`, `activation-six-signals` expanded, `content-intent`, `package-telemetry`) are explicitly deferred to a follow-up `dashboards-content` spec after 1B/1C/1D unlock their events. + +## 8. Tooling decisions (locked) + +| Decision | Choice | +|----------|--------| +| TS runtime | `tsx` (already in deps) | +| API client | `openapi-fetch` (~3KB runtime) | +| Types | `openapi-typescript` (generated, committed) | +| Schema validation | `zod` (local JSON only) | +| Drift detection | None (always-PATCH; PostHog dedupes) | +| Test runner | `tsx --test` (Node built-in) | +| Auth | Single write-scoped `POSTHOG_PERSONAL_API_KEY` in local `.env` + GitHub Actions secrets. Read-only CI key deferred (production hardening TODO) | +| CI gating | Nx affected + soft-skip on missing secret | + +## 9. Nx integration + +### 9.1 `tools/posthog/project.json` + +```jsonc +{ + "name": "posthog-tools", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "tools/posthog", + "projectType": "library", + "tags": ["scope:gtm", "type:tool"], + "namedInputs": { + "taxonomy": ["{workspaceRoot}/docs/gtm/taxonomy.md"] + }, + "targets": { + "lint": { "executor": "@nx/eslint:lint" }, + "test": { "executor": "nx:run-commands", + "options": { "command": "npx tsx --test tools/posthog/*.spec.ts" } }, + "sync:plan": { "executor": "nx:run-commands", + "inputs": ["default", "taxonomy"], + "options": { "command": "npx tsx tools/posthog/sync.ts --plan" } }, + "sync:apply": { "executor": "nx:run-commands", + "inputs": ["default", "taxonomy"], + "options": { "command": "npx tsx tools/posthog/sync.ts --apply" } }, + "report": { "executor": "nx:run-commands", + "options": { "command": "npx tsx tools/posthog/report.ts" } }, + "generate-types": { "executor": "nx:run-commands", + "options": { "command": "npx tsx tools/posthog/scripts/generate-types.ts" } } + } +} +``` + +`namedInputs.taxonomy` ensures edits to `docs/gtm/taxonomy.md` mark `posthog-tools` as affected — keeps event references honest. + +### 9.2 CI workflow job + +```yaml +posthog-sync-plan: + name: PostHog — dashboards-as-code drift check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: { fetch-depth: 0 } + - uses: actions/setup-node@v4 + with: { node-version: '20', cache: 'npm' } + - run: npm ci + - name: Detect affected + id: affected + run: | + base_sha=$(git merge-base origin/main HEAD) + head_sha=$(git rev-parse HEAD) + affected="$(npx nx show projects --affected --base=$base_sha --head=$head_sha)" + if printf '%s\n' "$affected" | grep -Fx 'posthog-tools' >/dev/null; then + echo "is_affected=yes" >> "$GITHUB_OUTPUT" + else + echo "is_affected=no" >> "$GITHUB_OUTPUT" + fi + - name: posthog:sync --plan + if: steps.affected.outputs.is_affected == 'yes' + env: + POSTHOG_PERSONAL_API_KEY: ${{ secrets.POSTHOG_PERSONAL_API_KEY }} + POSTHOG_HOST: https://us.i.posthog.com + POSTHOG_PROJECT_ID: ${{ secrets.POSTHOG_PROJECT_ID }} + run: | + if [ -z "$POSTHOG_PERSONAL_API_KEY" ]; then + echo "::notice::POSTHOG_PERSONAL_API_KEY not set — soft skip for contributor PRs." + exit 0 + fi + npx nx run posthog-tools:sync:plan +``` + +Two gates: Nx-affected (skip if irrelevant) + secret availability (skip on forks). + +## 10. Testing strategy + +### 10.1 Surfaces + +| Surface | File | Style | Approx tests | +|---------|------|-------|--------------| +| Schema | `schema.spec.ts` | Unit + fixture validator | 6 | +| Sync engine | `sync.spec.ts` | Unit with fake openapi-fetch client | 8 | +| Report engine | `report.spec.ts` | Unit (pure functions) | 7 | +| Taxonomy guard | `taxonomy.spec.ts` | Permanent contract test | 1 | +| **Total** | | | **~22 tests** | + +### 10.2 Critical behaviors covered + +- Every committed JSON file parses against its zod schema (fixture validator). +- First apply creates all artifacts and writes back `posthog_id` to disk. +- Apply order: insights POSTed before dashboards. +- Second apply with same JSON makes only PATCH calls, no POST. +- Dashboard tile referencing unknown insight slug throws clearly. +- `--plan` never writes to disk. +- Writeback is atomic (crash mid-write leaves file intact). +- Apply continues past one failure; partial success reported. +- Orphans reported, never auto-deleted. +- Sparkline math (empty, all-zero, normalization, edge cases). +- Markdown template structure (header, Notes section, HUMAN marker). +- Week-over-week delta with zero last-week reports "new" not "+Inf%". +- **Permanent taxonomy guard: every event referenced in any insight JSON is documented in `docs/gtm/taxonomy.md`.** + +### 10.3 What we deliberately don't test + +- `openapi-fetch` transport against real PostHog (too flaky in CI, requires secrets). +- Generated types regeneration (build catches invalid output). +- Nx project targets themselves (CI exercises them). +- `--apply` end-to-end against real PostHog (manual maintainer step on first apply + Chrome MCP verification post-merge). + +## 11. Risks & non-goals + +### 11.1 Risks + +| # | Risk | Mitigation | +|--:|------|------------| +| 1 | PostHog OpenAPI spec drift between regenerations | Quarterly regeneration is a documented maintenance task. Type errors surface at compile time, not runtime. | +| 2 | Write-scoped `POSTHOG_PERSONAL_API_KEY` in CI is broad | CI only runs `--plan` (read-only effect even with write key). Documented production-hardening TODO. | +| 3 | Always-PATCH masks subtle drift | PATCH response is shape-checked; taxonomy guard catches event renames; hash-based diff can be added later. | +| 4 | Slug rename loses `posthog_id` linkage | Documented rename procedure (edit slug, keep posthog_id, do not move the file). | +| 5 | Writeback creates noisy commits | `--apply` prints the exact `git commit` command on completion. | +| 6 | PostHog API rate limits | Client retries 429 with exponential backoff (3 attempts, max 8s). | +| 7 | Time zones in weekly windows confuse maintainers | Documented as UTC. Notes section handles time-zone-sensitive observations. | +| 8 | Generated artifact in source control | README at `tools/posthog/types/README.md` explains the choice. | + +### 11.2 Risks deferred (out of scope but real) + +- Only 1 dashboard ships; "5 dashboards live" exit gate met by 1A + follow-up `dashboards-content` spec. +- No cohorts ship. +- `/api/ingest` reverse proxy lands in Spec 1D. +- Read-only CI key deferred. +- No auto-merge of weekly snapshot PRs. + +### 11.3 Non-goals (Spec 1A) + +- No telemetry library code (Spec 1B). +- No cockpit instrumentation (Spec 1C). +- No website analytics modifications (Spec 1D). +- No remaining 4 dashboards (follow-up). +- No feature flags / experiments / session replay sync. +- No generic PostHog SDK — `client.ts` is scoped to ~10 endpoints. +- No auto-merge of report PRs. + +## 12. Deliverables of this spec + +Implementation plan (`docs/superpowers/plans/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code.md`) checks off: + +- [ ] **Decomposition update first** — `gtm.md §6` / §7 and meta-spec §6 reflect 1A–1D (otherwise downstream readers see stale "analytics-foundation" row). +- [ ] `tools/posthog/{project,package,tsconfig}.json` + lint config + Nx wiring +- [ ] `openapi-typescript` regeneration script + `posthog-api.gen.ts` committed +- [ ] `client.ts` (openapi-fetch instance, ~30 LOC) +- [ ] `env.ts` (zod-validated env vars) +- [ ] `schema.ts` (zod schemas for dashboard/insight/cohort local shapes) +- [ ] `sync.ts` with `--plan` / `--apply` / `--delete-orphans` / writeback (~250 LOC) +- [ ] `report.ts` with markdown template + sparkline + 7-day windows (~150 LOC) +- [ ] `dashboards/developer-funnel.json` + 4 `insights/*.json` +- [ ] `cohorts/.gitkeep` +- [ ] Test files: `schema.spec.ts`, `sync.spec.ts`, `report.spec.ts`, `taxonomy.spec.ts` (~22 tests) +- [ ] Root `package.json` script aliases + dev deps +- [ ] `.env.example` documented env vars +- [ ] `.github/workflows/ci.yml` new `posthog-sync-plan` job (Nx-affected + soft-skip) +- [ ] `tools/posthog/README.md` updates aligning with this design (drop `$schema` JSON Schema references; align CLI commands with `nx run posthog-tools:*`; document write-scoped key + read-only CI key TODO) +- [ ] Chrome MCP end-to-end verification: after `--apply` runs (locally or in CI), navigate to the rendered dashboard in PostHog and confirm 1 dashboard + 4 tiles render. + +## 13. References + +- Parent spec: [docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md](2026-05-13-gtm-meta-design.md) +- Strategy: [gtm.md](../../../../gtm.md) +- Taxonomy (contract): [docs/gtm/taxonomy.md](../../../gtm/taxonomy.md) +- Cowork skill that runs this CLI: [cowork/gtm/SKILL.md](../../../../cowork/gtm/SKILL.md) +- PostHog OpenAPI: `https://us.posthog.com/api/schema/` +- `openapi-fetch`: https://openapi-ts.dev/openapi-fetch/ +- `openapi-typescript`: https://openapi-ts.dev/ +- Subsumed: [docs/superpowers/plans/2026-05-02-posthog-gtm-analytics.md](../../../superpowers/plans/2026-05-02-posthog-gtm-analytics.md) — May-2 instrumentation plan, partly shipped on the website. Spec 1D handles reconciliation; Spec 1A is independent of that work. diff --git a/gtm.md b/gtm.md index fa5cfc20..5b103169 100644 --- a/gtm.md +++ b/gtm.md @@ -63,7 +63,7 @@ Four phases. Each phase = one or more workstream specs. Exit gates are blocking. | Phase | Goal | Specs | Exit gate | |------:|-------------------------------|-------------------------------------------------------------------------|-----------| -| 0 | Measurement foundation | analytics-foundation | 5 dashboards live, 3 event namespaces emitting, `@ngaf/telemetry@0.0.1` published, weekly report runnable. | +| 0 | Measurement foundation | analytics-foundation-1a, 1b, 1c, 1d | 5 dashboards live, 3 event namespaces emitting, `@ngaf/telemetry@0.0.1` published, weekly report runnable. | | 1 | Developer clarity in 30 sec | positioning-and-risks, comparison-pages, cockpit-activation-recipes | New hero shipped (incl. CTA fork), 4 comparison pages live, six-signal activation funnel non-zero, ≥1 qualified lead recorded. | | 2 | Ecosystem path (SEO + recipes)| content-pillar-pages | 6 pillar pages indexed, organic traffic baseline captured. | | 3 | Community launch | community-launch | Launch executed, week-1 snapshot committed, post-mortem committed. | @@ -78,7 +78,10 @@ Operational progress lives in agent runs and PostHog. The repo holds durable str | Phase | Workstream | Subagent | Spec | Dashboard | |------:|----------------------------|-------------------------------------------|-------------------------------------------------------------------------------|----------------------------| | 0 | gtm-meta | `cowork/gtm/SKILL.md` | [meta](docs/superpowers/specs/gtm/2026-05-13-gtm-meta-design.md) | — | -| 0 | analytics-foundation | `cowork/gtm/SKILL.md` | (pending) | all 5 (foundational) | +| 0 | analytics-foundation-1a | `cowork/gtm/SKILL.md` | [spec](docs/superpowers/specs/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code-design.md) | `developer-funnel` (sample) | +| 0 | analytics-foundation-1b | `cowork/gtm/SKILL.md` | (pending) | `package-telemetry` | +| 0 | analytics-foundation-1c | `cowork/gtm/SKILL.md` | (pending) | `activation-six-signals` | +| 0 | analytics-foundation-1d | `cowork/gtm/SKILL.md` | (pending) | `enterprise-funnel` | | 1 | positioning-and-risks | `cowork/gtm/SKILL.md` | (pending) | — | | 1 | comparison-pages | `cowork/gtm/SKILL.md` | (pending) | `content-intent` | | 1 | cockpit-activation-recipes | `cowork/gtm/SKILL.md` | (pending) | `activation-six-signals` | diff --git a/package-lock.json b/package-lock.json index cc0f40c9..db586a26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -84,6 +84,8 @@ "jsonc-eslint-parser": "^2.1.0", "ng-packagr": "~21.1.0", "nx": "22.5.1", + "openapi-fetch": "^0.13.8", + "openapi-typescript": "^7.13.0", "postcss": "^8.5.8", "postcss-url": "~10.1.3", "prettier": "^2.6.2", @@ -98,7 +100,8 @@ "typescript": "~5.9.2", "typescript-eslint": "^8.40.0", "verdaccio": "^6.0.5", - "vitest": "^4.1.0" + "vitest": "^4.1.0", + "zod": "^3.25.76" } }, "apps/cockpit": { @@ -329,15 +332,6 @@ "uuid": "dist/esm/bin/uuid" } }, - "node_modules/@ag-ui/client/node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "node_modules/@ag-ui/core": { "version": "0.0.52", "resolved": "https://registry.npmjs.org/@ag-ui/core/-/core-0.0.52.tgz", @@ -346,15 +340,6 @@ "zod": "^3.22.4" } }, - "node_modules/@ag-ui/core/node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "node_modules/@ag-ui/encoder": { "version": "0.0.52", "resolved": "https://registry.npmjs.org/@ag-ui/encoder/-/encoder-0.0.52.tgz", @@ -4689,6 +4674,16 @@ "node": "^20.19.0 || ^22.12.0 || >=23" } }, + "node_modules/@angular/cli/node_modules/zod": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz", + "integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/@angular/common": { "version": "21.1.6", "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.1.6.tgz", @@ -17285,6 +17280,85 @@ } } }, + "node_modules/@redocly/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js-replace": "^1.0.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@redocly/config": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.22.0.tgz", + "integrity": "sha512-gAy93Ddo01Z3bHuVdPWfCwzgfaYgMdaZPcfL7JZ7hWJoK9V0lXDbigTWkhiPFAaLWzbOJ+kbUQG1+XwIm0KRGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@redocly/openapi-core": { + "version": "1.34.14", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.34.14.tgz", + "integrity": "sha512-y+xFx+Zz54Xhr8jUdnLENYnt7Y7GEDL6Q03ga7rTtX8DVwefX9H+hQEPgJp1nda7vdH+wJ9/HBVvyfBuW9x6rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@redocly/ajv": "8.11.2", + "@redocly/config": "0.22.0", + "colorette": "1.4.0", + "https-proxy-agent": "7.0.6", + "js-levenshtein": "1.1.6", + "js-yaml": "4.1.1", + "minimatch": "5.1.9", + "pluralize": "8.0.0", + "yaml-ast-parser": "0.0.43" + }, + "engines": { + "node": ">=18.17.0", + "npm": ">=9.5.0" + } + }, + "node_modules/@redocly/openapi-core/node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@redocly/openapi-core/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@redocly/openapi-core/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@renovatebot/pep440": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@renovatebot/pep440/-/pep440-4.2.1.tgz", @@ -24518,6 +24592,13 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/change-case": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", + "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", + "dev": true, + "license": "MIT" + }, "node_modules/character-entities": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", @@ -30476,6 +30557,19 @@ "node": ">=0.8.19" } }, + "node_modules/index-to-position": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.2.0.tgz", + "integrity": "sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -31152,6 +31246,16 @@ "url": "https://github.com/sponsors/panva" } }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/js-tiktoken": { "version": "1.0.21", "resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.21.tgz", @@ -35615,6 +35719,75 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/openapi-fetch": { + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/openapi-fetch/-/openapi-fetch-0.13.8.tgz", + "integrity": "sha512-yJ4QKRyNxE44baQ9mY5+r/kAzZ8yXMemtNAOFwOzRXJscdjSxxzWSNlyBAr+o5JjkUw9Lc3W7OIoca0cY3PYnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "openapi-typescript-helpers": "^0.0.15" + } + }, + "node_modules/openapi-typescript": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-7.13.0.tgz", + "integrity": "sha512-EFP392gcqXS7ntPvbhBzbF8TyBA+baIYEm791Hy5YkjDYKTnk/Tn5OQeKm5BIZvJihpp8Zzr4hzx0Irde1LNGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@redocly/openapi-core": "^1.34.6", + "ansi-colors": "^4.1.3", + "change-case": "^5.4.4", + "parse-json": "^8.3.0", + "supports-color": "^10.2.2", + "yargs-parser": "^21.1.1" + }, + "bin": { + "openapi-typescript": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.x" + } + }, + "node_modules/openapi-typescript-helpers": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/openapi-typescript-helpers/-/openapi-typescript-helpers-0.0.15.tgz", + "integrity": "sha512-opyTPaunsklCBpTK8JGef6mfPhLSnyy5a0IN9vKtx3+4aExf+KxEqYwIy3hqkedXIB97u357uLMJsOnm3GVjsw==", + "dev": true, + "license": "MIT" + }, + "node_modules/openapi-typescript/node_modules/parse-json": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openapi-typescript/node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", @@ -36573,6 +36746,16 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/portfinder": { "version": "1.0.38", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz", @@ -41832,6 +42015,19 @@ "node": ">= 0.8.0" } }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -42286,6 +42482,13 @@ "punycode": "^2.1.0" } }, + "node_modules/uri-js-replace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uri-js-replace/-/uri-js-replace-1.0.1.tgz", + "integrity": "sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==", + "dev": true, + "license": "MIT" + }, "node_modules/url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", @@ -43547,6 +43750,13 @@ "url": "https://github.com/sponsors/eemeli" } }, + "node_modules/yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -43687,9 +43897,9 @@ } }, "node_modules/zod": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz", - "integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==", + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/package.json b/package.json index 0a8fd6e0..c5f92ce1 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,11 @@ "generate-api-docs": "npx tsx apps/website/scripts/generate-api-docs.ts", "generate-narrative-docs": "npx tsx apps/website/scripts/generate-narrative-docs.ts", "generate-docs": "npm run generate-api-docs && npm run generate-narrative-docs", - "generate-whitepaper": "npx tsx apps/website/scripts/generate-whitepaper.ts" + "generate-whitepaper": "npx tsx apps/website/scripts/generate-whitepaper.ts", + "posthog:sync": "nx run posthog-tools:sync:plan", + "posthog:apply": "nx run posthog-tools:sync:apply", + "posthog:report": "nx run posthog-tools:report", + "posthog:generate-types": "nx run posthog-tools:generate-types" }, "private": true, "overrides": { @@ -59,6 +63,8 @@ "jsonc-eslint-parser": "^2.1.0", "ng-packagr": "~21.1.0", "nx": "22.5.1", + "openapi-fetch": "^0.13.8", + "openapi-typescript": "^7.13.0", "postcss": "^8.5.8", "postcss-url": "~10.1.3", "prettier": "^2.6.2", @@ -73,7 +79,8 @@ "typescript": "~5.9.2", "typescript-eslint": "^8.40.0", "verdaccio": "^6.0.5", - "vitest": "^4.1.0" + "vitest": "^4.1.0", + "zod": "^3.25.76" }, "workspaces": [ "packages/*", diff --git a/tools/posthog/README.md b/tools/posthog/README.md index b6900339..e554ee0f 100644 --- a/tools/posthog/README.md +++ b/tools/posthog/README.md @@ -1,49 +1,74 @@ # PostHog dashboards-as-code -> Skeleton. Implementation lands in Spec 1 (`analytics-foundation`). -> The convention is locked here so contributors authoring dashboards know the shape. +> Spec: [analytics-foundation-1a-dashboards-as-code](../../docs/superpowers/specs/gtm/2026-05-14-analytics-foundation-1a-dashboards-as-code-design.md). -## What this directory is - -PostHog is configured via a Public-API-driven sync script — not through the PostHog UI. Every dashboard, insight, cohort, and funnel that GTM relies on is a JSON file in this directory. The sync script reconciles JSON ↔ PostHog. Git is the source of truth. +PostHog is configured via a Public-API-driven sync script — not through the PostHog UI. Every dashboard, insight, and cohort the GTM motion depends on is a JSON file in this directory. The sync tool reconciles JSON ↔ PostHog. Git is the source of truth. ## Directory layout ``` tools/posthog/ -├── sync.ts # Idempotent upsert. (Spec 1 implements.) -├── report.ts # Weekly markdown export. (Spec 1 implements.) -├── schema/ -│ ├── dashboard.json # JSON Schema for dashboards/*.json -│ ├── insight.json # JSON Schema for insights/*.json -│ └── cohort.json # JSON Schema for cohorts/*.json -├── dashboards/ # One JSON per dashboard -│ ├── developer-funnel.json -│ ├── enterprise-funnel.json -│ ├── activation-six-signals.json -│ ├── content-intent.json -│ └── package-telemetry.json -├── insights/ # Reusable insight specs referenced by dashboards -└── cohorts/ # Cohort specs (e.g. "Activated developers") +├── project.json # Nx project (posthog-tools) +├── env.ts # zod-validated env parsing +├── client.ts # openapi-fetch wrapper +├── schema.ts # zod schemas for local JSON +├── sync.ts # CLI: plan / apply / writeback +├── report.ts # CLI: pull insights → markdown +├── *.spec.ts # tests +├── types/posthog-api.gen.ts # generated from PostHog OpenAPI spec +├── scripts/generate-types.ts # regenerate the above +├── dashboards/*.json # one JSON per dashboard +├── insights/*.json # reusable insight specs +└── cohorts/ # currently empty; populated post-1A ``` -## JSON contract +## CLI + +All commands wrap `nx run posthog-tools:*`. Root-package aliases: + +```bash +npm run posthog:sync # → nx run posthog-tools:sync:plan +npm run posthog:apply # → nx run posthog-tools:sync:apply +npm run posthog:report # → nx run posthog-tools:report +npm run posthog:generate-types # → regenerate types/posthog-api.gen.ts +``` + +Direct Nx invocations work too: + +```bash +nx run posthog-tools:sync:plan +nx run posthog-tools:sync:apply +nx run posthog-tools:sync:apply --args="--delete-orphans" +nx run posthog-tools:test +nx run posthog-tools:lint +``` + +## Auth + +Requires a **Personal API Key** with `dashboard:write`, `insight:write`, `cohort:write`, `project:read` scopes. Create one at https://us.posthog.com/me/settings#personal-api-keys. -Each artifact is declarative content + a server-assigned `posthog_id` (written back after first sync). +Env vars (see `.env.example` at repo root): + +| Variable | Purpose | +|----------|---------| +| `POSTHOG_PERSONAL_API_KEY` | Personal API Key (Bearer) | +| `POSTHOG_HOST` | `https://us.i.posthog.com` (default) or your region | +| `POSTHOG_PROJECT_ID` | Numeric project id (visible in PostHog URL) | + +**CI** uses the same key (write-scoped) for `--plan` only. **Production hardening TODO:** create a read-only Personal API Key for CI and add it as `POSTHOG_PERSONAL_API_KEY_READONLY` in GitHub Actions secrets. Local development continues using the write-scoped key for `--apply` and `--report`. + +## JSON contract ```jsonc // tools/posthog/dashboards/developer-funnel.json { - "$schema": "../schema/dashboard.json", "slug": "developer-funnel", // local id, stable across syncs - "posthog_id": null, // assigned by sync; do not edit + "posthog_id": null, // assigned on first sync; do not edit "name": "GTM · Developer funnel", - "description": "Pageview → install → cockpit activation. Source: gtm.md §4.", - "tags": ["gtm", "developer-track", "phase-1"], + "description": "Pageview → install → cockpit activation.", + "tags": ["gtm", "developer-track"], "tiles": [ { "insight": "pageviews-by-landing" }, - { "insight": "install-command-clicks" }, - { "insight": "cockpit-recipe-completion" }, { "insight": "six-signal-activation-funnel" } ] } @@ -58,58 +83,48 @@ Each artifact is declarative content + a server-assigned `posthog_id` (written b "window_minutes": 30, "steps": [ { "event": "cockpit:install_command_copied" }, - { "event": "cockpit:transport_connected" }, - { "event": "cockpit:chat_first_message" }, - { "event": "cockpit:thread_persisted" }, - { "event": "cockpit:interrupt_handled" }, - { "event": "cockpit:generative_component_rendered" } + { "event": "cockpit:transport_connected" } ] } ``` -The funnel's six steps are the canonical "six signals." `cockpit:recipe_start` and `cockpit:six_signals_complete` exist as diagnostic events (session entry and "all six completed within window") but are not funnel steps. +Event names must match [`docs/gtm/taxonomy.md`](../../docs/gtm/taxonomy.md). The `taxonomy.spec.ts` test enforces this on every CI run. -Event names must match `docs/gtm/taxonomy.md`. CI guards reject dashboards that reference unknown events. +## Sync semantics -## CLI +- **`--plan`** — diff against PostHog, no writes. Outputs `[create] [update] [orphan]` per artifact. CI runs this on every PR that affects `posthog-tools`. +- **`--apply`** — idempotent upsert via PATCH. Re-running with no JSON change is a no-op (PostHog dedupes). +- **`--apply --delete-orphans`** — explicit deletion of remote artifacts that have no local JSON. Never automatic. +- **`posthog_id` writeback** — first successful create writes the assigned PostHog id back into the JSON. Commit the writeback as `chore(posthog): writeback ids for `. -```bash -npm run posthog:sync -- --plan # Diff against PostHog, no writes. - # Outputs [create] [update] [no-op] [orphan] per artifact. - # CI runs this on every PR. +## Renaming an artifact -npm run posthog:sync -- --apply # Idempotent upsert. - # Re-running with no JSON change = no-op. +To rename without losing the PostHog id: -npm run posthog:sync -- --apply --delete-orphans - # Explicit, manual. Deletes PostHog artifacts - # that have no matching JSON. Never auto. +1. Edit the `slug` field in the JSON, keeping `posthog_id` unchanged. +2. **Do not move the file** — the file path is the slug source. +3. `npm run posthog:sync` will detect this as an update, not a create + orphan. -npm run posthog:report # Pull insights → write docs/gtm/reports/-weekly.md. -``` +## Regenerating types -Also exposed as Nx targets on a synthetic `gtm` project (`tools/gtm/project.json`). +PostHog publishes their full Public API as OpenAPI 3 at `https://us.posthog.com/api/schema/`. We commit the generated TypeScript types to avoid network calls at build time. Refresh quarterly: -## Sync semantics +```bash +npm run posthog:generate-types +``` -- **Plan vs. apply.** `--plan` mutates nothing; `--apply` upserts. -- **Idempotent.** Re-applying with no JSON change is a no-op. -- **Orphan handling.** Items in PostHog with no JSON are reported on every plan/apply but never auto-deleted. Use `--apply --delete-orphans` to drop them, or commit a tombstone JSON. -- **`posthog_id` writeback.** After first apply, the sync script writes the assigned id back into each JSON. Commit the writeback as a follow-up. -- **Missing API key in CI.** Sync skips with a warning, not a failure — so contributor PRs without secrets pass. +Review the diff carefully — field renames in PostHog's API will surface here. -## Adding a new dashboard +## Why dashboards-as-code -1. Create `tools/posthog/dashboards/.json` following the contract above. -2. Reference insights by `slug` only. Define them in `insights/.json` if they don't exist. -3. Run `npm run posthog:sync -- --plan` locally. -4. Commit the JSON and open a PR. -5. After merge, run `npm run posthog:sync -- --apply` (or wait for the deploy hook — TBD in Spec 1). -6. Commit the `posthog_id` writeback. +- `git blame` answers "who changed this metric and why." +- No clicking through the PostHog UI ("api/cli-first" actually delivers). +- Reproducible on a fresh PostHog project for staging/test envs. +- Reviewable in PRs like any other change. +- `taxonomy.spec.ts` prevents dashboards from referencing events the taxonomy doesn't document. -## Why dashboards-as-code +## See also -- **`git blame` answers "who changed this metric and why."** -- **No clicking through the PostHog UI** = "api/cli-first agentic GTM" actually delivers. -- **Reproducible on a fresh PostHog project** for staging/test envs. -- **Reviewable in PRs** like any other change. +- [gtm.md](../../gtm.md) — durable strategy +- [docs/gtm/taxonomy.md](../../docs/gtm/taxonomy.md) — event names +- [cowork/gtm/SKILL.md](../../cowork/gtm/SKILL.md) — operates this CLI weekly diff --git a/tools/posthog/client.ts b/tools/posthog/client.ts new file mode 100644 index 00000000..0528bbc9 --- /dev/null +++ b/tools/posthog/client.ts @@ -0,0 +1,40 @@ +import createClient, { type Middleware } from 'openapi-fetch'; +import type { paths } from './types/posthog-api.gen.js'; +import { env } from './env.js'; + +const RETRYABLE_STATUSES = new Set([429, 502, 503, 504]); +const MAX_ATTEMPTS = 3; + +const retryMiddleware: Middleware = { + async onResponse({ response, request }) { + let attempt = 1; + let res = response; + while (RETRYABLE_STATUSES.has(res.status) && attempt < MAX_ATTEMPTS) { + const backoffMs = Math.min(8000, 500 * 2 ** (attempt - 1)); + await new Promise((resolve) => setTimeout(resolve, backoffMs)); + res = await fetch(request.clone()); + attempt += 1; + } + return res; + }, +}; + +export function createPosthogClient() { + const e = env(); + const client = createClient({ + baseUrl: `${e.POSTHOG_HOST}/api/projects/${e.POSTHOG_PROJECT_ID}`, + headers: { + Authorization: `Bearer ${e.POSTHOG_PERSONAL_API_KEY}`, + 'Content-Type': 'application/json', + }, + }); + client.use(retryMiddleware); + return client; +} + +// Lazy singleton. +let cached: ReturnType | null = null; +export function ph() { + if (!cached) cached = createPosthogClient(); + return cached; +} diff --git a/tools/posthog/cohorts/.gitkeep b/tools/posthog/cohorts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tools/posthog/dashboards/developer-funnel.json b/tools/posthog/dashboards/developer-funnel.json new file mode 100644 index 00000000..96d0ef49 --- /dev/null +++ b/tools/posthog/dashboards/developer-funnel.json @@ -0,0 +1,25 @@ +{ + "slug": "developer-funnel", + "posthog_id": 1582272, + "name": "GTM · Developer funnel", + "description": "Pageview → install → cockpit activation. Source: gtm.md §4.", + "tags": [ + "gtm", + "developer-track", + "phase-1" + ], + "tiles": [ + { + "insight": "pageviews-by-landing" + }, + { + "insight": "install-command-clicks" + }, + { + "insight": "cockpit-recipe-completion" + }, + { + "insight": "six-signal-activation-funnel" + } + ] +} diff --git a/tools/posthog/env.spec.ts b/tools/posthog/env.spec.ts new file mode 100644 index 00000000..10be453d --- /dev/null +++ b/tools/posthog/env.spec.ts @@ -0,0 +1,52 @@ +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { parseEnv } from './env.js'; + +test('parseEnv accepts a valid environment', () => { + const env = parseEnv({ + POSTHOG_PERSONAL_API_KEY: 'phx_'.padEnd(40, 'a'), + POSTHOG_PROJECT_ID: '12345', + }); + assert.equal(env.POSTHOG_PERSONAL_API_KEY, 'phx_'.padEnd(40, 'a')); + assert.equal(env.POSTHOG_HOST, 'https://us.i.posthog.com'); + assert.equal(env.POSTHOG_PROJECT_ID, 12345); +}); + +test('parseEnv coerces POSTHOG_PROJECT_ID to a number', () => { + const env = parseEnv({ + POSTHOG_PERSONAL_API_KEY: 'phx_'.padEnd(40, 'a'), + POSTHOG_PROJECT_ID: '987', + }); + assert.equal(env.POSTHOG_PROJECT_ID, 987); + assert.equal(typeof env.POSTHOG_PROJECT_ID, 'number'); +}); + +test('parseEnv respects POSTHOG_HOST override', () => { + const env = parseEnv({ + POSTHOG_PERSONAL_API_KEY: 'phx_'.padEnd(40, 'a'), + POSTHOG_PROJECT_ID: '12345', + POSTHOG_HOST: 'https://eu.i.posthog.com', + }); + assert.equal(env.POSTHOG_HOST, 'https://eu.i.posthog.com'); +}); + +test('parseEnv throws on missing required POSTHOG_PERSONAL_API_KEY', () => { + assert.throws( + () => parseEnv({ POSTHOG_PROJECT_ID: '12345' }), + /POSTHOG_PERSONAL_API_KEY/, + ); +}); + +test('parseEnv throws on short key', () => { + assert.throws( + () => parseEnv({ POSTHOG_PERSONAL_API_KEY: 'short', POSTHOG_PROJECT_ID: '1' }), + /POSTHOG_PERSONAL_API_KEY/, + ); +}); + +test('parseEnv throws on non-numeric POSTHOG_PROJECT_ID', () => { + assert.throws( + () => parseEnv({ POSTHOG_PERSONAL_API_KEY: 'phx_'.padEnd(40, 'a'), POSTHOG_PROJECT_ID: 'abc' }), + /POSTHOG_PROJECT_ID/, + ); +}); diff --git a/tools/posthog/env.ts b/tools/posthog/env.ts new file mode 100644 index 00000000..0698a001 --- /dev/null +++ b/tools/posthog/env.ts @@ -0,0 +1,28 @@ +import { z } from 'zod'; + +const envSchema = z.object({ + POSTHOG_PERSONAL_API_KEY: z + .string() + .min(20, 'POSTHOG_PERSONAL_API_KEY must be at least 20 characters'), + POSTHOG_HOST: z + .string() + .url() + .default('https://us.i.posthog.com'), + POSTHOG_PROJECT_ID: z.coerce + .number({ invalid_type_error: 'POSTHOG_PROJECT_ID must be numeric' }) + .int('POSTHOG_PROJECT_ID must be an integer') + .positive('POSTHOG_PROJECT_ID must be positive'), +}); + +export type PosthogEnv = z.infer; + +export function parseEnv(source: NodeJS.ProcessEnv | Record): PosthogEnv { + return envSchema.parse(source); +} + +// Lazy singleton for runtime use. Tests pass their own source to parseEnv directly. +let cached: PosthogEnv | null = null; +export function env(): PosthogEnv { + if (!cached) cached = parseEnv(process.env); + return cached; +} diff --git a/tools/posthog/eslint.config.mjs b/tools/posthog/eslint.config.mjs new file mode 100644 index 00000000..3541934d --- /dev/null +++ b/tools/posthog/eslint.config.mjs @@ -0,0 +1,17 @@ +import baseConfig from '../../eslint.config.mjs'; + +export default [ + ...baseConfig, + { + files: ['**/*.ts'], + rules: { + '@typescript-eslint/no-explicit-any': 'warn' + } + }, + { + files: ['**/*.spec.ts'], + rules: { + '@typescript-eslint/no-explicit-any': 'off' + } + } +]; diff --git a/tools/posthog/insights/cockpit-recipe-completion.json b/tools/posthog/insights/cockpit-recipe-completion.json new file mode 100644 index 00000000..2b7bedd0 --- /dev/null +++ b/tools/posthog/insights/cockpit-recipe-completion.json @@ -0,0 +1,18 @@ +{ + "slug": "cockpit-recipe-completion", + "posthog_id": 8587348, + "kind": "trends", + "name": "Cockpit recipe completion", + "events": [ + { + "event": "cockpit:recipe_start", + "math": "total" + }, + { + "event": "cockpit:chat_first_message", + "math": "total" + } + ], + "interval": "day", + "date_from": "-30d" +} diff --git a/tools/posthog/insights/install-command-clicks.json b/tools/posthog/insights/install-command-clicks.json new file mode 100644 index 00000000..03e4de8f --- /dev/null +++ b/tools/posthog/insights/install-command-clicks.json @@ -0,0 +1,23 @@ +{ + "slug": "install-command-clicks", + "posthog_id": 8587349, + "kind": "trends", + "name": "Install command clicks", + "events": [ + { + "event": "marketing:cta_click", + "math": "total", + "properties": [ + { + "key": "track", + "value": "developer", + "operator": "exact" + } + ] + } + ], + "breakdown": "cta_id", + "breakdown_limit": 10, + "interval": "day", + "date_from": "-30d" +} diff --git a/tools/posthog/insights/pageviews-by-landing.json b/tools/posthog/insights/pageviews-by-landing.json new file mode 100644 index 00000000..69869e45 --- /dev/null +++ b/tools/posthog/insights/pageviews-by-landing.json @@ -0,0 +1,16 @@ +{ + "slug": "pageviews-by-landing", + "posthog_id": 8587350, + "kind": "trends", + "name": "Pageviews by landing path", + "events": [ + { + "event": "$pageview", + "math": "total" + } + ], + "breakdown": "$pathname", + "breakdown_limit": 15, + "interval": "day", + "date_from": "-30d" +} diff --git a/tools/posthog/insights/six-signal-activation-funnel.json b/tools/posthog/insights/six-signal-activation-funnel.json new file mode 100644 index 00000000..435e782f --- /dev/null +++ b/tools/posthog/insights/six-signal-activation-funnel.json @@ -0,0 +1,29 @@ +{ + "slug": "six-signal-activation-funnel", + "posthog_id": 8587351, + "kind": "funnel", + "name": "Six-signal activation (30-min window)", + "interval": "day", + "window_minutes": 30, + "steps": [ + { + "event": "cockpit:install_command_copied" + }, + { + "event": "cockpit:transport_connected" + }, + { + "event": "cockpit:chat_first_message" + }, + { + "event": "cockpit:thread_persisted" + }, + { + "event": "cockpit:interrupt_handled" + }, + { + "event": "cockpit:generative_component_rendered" + } + ], + "date_from": "-30d" +} diff --git a/tools/posthog/package.json b/tools/posthog/package.json new file mode 100644 index 00000000..5c7c0184 --- /dev/null +++ b/tools/posthog/package.json @@ -0,0 +1,6 @@ +{ + "name": "@ngaf/posthog-tools", + "private": true, + "version": "0.0.0", + "type": "module" +} diff --git a/tools/posthog/project.json b/tools/posthog/project.json new file mode 100644 index 00000000..3cfa2a8d --- /dev/null +++ b/tools/posthog/project.json @@ -0,0 +1,47 @@ +{ + "name": "posthog-tools", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "tools/posthog", + "projectType": "library", + "tags": ["scope:gtm", "type:tool"], + "namedInputs": { + "taxonomy": ["{workspaceRoot}/docs/gtm/taxonomy.md"] + }, + "targets": { + "lint": { + "executor": "@nx/eslint:lint" + }, + "test": { + "executor": "nx:run-commands", + "options": { + "command": "npx tsx --test tools/posthog/*.spec.ts" + } + }, + "sync:plan": { + "executor": "nx:run-commands", + "inputs": ["default", "taxonomy"], + "options": { + "command": "npx tsx tools/posthog/sync.ts --plan" + } + }, + "sync:apply": { + "executor": "nx:run-commands", + "inputs": ["default", "taxonomy"], + "options": { + "command": "npx tsx tools/posthog/sync.ts --apply" + } + }, + "report": { + "executor": "nx:run-commands", + "options": { + "command": "npx tsx tools/posthog/report.ts" + } + }, + "generate-types": { + "executor": "nx:run-commands", + "options": { + "command": "npx tsx tools/posthog/scripts/generate-types.ts" + } + } + } +} diff --git a/tools/posthog/report.spec.ts b/tools/posthog/report.spec.ts new file mode 100644 index 00000000..4e6235dd --- /dev/null +++ b/tools/posthog/report.spec.ts @@ -0,0 +1,42 @@ +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { sparkline, formatDeltaCell, renderReport } from './report.js'; + +test('sparkline: empty array returns dash', () => { + assert.equal(sparkline([]), '—'); +}); + +test('sparkline: maps values to 8-bar palette', () => { + assert.equal(sparkline([0, 1, 2, 4, 8]), '▁▂▃▅█'); +}); + +test('sparkline: all zeros returns flat low bars', () => { + assert.equal(sparkline([0, 0, 0, 0]), '▁▁▁▁'); +}); + +test('formatDeltaCell: zero last week with positive this week returns "new"', () => { + const cell = formatDeltaCell({ thisWeek: 5, lastWeek: 0 }); + assert.match(cell, /\+5 \(new\)/); +}); + +test('formatDeltaCell: standard percent diff', () => { + const cell = formatDeltaCell({ thisWeek: 120, lastWeek: 100 }); + assert.match(cell, /\+20 \(\+20%\)/); +}); + +test('formatDeltaCell: negative diff', () => { + const cell = formatDeltaCell({ thisWeek: 80, lastWeek: 100 }); + assert.match(cell, /-20 \(-20%\)/); +}); + +test('renderReport: produces stable markdown structure', () => { + const out = renderReport( + [{ name: 'GTM · Test', rows: [{ metric: 'X', thisWeek: 10, lastWeek: 5, weeks: [1, 2, 3, 10] }] }], + '2026-05-14', + ); + assert.match(out, /^# GTM weekly snapshot — 2026-05-14/); + assert(out.includes('## GTM · Test')); + assert(out.includes('## Notes')); + assert(out.includes(''); + lines.push('- _Add observations here before merging._'); + lines.push(''); + return lines.join('\n'); +} + +import { writeFile, mkdir, access } from 'node:fs/promises'; +import { join, resolve as resolvePath, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { ph } from './client.js'; + +interface FetchedInsight { + id: number; + name: string; + filters?: { insight?: string }; + result?: any; +} + +interface FetchedDashboard { + id: number; + name: string; + tags?: string[]; + tiles?: Array<{ insight?: number | { id: number } }>; +} + +function extractWeeklyValues(insight: FetchedInsight): { thisWeek: number; lastWeek: number; weeks: number[] } { + // PostHog trends return result[0].data as an array of daily counts. + // We fold into 7-day buckets, newest first. + const series = (Array.isArray(insight.result) ? insight.result[0]?.data : insight.result?.[0]?.data) ?? []; + const buckets: number[] = []; + for (let i = 0; i < 4; i++) { + const start = series.length - (i + 1) * 7; + const end = series.length - i * 7; + if (start < 0) break; + buckets.unshift(series.slice(start, end).reduce((a: number, b: number) => a + b, 0)); + } + while (buckets.length < 4) buckets.unshift(0); + return { + thisWeek: buckets[buckets.length - 1] ?? 0, + lastWeek: buckets[buckets.length - 2] ?? 0, + weeks: buckets, + }; +} + +// Throws on PostHog HTTP errors instead of silently returning empty results. +// A zero-row report is signal; a failed-auth empty report is misleading. +function expectOk(r: { data?: T; error?: unknown }, op: string): T { + if (r.error || r.data === undefined) { + throw new Error(`PostHog ${op} failed: ${JSON.stringify(r.error)}`); + } + return r.data; +} + +export async function generateReport(): Promise<{ markdown: string; date: string }> { + const c = ph(); + const dashRes = await c.GET('/dashboards/' as any, { params: { query: { limit: 200 } } } as any); + const dashData = expectOk(dashRes as any, 'list dashboards') as { results?: FetchedDashboard[] }; + const dashboards = dashData.results ?? []; + const gtmDashboards = dashboards.filter((d) => d.tags?.includes('gtm')); + + const sections: ReportSection[] = []; + for (const d of gtmDashboards) { + const rows: ReportRow[] = []; + for (const tile of d.tiles ?? []) { + const tileId = typeof tile.insight === 'number' ? tile.insight : tile.insight?.id; + if (typeof tileId !== 'number') continue; + const insightRes = await c.GET(`/insights/{id}/` as any, { + params: { path: { id: tileId }, query: { refresh: 'force_cache' } }, + } as any); + const insight = expectOk(insightRes as any, `get insight ${tileId}`) as FetchedInsight; + const { thisWeek, lastWeek, weeks } = extractWeeklyValues(insight); + rows.push({ metric: insight.name, thisWeek, lastWeek, weeks }); + } + sections.push({ name: d.name, rows }); + } + + const date = new Date().toISOString().slice(0, 10); + return { markdown: renderReport(sections, date), date }; +} + +async function nextOutputPath(reportsDir: string, date: string): Promise { + const base = join(reportsDir, `${date}-weekly`); + let candidate = `${base}.md`; + let suffix = 2; + while (true) { + try { + await access(candidate); + candidate = `${base}-${suffix}.md`; + suffix += 1; + } catch { + return candidate; + } + } +} + +async function main(): Promise { + let report: { markdown: string; date: string }; + try { + report = await generateReport(); + } catch (err) { + console.error(`Report generation failed: ${err instanceof Error ? err.message : err}`); + return 1; + } + const here = dirname(fileURLToPath(import.meta.url)); + const reportsDir = resolvePath(here, '..', '..', 'docs', 'gtm', 'reports'); + await mkdir(reportsDir, { recursive: true }); + const outPath = await nextOutputPath(reportsDir, report.date); + await writeFile(outPath, report.markdown, 'utf8'); + console.log(`Wrote ${outPath}`); + return 0; +} + +const isDirectRun = process.argv[1] && resolvePath(process.argv[1]) === fileURLToPath(import.meta.url); +if (isDirectRun) { + main().then((code) => process.exit(code)); +} diff --git a/tools/posthog/schema.spec.ts b/tools/posthog/schema.spec.ts new file mode 100644 index 00000000..4990a2f6 --- /dev/null +++ b/tools/posthog/schema.spec.ts @@ -0,0 +1,103 @@ +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { readFile, readdir } from 'node:fs/promises'; +import { join } from 'node:path'; +import { DashboardLocal, InsightLocal, CohortLocal } from './schema.js'; + +const TOOLS_POSTHOG = new URL('.', import.meta.url).pathname; + +test('DashboardLocal accepts minimal valid input', () => { + const result = DashboardLocal.safeParse({ + slug: 'developer-funnel', + posthog_id: null, + name: 'GTM · Developer funnel', + description: 'Pageview → install → activation.', + tiles: [{ insight: 'pageviews-by-landing' }], + }); + assert.equal(result.success, true); + if (result.success) assert.deepEqual(result.data.tags, []); // default +}); + +test('DashboardLocal rejects uppercase slug', () => { + const result = DashboardLocal.safeParse({ + slug: 'Bad-Slug', + posthog_id: null, + name: 'x', + description: 'x', + tiles: [], + }); + assert.equal(result.success, false); +}); + +test('InsightLocal accepts a trend with breakdown', () => { + const result = InsightLocal.safeParse({ + slug: 'pageviews-by-landing', + posthog_id: null, + kind: 'trends', + name: 'Pageviews by landing path', + events: [{ event: '$pageview', math: 'total' }], + breakdown: '$pathname', + date_from: '-30d', + }); + assert.equal(result.success, true); +}); + +test('InsightLocal funnel requires steps', () => { + const result = InsightLocal.safeParse({ + slug: 'six-signal', + posthog_id: null, + kind: 'funnel', + name: 'six', + window_minutes: 30, + date_from: '-30d', + }); + assert.equal(result.success, false); +}); + +test('InsightLocal funnel with steps validates', () => { + const result = InsightLocal.safeParse({ + slug: 'six-signal', + posthog_id: null, + kind: 'funnel', + name: 'six', + window_minutes: 30, + steps: [{ event: 'cockpit:install_command_copied' }], + date_from: '-30d', + }); + assert.equal(result.success, true); +}); + +test('CohortLocal accepts pass-through query', () => { + const result = CohortLocal.safeParse({ + slug: 'activated-developers', + posthog_id: null, + name: 'Activated developers', + description: 'last 30d', + query: { kind: 'ActorsQuery', source: {} }, + }); + assert.equal(result.success, true); +}); + +test('every committed JSON in dashboards/insights/cohorts parses', async () => { + const root = TOOLS_POSTHOG; + const checks = [ + { dir: 'dashboards', schema: DashboardLocal }, + { dir: 'insights', schema: InsightLocal }, + { dir: 'cohorts', schema: CohortLocal }, + ]; + for (const { dir, schema } of checks) { + // readdir + filter is Node 20 compatible; fs.glob requires Node 22+. + let files: string[]; + try { + files = (await readdir(join(root, dir))).filter((f) => f.endsWith('.json')); + } catch { + continue; // missing directory is fine + } + for (const f of files) { + const path = join(root, dir, f); + const json = JSON.parse(await readFile(path, 'utf8')); + const result = schema.safeParse(json); + assert.equal(result.success, true, `${path}: ${result.success ? '' : JSON.stringify(result.error.issues)}`); + } + } +}); diff --git a/tools/posthog/schema.ts b/tools/posthog/schema.ts new file mode 100644 index 00000000..d0c5d4aa --- /dev/null +++ b/tools/posthog/schema.ts @@ -0,0 +1,62 @@ +import { z } from 'zod'; + +const slug = z.string().regex(/^[a-z0-9-]+$/, 'slug must be lowercase kebab-case'); + +export const DashboardLocal = z.object({ + slug, + posthog_id: z.number().nullable(), + name: z.string().min(1), + description: z.string(), + tags: z.array(z.string()).default([]), + tiles: z.array(z.object({ insight: z.string() })), +}); +export type DashboardLocal = z.infer; + +export const InsightLocal = z + .object({ + slug, + posthog_id: z.number().nullable(), + kind: z.enum(['trends', 'funnel', 'retention']), + name: z.string().min(1), + // trends-specific + events: z + .array( + z.object({ + event: z.string(), + math: z.enum(['total', 'dau', 'unique_session']).optional(), + properties: z + .array( + z.object({ + key: z.string(), + value: z.union([z.string(), z.number(), z.boolean()]), + operator: z.enum(['exact', 'is_not', 'icontains']).default('exact'), + }), + ) + .optional(), + }), + ) + .optional(), + breakdown: z.string().optional(), + breakdown_limit: z.number().int().positive().optional(), + interval: z.enum(['minute', 'hour', 'day', 'week', 'month']).default('day'), + // funnel-specific + window_minutes: z.number().int().positive().optional(), + steps: z + .array(z.object({ event: z.string(), name: z.string().optional() })) + .optional(), + date_from: z.string().default('-30d'), + }) + .refine((v) => (v.kind === 'funnel' ? Array.isArray(v.steps) && v.steps.length > 0 : true), { + message: 'funnel insights require non-empty steps', + path: ['steps'], + }); +export type InsightLocal = z.infer; + +export const CohortLocal = z.object({ + slug, + posthog_id: z.number().nullable(), + name: z.string().min(1), + description: z.string(), + query: z.unknown(), +}); +export type CohortLocal = z.infer; diff --git a/tools/posthog/scripts/generate-types.ts b/tools/posthog/scripts/generate-types.ts new file mode 100644 index 00000000..90b798b0 --- /dev/null +++ b/tools/posthog/scripts/generate-types.ts @@ -0,0 +1,33 @@ +#!/usr/bin/env tsx +/** + * Regenerates tools/posthog/types/posthog-api.gen.ts from PostHog's published + * OpenAPI spec. Run quarterly or whenever PostHog changes their API surface. + * + * Usage: nx run posthog-tools:generate-types + */ +import { writeFile } from 'node:fs/promises'; +import { fileURLToPath } from 'node:url'; +import { dirname, join } from 'node:path'; +import openapiTS, { astToString } from 'openapi-typescript'; + +const POSTHOG_SCHEMA_URL = 'https://us.posthog.com/api/schema/'; +const OUTPUT_PATH = join( + dirname(fileURLToPath(import.meta.url)), + '..', + 'types', + 'posthog-api.gen.ts', +); + +async function main(): Promise { + console.log(`Fetching OpenAPI spec from ${POSTHOG_SCHEMA_URL}...`); + const ast = await openapiTS(new URL(POSTHOG_SCHEMA_URL)); + const contents = astToString(ast); + const header = `/* eslint-disable */\n// Generated by tools/posthog/scripts/generate-types.ts.\n// DO NOT EDIT MANUALLY. Run: npx nx run posthog-tools:generate-types\n// Source: ${POSTHOG_SCHEMA_URL}\n\n`; + await writeFile(OUTPUT_PATH, header + contents, 'utf8'); + console.log(`Wrote ${OUTPUT_PATH}`); +} + +main().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/tools/posthog/sync.spec.ts b/tools/posthog/sync.spec.ts new file mode 100644 index 00000000..b724568b --- /dev/null +++ b/tools/posthog/sync.spec.ts @@ -0,0 +1,312 @@ +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { mkdtemp, writeFile, mkdir, readFile } from 'node:fs/promises'; +import { tmpdir } from 'node:os'; +import { join } from 'node:path'; +import { computePlan, type SyncClient } from './sync.js'; + +async function fixtureRoot(): Promise { + const dir = await mkdtemp(join(tmpdir(), 'posthog-tools-test-')); + await mkdir(join(dir, 'dashboards'), { recursive: true }); + await mkdir(join(dir, 'insights'), { recursive: true }); + await mkdir(join(dir, 'cohorts'), { recursive: true }); + return dir; +} + +function fakeClient(remote: { dashboards?: any[]; insights?: any[]; cohorts?: any[] } = {}): SyncClient { + return { + listDashboards: async () => remote.dashboards ?? [], + listInsights: async () => remote.insights ?? [], + listCohorts: async () => remote.cohorts ?? [], + createDashboard: async (body) => ({ ...body, id: 1000 }), + createInsight: async (body) => ({ ...body, id: 2000 }), + createCohort: async (body) => ({ ...body, id: 3000 }), + updateDashboard: async (id, body) => ({ ...body, id }), + updateInsight: async (id, body) => ({ ...body, id }), + updateCohort: async (id, body) => ({ ...body, id }), + deleteDashboard: async () => undefined, + deleteInsight: async () => undefined, + deleteCohort: async () => undefined, + }; +} + +test('computePlan: all-new local artifacts produce [create] for each', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'dashboards/d1.json'), JSON.stringify({ + slug: 'd1', posthog_id: null, name: 'D1', description: '', tiles: [{ insight: 'i1' }], + })); + await writeFile(join(root, 'insights/i1.json'), JSON.stringify({ + slug: 'i1', posthog_id: null, kind: 'trends', name: 'I1', events: [{ event: '$pageview', math: 'total' }], + })); + const plan = await computePlan({ root, client: fakeClient() }); + assert.equal(plan.create.length, 2); // 1 dashboard + 1 insight + assert.equal(plan.update.length, 0); + assert.equal(plan.orphan.length, 0); +}); + +test('computePlan: existing posthog_id matches remote and produces [update]', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/i1.json'), JSON.stringify({ + slug: 'i1', posthog_id: 42, kind: 'trends', name: 'I1', events: [{ event: '$pageview' }], + })); + const plan = await computePlan({ + root, + client: fakeClient({ insights: [{ id: 42, name: 'I1', filters: {} }] }), + }); + assert.equal(plan.update.length, 1); + assert.equal(plan.update[0].local.slug, 'i1'); +}); + +test('computePlan: remote without local match becomes [orphan]', async () => { + const root = await fixtureRoot(); + const plan = await computePlan({ + root, + client: fakeClient({ dashboards: [{ id: 999, name: 'Stray dashboard' }] }), + }); + assert.equal(plan.orphan.length, 1); + assert.equal(plan.orphan[0].remote.name, 'Stray dashboard'); +}); + +test('computePlan: name-fallback match when posthog_id is null', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/by-name.json'), JSON.stringify({ + slug: 'by-name', posthog_id: null, kind: 'trends', name: 'Existing Insight', + events: [{ event: '$pageview' }], + })); + const plan = await computePlan({ + root, + client: fakeClient({ insights: [{ id: 77, name: 'Existing Insight' }] }), + }); + assert.equal(plan.update.length, 1); + assert.equal(plan.update[0].remoteId, 77); +}); + +test('computePlan: ambiguous name match (two remotes same name) forces create', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/x.json'), JSON.stringify({ + slug: 'x', posthog_id: null, kind: 'trends', name: 'Same Name', + events: [{ event: '$pageview' }], + })); + const plan = await computePlan({ + root, + client: fakeClient({ + insights: [{ id: 1, name: 'Same Name' }, { id: 2, name: 'Same Name' }], + }), + }); + assert.equal(plan.create.length, 1); + assert.equal(plan.orphan.length, 2); // both ambiguous remotes become orphans +}); + +test('computePlan: invalid local JSON throws with file path in message', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/bad.json'), JSON.stringify({ slug: 'BAD-SLUG', posthog_id: null })); + await assert.rejects( + () => computePlan({ root, client: fakeClient() }), + /insights\/bad\.json/, + ); +}); + +import { applyPlan, type ApplyResult } from './sync.js'; + +test('applyPlan: apply order — insights POSTed before dashboards', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'dashboards/d.json'), JSON.stringify({ + slug: 'd', posthog_id: null, name: 'D', description: '', tiles: [{ insight: 'i' }], + })); + await writeFile(join(root, 'insights/i.json'), JSON.stringify({ + slug: 'i', posthog_id: null, kind: 'trends', name: 'I', events: [{ event: '$pageview' }], + })); + const createCalls: string[] = []; + const client: SyncClient = { + ...fakeClient(), + createInsight: async (body) => { createCalls.push('insight'); return { ...body, id: 2001 }; }, + createDashboard: async (body) => { createCalls.push('dashboard'); return { ...body, id: 1001 }; }, + }; + const plan = await computePlan({ root, client }); + await applyPlan({ root, client, plan }); + assert.deepEqual(createCalls, ['insight', 'dashboard']); +}); + +test('applyPlan: writeback updates posthog_id in source JSON', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/i.json'), JSON.stringify({ + slug: 'i', posthog_id: null, kind: 'trends', name: 'I', events: [{ event: '$pageview' }], + }, null, 2)); + const client: SyncClient = { ...fakeClient(), createInsight: async (body) => ({ ...body, id: 7777 }) }; + const plan = await computePlan({ root, client }); + await applyPlan({ root, client, plan }); + const updated = JSON.parse(await readFile(join(root, 'insights/i.json'), 'utf8')); + assert.equal(updated.posthog_id, 7777); +}); + +test('applyPlan: dashboard with unknown insight slug throws', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'dashboards/d.json'), JSON.stringify({ + slug: 'd', posthog_id: null, name: 'D', description: '', tiles: [{ insight: 'missing-insight' }], + })); + const client = fakeClient(); + const plan = await computePlan({ root, client }); + await assert.rejects( + () => applyPlan({ root, client, plan }), + /missing-insight/, + ); +}); + +test('applyPlan: partial success — failed insight does not block other creates', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/a.json'), JSON.stringify({ + slug: 'a', posthog_id: null, kind: 'trends', name: 'A', events: [{ event: '$pageview' }], + })); + await writeFile(join(root, 'insights/fail.json'), JSON.stringify({ + slug: 'fail', posthog_id: null, kind: 'trends', name: 'Fail', events: [{ event: '$pageview' }], + })); + let calls = 0; + const client: SyncClient = { + ...fakeClient(), + createInsight: async (body) => { + calls += 1; + if (body.name === 'Fail') throw new Error('500'); + return { ...body, id: 100 + calls }; + }, + }; + const plan = await computePlan({ root, client }); + const result: ApplyResult = await applyPlan({ root, client, plan }); + assert.equal(result.applied, 1); + assert.equal(result.failed, 1); +}); + +test('applyPlan: --plan mode never writes to disk', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'insights/i.json'), JSON.stringify({ + slug: 'i', posthog_id: null, kind: 'trends', name: 'I', events: [{ event: '$pageview' }], + })); + const before = await readFile(join(root, 'insights/i.json'), 'utf8'); + const client = fakeClient(); + const plan = await computePlan({ root, client }); + // computePlan never writes; applyPlan({ dryRun: true }) also never writes + await applyPlan({ root, client, plan, dryRun: true }); + const after = await readFile(join(root, 'insights/i.json'), 'utf8'); + assert.equal(before, after); +}); + +test('applyPlan: orphans are never deleted unless deleteOrphans:true', async () => { + const root = await fixtureRoot(); + const deleteCalls: number[] = []; + const client: SyncClient = { + ...fakeClient({ dashboards: [{ id: 999, name: 'Stray' }] }), + deleteDashboard: async (id) => { deleteCalls.push(id); }, + }; + const plan = await computePlan({ root, client }); + await applyPlan({ root, client, plan }); + assert.deepEqual(deleteCalls, []); + await applyPlan({ root, client, plan, deleteOrphans: true }); + assert.deepEqual(deleteCalls, [999]); +}); + +test('applyPlan: wiring pass PATCHes insights with dashboards: []', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'dashboards/d.json'), JSON.stringify({ + slug: 'd', posthog_id: null, name: 'D', description: '', tiles: [{ insight: 'i' }], + })); + await writeFile(join(root, 'insights/i.json'), JSON.stringify({ + slug: 'i', posthog_id: null, kind: 'trends', name: 'I', events: [{ event: '$pageview' }], + })); + const updateCalls: Array<{ id: number; body: any }> = []; + const client: SyncClient = { + ...fakeClient(), + createInsight: async (body) => ({ ...body, id: 5001 }), + createDashboard: async (body) => ({ ...body, id: 6001 }), + updateInsight: async (id, body) => { updateCalls.push({ id, body }); return { ...body, id }; }, + }; + const plan = await computePlan({ root, client }); + await applyPlan({ root, client, plan }); + // The wiring pass should have PATCHed insight 5001 with dashboards: [6001]. + const wiringCalls = updateCalls.filter((c) => c.id === 5001 && Array.isArray(c.body.dashboards)); + assert.equal(wiringCalls.length, 1); + assert.deepEqual(wiringCalls[0].body.dashboards, [6001]); +}); + +test('applyPlan: toPostHogDashboard — body excludes tiles and slug, keeps name/description/tags', async () => { + const root = await fixtureRoot(); + await writeFile(join(root, 'dashboards/d.json'), JSON.stringify({ + slug: 'd', posthog_id: null, name: 'D', description: 'desc', tags: ['gtm'], tiles: [], + })); + let createdBody: any = null; + const client: SyncClient = { + ...fakeClient(), + createDashboard: async (body) => { createdBody = body; return { ...body, id: 6001 }; }, + }; + const plan = await computePlan({ root, client }); + await applyPlan({ root, client, plan }); + assert.equal(createdBody !== null, true); + assert.equal('tiles' in createdBody, false); + assert.equal('slug' in createdBody, false); + assert.equal(createdBody.name, 'D'); + assert.equal(createdBody.description, 'desc'); + assert.deepEqual(createdBody.tags, ['gtm']); +}); + +import { toPostHogInsight, toPostHogDashboard } from './sync.js'; + +test('toPostHogInsight: trends maps to InsightVizNode/TrendsQuery', () => { + const out = toPostHogInsight({ + slug: 'x', + posthog_id: null, + kind: 'trends', + name: 'X', + events: [{ event: '$pageview', math: 'total' }], + breakdown: '$pathname', + breakdown_limit: 15, + date_from: '-30d', + interval: 'day', + }); + assert.equal(out.name, 'X'); + assert.equal(out.query.kind, 'InsightVizNode'); + assert.equal(out.query.source.kind, 'TrendsQuery'); + assert.equal(out.query.source.series.length, 1); + assert.equal(out.query.source.series[0].kind, 'EventsNode'); + assert.equal(out.query.source.series[0].event, '$pageview'); + assert.equal(out.query.source.series[0].math, 'total'); + assert.equal(out.query.source.interval, 'day'); + assert.equal(out.query.source.dateRange.date_from, '-30d'); + assert.equal(out.query.source.breakdownFilter.breakdown, '$pathname'); + assert.equal(out.query.source.breakdownFilter.breakdown_type, 'event'); + assert.equal(out.query.source.breakdownFilter.breakdown_limit, 15); +}); + +test('toPostHogInsight: funnel maps to InsightVizNode/FunnelsQuery', () => { + const out = toPostHogInsight({ + slug: 'f', + posthog_id: null, + kind: 'funnel', + name: 'F', + window_minutes: 30, + steps: [{ event: 'cockpit:install_command_copied' }, { event: 'cockpit:transport_connected' }], + date_from: '-30d', + }); + assert.equal(out.query.kind, 'InsightVizNode'); + assert.equal(out.query.source.kind, 'FunnelsQuery'); + assert.equal(out.query.source.series.length, 2); + assert.equal(out.query.source.series[0].kind, 'EventsNode'); + assert.equal(out.query.source.series[0].event, 'cockpit:install_command_copied'); + assert.equal(out.query.source.funnelsFilter.funnelWindowInterval, 30); + assert.equal(out.query.source.funnelsFilter.funnelWindowIntervalUnit, 'minute'); + assert.equal(out.query.source.dateRange.date_from, '-30d'); +}); + +test('toPostHogDashboard: returns name/description/tags, drops slug/tiles/posthog_id', () => { + const out = toPostHogDashboard({ + slug: 'developer-funnel', + posthog_id: 1234, + name: 'GTM · Developer funnel', + description: 'desc', + tags: ['gtm', 'developer-track'], + tiles: [{ insight: 'x' }], + }); + assert.equal(out.name, 'GTM · Developer funnel'); + assert.equal(out.description, 'desc'); + assert.deepEqual(out.tags, ['gtm', 'developer-track']); + assert.equal('slug' in out, false); + assert.equal('tiles' in out, false); + assert.equal('posthog_id' in out, false); +}); diff --git a/tools/posthog/sync.ts b/tools/posthog/sync.ts new file mode 100644 index 00000000..3e450464 --- /dev/null +++ b/tools/posthog/sync.ts @@ -0,0 +1,504 @@ +import { readFile, readdir } from 'node:fs/promises'; +import { join } from 'node:path'; +import { DashboardLocal, InsightLocal, CohortLocal } from './schema.js'; +import { z } from 'zod'; + +// Minimal remote shapes — we only read fields we use, so we keep these loose. +export interface RemoteDashboard { id: number; name: string; tags?: string[] } +export interface RemoteInsight { id: number; name: string; filters?: unknown } +export interface RemoteCohort { id: number; name: string } + +// Transport interface. The real client adapts openapi-fetch to this shape. +export interface SyncClient { + listDashboards(): Promise; + listInsights(): Promise; + listCohorts(): Promise; + createDashboard(body: any): Promise; + createInsight(body: any): Promise; + createCohort(body: any): Promise; + updateDashboard(id: number, body: any): Promise; + updateInsight(id: number, body: any): Promise; + updateCohort(id: number, body: any): Promise; + deleteDashboard(id: number): Promise; + deleteInsight(id: number): Promise; + deleteCohort(id: number): Promise; +} + +export type Kind = 'dashboard' | 'insight' | 'cohort'; + +export interface PlanItem { + kind: Kind; + local?: any; + remote?: any; + remoteId?: number; + path?: string; +} + +export interface SyncPlan { + create: PlanItem[]; + update: PlanItem[]; + orphan: PlanItem[]; +} + +async function loadLocalDir( + root: string, + subdir: string, + schema: z.ZodType, +): Promise> { + const dir = join(root, subdir); + let files: string[]; + try { + files = (await readdir(dir)).filter((f) => f.endsWith('.json')); + } catch { + return []; + } + const out: Array<{ data: T; path: string }> = []; + for (const f of files) { + const path = join(subdir, f); + const json = JSON.parse(await readFile(join(root, path), 'utf8')); + const result = schema.safeParse(json); + if (!result.success) { + throw new Error(`${path}: ${JSON.stringify(result.error.issues)}`); + } + out.push({ data: result.data, path }); + } + return out; +} + +function matchRemoteById( + local: { posthog_id: number | null; name: string }, + remotes: R[], +): { remote: R | null; ambiguous: R[] } { + if (local.posthog_id !== null) { + const remote = remotes.find((r) => r.id === local.posthog_id) ?? null; + return { remote, ambiguous: [] }; + } + const named = remotes.filter((r) => r.name === local.name); + if (named.length === 1) return { remote: named[0], ambiguous: [] }; + if (named.length > 1) return { remote: null, ambiguous: named }; + return { remote: null, ambiguous: [] }; +} + +export async function computePlan({ + root, + client, +}: { + root: string; + client: SyncClient; +}): Promise { + const localDashboards = await loadLocalDir(root, 'dashboards', DashboardLocal); + const localInsights = await loadLocalDir(root, 'insights', InsightLocal); + const localCohorts = await loadLocalDir(root, 'cohorts', CohortLocal); + const remoteDashboards = await client.listDashboards(); + const remoteInsights = await client.listInsights(); + const remoteCohorts = await client.listCohorts(); + + const plan: SyncPlan = { create: [], update: [], orphan: [] }; + const matchedRemoteIds = { dashboard: new Set(), insight: new Set(), cohort: new Set() }; + + const apply = ( + kind: Kind, + locals: Array<{ data: L; path: string }>, + remotes: R[], + matched: Set, + ) => { + for (const { data, path } of locals) { + const { remote, ambiguous } = matchRemoteById(data, remotes); + if (remote) { + plan.update.push({ kind, local: data, remote, remoteId: remote.id, path }); + matched.add(remote.id); + } else if (ambiguous.length > 0) { + plan.create.push({ kind, local: data, path }); + for (const r of ambiguous) { + plan.orphan.push({ kind, remote: r }); + matched.add(r.id); + } + } else { + plan.create.push({ kind, local: data, path }); + } + } + for (const r of remotes) { + if (!matched.has(r.id)) { + plan.orphan.push({ kind, remote: r }); + } + } + }; + + apply('dashboard', localDashboards, remoteDashboards, matchedRemoteIds.dashboard); + apply('insight', localInsights, remoteInsights, matchedRemoteIds.insight); + apply('cohort', localCohorts, remoteCohorts, matchedRemoteIds.cohort); + + return plan; +} + +import { writeFile, rename } from 'node:fs/promises'; + +export interface ApplyResult { + applied: number; + failed: number; + errors: Array<{ kind: Kind; slug: string; error: string }>; +} + +export interface ApplyOptions { + root: string; + client: SyncClient; + plan: SyncPlan; + dryRun?: boolean; + deleteOrphans?: boolean; +} + +async function atomicWriteJson(path: string, data: unknown): Promise { + const tmpPath = `${path}.tmp`; + await writeFile(tmpPath, JSON.stringify(data, null, 2) + '\n', 'utf8'); + await rename(tmpPath, path); +} + +function resolveTiles( + dashboard: any, + insightSlugToId: Map, +): Array<{ insight: number }> { + return (dashboard.tiles ?? []).map((t: { insight: string }) => { + const id = insightSlugToId.get(t.insight); + if (id === undefined) { + throw new Error( + `dashboards/${dashboard.slug}.json references unknown insight slug "${t.insight}"`, + ); + } + return { insight: id }; + }); +} + +// PostHog rejects/ignores a `tiles` field on dashboard create/update. +// We keep tiles in the local JSON as the source of truth, but strip them +// from the body sent to PostHog. The wiring pass populates each insight's +// `dashboards` field instead. +function stripTiles(local: any): any { + const { tiles: _tiles, ...rest } = local; + return rest; +} + +// Map our local InsightLocal shape (flat fields per zod schema) to PostHog's +// modern query schema (HogQL-style InsightVizNode). The legacy `filters` shape +// is rejected by modern PostHog projects. +// +// Schema reference: https://posthog.com/docs/api/queries +// +// Exported for unit testing. +export function toPostHogInsight(local: any): any { + const base = { + name: local.name, + description: local.description ?? '', + }; + const kind: string = local.kind; + + if (kind === 'funnel') { + return { + ...base, + query: { + kind: 'InsightVizNode', + source: { + kind: 'FunnelsQuery', + series: (local.steps ?? []).map((s: any) => ({ + kind: 'EventsNode', + event: s.event, + name: s.name ?? s.event, + math: 'total', + })), + dateRange: { date_from: local.date_from ?? '-30d' }, + funnelsFilter: { + funnelWindowInterval: local.window_minutes ?? 60, + funnelWindowIntervalUnit: 'minute', + }, + }, + }, + }; + } + + if (kind === 'trends') { + const source: any = { + kind: 'TrendsQuery', + series: (local.events ?? []).map((e: any) => ({ + kind: 'EventsNode', + event: e.event, + name: e.event, + math: e.math === 'dau' ? 'dau' : e.math === 'unique_session' ? 'unique_session' : 'total', + properties: (e.properties ?? []).map((p: any) => ({ + key: p.key, + value: p.value, + operator: p.operator ?? 'exact', + type: 'event', + })), + })), + dateRange: { date_from: local.date_from ?? '-30d' }, + interval: local.interval ?? 'day', + trendsFilter: {}, + }; + if (local.breakdown) { + source.breakdownFilter = { + breakdown_type: 'event', + breakdown: local.breakdown, + breakdown_limit: local.breakdown_limit, + }; + } + return { + ...base, + query: { kind: 'InsightVizNode', source }, + }; + } + + // retention or other — minimal passthrough; not used in Spec 1A. + return { + ...base, + query: { + kind: 'InsightVizNode', + source: { + kind: 'RetentionQuery', + dateRange: { date_from: local.date_from ?? '-30d' }, + }, + }, + }; +} + +// Map DashboardLocal to PostHog's body shape. tiles is read-only on create/update; +// stripped here. The wiring pass associates insights with dashboards instead. +export function toPostHogDashboard(local: any): any { + return { + name: local.name, + description: local.description ?? '', + tags: local.tags ?? [], + }; +} + +export async function applyPlan(options: ApplyOptions): Promise { + const { root, client, plan, dryRun = false, deleteOrphans = false } = options; + const result: ApplyResult = { applied: 0, failed: 0, errors: [] }; + const insightSlugToId = new Map(); + + // Pre-populate insight slug→id map from existing posthog_ids (for dashboards referencing already-synced insights). + for (const item of plan.update.filter((p) => p.kind === 'insight')) { + insightSlugToId.set(item.local.slug, item.remoteId!); + } + + // Apply order: cohorts → insights → dashboards. Creates within a tier before updates. + const tiers: Array<{ kind: Kind; create: PlanItem[]; update: PlanItem[] }> = [ + { kind: 'cohort', create: plan.create.filter((p) => p.kind === 'cohort'), update: plan.update.filter((p) => p.kind === 'cohort') }, + { kind: 'insight', create: plan.create.filter((p) => p.kind === 'insight'), update: plan.update.filter((p) => p.kind === 'insight') }, + { kind: 'dashboard', create: plan.create.filter((p) => p.kind === 'dashboard'), update: plan.update.filter((p) => p.kind === 'dashboard') }, + ]; + + const dashboardSlugToId = new Map(); + // Pre-populate dashboard slug→id map from existing posthog_ids (for wiring pass below). + for (const item of plan.update.filter((p) => p.kind === 'dashboard')) { + dashboardSlugToId.set(item.local.slug, item.remoteId!); + } + + for (const tier of tiers) { + for (const item of tier.create) { + if (dryRun) continue; + // Resolve tile slugs outside the try — unknown insight slug is a data error + // that must surface, not a per-item network failure. We don't actually send + // the resolved tiles to PostHog (dashboards' tiles field is read-only on + // create/update; the wiring pass below sets each insight's `dashboards` field + // instead), but resolving here gives early validation. + if (item.kind === 'dashboard') resolveTiles(item.local, insightSlugToId); + try { + let created: any; + if (item.kind === 'cohort') created = await client.createCohort(item.local); + else if (item.kind === 'insight') created = await client.createInsight(toPostHogInsight(item.local)); + else created = await client.createDashboard(toPostHogDashboard(item.local)); + if (item.kind === 'insight') insightSlugToId.set(item.local.slug, created.id); + if (item.kind === 'dashboard') dashboardSlugToId.set(item.local.slug, created.id); + // Writeback posthog_id into local JSON. + if (item.path) { + const fullPath = join(root, item.path); + await atomicWriteJson(fullPath, { ...item.local, posthog_id: created.id }); + } + result.applied += 1; + } catch (err) { + result.failed += 1; + result.errors.push({ + kind: item.kind, + slug: item.local.slug, + error: err instanceof Error ? err.message : String(err), + }); + } + } + for (const item of tier.update) { + if (dryRun) continue; + if (item.kind === 'dashboard') resolveTiles(item.local, insightSlugToId); + try { + if (item.kind === 'cohort') await client.updateCohort(item.remoteId!, item.local); + else if (item.kind === 'insight') await client.updateInsight(item.remoteId!, toPostHogInsight(item.local)); + else await client.updateDashboard(item.remoteId!, toPostHogDashboard(item.local)); + result.applied += 1; + } catch (err) { + result.failed += 1; + result.errors.push({ + kind: item.kind, + slug: item.local.slug, + error: err instanceof Error ? err.message : String(err), + }); + } + } + } + + // Wiring pass: PostHog associates insights with dashboards via the insight's + // `dashboards: number[]` field. PATCH each insight that any local dashboard + // references with its full desired dashboards list (idempotent). + if (!dryRun) { + type LocalDashboard = { slug: string; posthog_id: number | null; tiles?: Array<{ insight: string }> }; + const localDashboards = (await loadLocalDir(root, 'dashboards', DashboardLocal)) as Array<{ data: LocalDashboard; path: string }>; + const insightDesiredDashboards = new Map(); // insight slug → dashboard ids + for (const { data: d } of localDashboards) { + const dashId = dashboardSlugToId.get(d.slug) ?? d.posthog_id; + if (typeof dashId !== 'number') continue; + for (const tile of d.tiles ?? []) { + const existing = insightDesiredDashboards.get(tile.insight) ?? []; + if (!existing.includes(dashId)) existing.push(dashId); + insightDesiredDashboards.set(tile.insight, existing); + } + } + for (const [insightSlug, dashboardIds] of insightDesiredDashboards) { + const insightId = insightSlugToId.get(insightSlug); + if (typeof insightId !== 'number') continue; + try { + await client.updateInsight(insightId, { dashboards: dashboardIds }); + } catch (err) { + result.errors.push({ + kind: 'insight', + slug: `${insightSlug} (wiring)`, + error: err instanceof Error ? err.message : String(err), + }); + } + } + } + + if (deleteOrphans && !dryRun) { + for (const item of plan.orphan) { + try { + if (item.kind === 'cohort') await client.deleteCohort(item.remote.id); + else if (item.kind === 'insight') await client.deleteInsight(item.remote.id); + else await client.deleteDashboard(item.remote.id); + } catch (err) { + result.errors.push({ + kind: item.kind, + slug: `(orphan id=${item.remote.id})`, + error: err instanceof Error ? err.message : String(err), + }); + } + } + } + + return result; +} + +import { fileURLToPath } from 'node:url'; +import { dirname, resolve as resolvePath } from 'node:path'; +import { ph } from './client.js'; + +function makeRealClient(): SyncClient { + const c = ph(); + const ok = (r: { data?: T; error?: unknown }, op: string): T => { + if (r.error || r.data === undefined) { + throw new Error(`PostHog ${op} failed: ${JSON.stringify(r.error)}`); + } + return r.data; + }; + return { + listDashboards: async () => { + const r = await c.GET('/dashboards/' as any, { params: { query: { limit: 200 } } } as any); + return ((ok(r as any, 'list dashboards') as any).results ?? []) as RemoteDashboard[]; + }, + listInsights: async () => { + const r = await c.GET('/insights/' as any, { params: { query: { limit: 200 } } } as any); + return ((ok(r as any, 'list insights') as any).results ?? []) as RemoteInsight[]; + }, + listCohorts: async () => { + const r = await c.GET('/cohorts/' as any, { params: { query: { limit: 200 } } } as any); + return ((ok(r as any, 'list cohorts') as any).results ?? []) as RemoteCohort[]; + }, + createDashboard: async (body) => ok(await c.POST('/dashboards/' as any, { body } as any), 'create dashboard') as RemoteDashboard, + createInsight: async (body) => ok(await c.POST('/insights/' as any, { body } as any), 'create insight') as RemoteInsight, + createCohort: async (body) => ok(await c.POST('/cohorts/' as any, { body } as any), 'create cohort') as RemoteCohort, + updateDashboard: async (id, body) => ok(await c.PATCH(`/dashboards/{id}/` as any, { params: { path: { id } }, body } as any), 'update dashboard') as RemoteDashboard, + updateInsight: async (id, body) => ok(await c.PATCH(`/insights/{id}/` as any, { params: { path: { id } }, body } as any), 'update insight') as RemoteInsight, + updateCohort: async (id, body) => ok(await c.PATCH(`/cohorts/{id}/` as any, { params: { path: { id } }, body } as any), 'update cohort') as RemoteCohort, + deleteDashboard: async (id) => { await c.DELETE(`/dashboards/{id}/` as any, { params: { path: { id } } } as any); }, + deleteInsight: async (id) => { await c.DELETE(`/insights/{id}/` as any, { params: { path: { id } } } as any); }, + deleteCohort: async (id) => { await c.DELETE(`/cohorts/{id}/` as any, { params: { path: { id } } } as any); }, + }; +} + +function formatPlanSummary(plan: SyncPlan): string { + const lines: string[] = []; + for (const item of plan.create) lines.push(`[create] ${item.kind} ${item.local.slug}`); + for (const item of plan.update) lines.push(`[update] ${item.kind} ${item.local.slug} (posthog_id=${item.remoteId})`); + for (const item of plan.orphan) lines.push(`[orphan] ${item.kind} "${item.remote.name}" (posthog_id=${item.remote.id})`); + if (lines.length === 0) lines.push('(nothing to do)'); + return lines.join('\n'); +} + +async function main(): Promise { + const args = process.argv.slice(2); + const wantPlan = args.includes('--plan'); + const wantApply = args.includes('--apply'); + const deleteOrphans = args.includes('--delete-orphans'); + if (!wantPlan && !wantApply) { + console.error('Usage: sync.ts (--plan | --apply [--delete-orphans])'); + return 1; + } + if (wantPlan && wantApply) { + console.error('Cannot combine --plan and --apply'); + return 1; + } + + const here = dirname(fileURLToPath(import.meta.url)); + const root = resolvePath(here); // tools/posthog/ + + let client: SyncClient; + try { + client = makeRealClient(); + } catch (err) { + console.error(`Failed to initialize PostHog client: ${err instanceof Error ? err.message : err}`); + return 1; + } + + let plan: SyncPlan; + try { + plan = await computePlan({ root, client }); + } catch (err) { + console.error(`Plan computation failed: ${err instanceof Error ? err.message : err}`); + return 1; + } + + console.log(formatPlanSummary(plan)); + + if (wantPlan) return 0; + + const result = await applyPlan({ root, client, plan, deleteOrphans }); + console.log(`\napplied: ${result.applied}, failed: ${result.failed}`); + if (result.errors.length > 0) { + for (const e of result.errors) { + console.error(` ${e.kind} ${e.slug}: ${e.error}`); + } + return 1; + } + + // Helpful next-step hint after apply with writeback. + // A create item is "written back" only if it succeeded (not in result.errors). + const failedSlugs = new Set(result.errors.map((e) => e.slug)); + const writeback = plan.create.filter((p) => !failedSlugs.has(p.local.slug)); + if (writeback.length > 0) { + const slugs = writeback.map((p) => p.local.slug).join(', '); + console.log(`\nWriteback complete. Commit with:`); + console.log(` git add tools/posthog/{dashboards,insights,cohorts}/`); + console.log(` git commit -m "chore(posthog): writeback ids for ${slugs}"`); + } + return 0; +} + +// Only run main when executed directly (not when imported by tests). +const isDirectRun = process.argv[1] && resolvePath(process.argv[1]) === fileURLToPath(import.meta.url); +if (isDirectRun) { + main().then((code) => process.exit(code)); +} diff --git a/tools/posthog/taxonomy.spec.ts b/tools/posthog/taxonomy.spec.ts new file mode 100644 index 00000000..684e4ddc --- /dev/null +++ b/tools/posthog/taxonomy.spec.ts @@ -0,0 +1,39 @@ +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { readFile, readdir } from 'node:fs/promises'; +import { join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; + +const HERE = dirname(fileURLToPath(import.meta.url)); +const INSIGHTS_DIR = join(HERE, 'insights'); +const TAXONOMY_PATH = join(HERE, '..', '..', 'docs', 'gtm', 'taxonomy.md'); + +test('every event in any insight JSON appears in docs/gtm/taxonomy.md', async () => { + // 1. Collect events referenced in insights. + const referenced = new Set(); + const files = (await readdir(INSIGHTS_DIR)).filter((f) => f.endsWith('.json')); + for (const f of files) { + const json = JSON.parse(await readFile(join(INSIGHTS_DIR, f), 'utf8')); + for (const step of json.steps ?? []) { + if (typeof step.event === 'string') referenced.add(step.event); + } + for (const ev of json.events ?? []) { + if (typeof ev.event === 'string') referenced.add(ev.event); + } + } + + // 2. Collect events documented in taxonomy.md. + const taxonomy = await readFile(TAXONOMY_PATH, 'utf8'); + const matches = taxonomy.matchAll(/`(\$pageview|(?:marketing|cockpit|ngaf|docs):[a-z_]+)`/g); + const documented = new Set(); + for (const m of matches) documented.add(m[1]); + + // 3. Difference. + const undocumented = [...referenced].filter((e) => !documented.has(e)); + assert.deepEqual( + undocumented, + [], + `Events used in dashboards but missing from docs/gtm/taxonomy.md:\n${undocumented.join('\n')}`, + ); +}); diff --git a/tools/posthog/tsconfig.json b/tools/posthog/tsconfig.json new file mode 100644 index 00000000..bf3124cb --- /dev/null +++ b/tools/posthog/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "module": "esnext", + "moduleResolution": "bundler", + "target": "es2022", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "noEmit": true, + "resolveJsonModule": true + }, + "include": ["**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/tools/posthog/types/README.md b/tools/posthog/types/README.md new file mode 100644 index 00000000..deb4e8b5 --- /dev/null +++ b/tools/posthog/types/README.md @@ -0,0 +1,20 @@ +# Generated PostHog API types + +`posthog-api.gen.ts` is generated from PostHog's published OpenAPI spec at +https://us.posthog.com/api/schema/. It is committed to the repo deliberately: + +- Avoids a build-time network call to PostHog (faster, more reliable). +- Makes type-shift visible in PRs (you can `git blame` field renames). +- Keeps `tsx` startup fast (no runtime codegen step). + +## Regenerating + +Run quarterly or whenever PostHog announces an API change: + +```bash +npx nx run posthog-tools:generate-types +``` + +This rewrites `posthog-api.gen.ts` in place. Commit the diff if PostHog's API +changed; review the diff carefully — field renames or required-field additions +will surface here. diff --git a/tools/posthog/types/posthog-api.gen.ts b/tools/posthog/types/posthog-api.gen.ts new file mode 100644 index 00000000..a4d4b15d --- /dev/null +++ b/tools/posthog/types/posthog-api.gen.ts @@ -0,0 +1,107547 @@ +/* eslint-disable */ +// Generated by tools/posthog/scripts/generate-types.ts. +// DO NOT EDIT MANUALLY. Run: npx nx run posthog-tools:generate-types +// Source: https://us.posthog.com/api/schema/ + +export interface paths { + "/api/code/invites/check-access/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Check access + * @description Check whether the authenticated user has access to PostHog Code. + */ + get: operations["code_invites_check_access_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/code/invites/redeem/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Redeem invite code + * @description Redeem a PostHog Code invite code to enable access. + */ + post: operations["code_invites_redeem_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/alerts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_alerts_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_alerts_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/alerts/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_alerts_retrieve"]; + /** @deprecated */ + put: operations["environments_alerts_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_alerts_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_alerts_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/alerts/simulate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Simulate a detector on an insight's historical data. Read-only — no AlertCheck records are created. + */ + post: operations["environments_alerts_simulate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_batch_exports_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_batch_exports_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/{batch_export_id}/backfills/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description ViewSet for BatchExportBackfill models. + * + * Allows creating and reading backfills, but not updating or deleting them. + */ + get: operations["environments_batch_exports_backfills_list"]; + put?: never; + /** + * @deprecated + * @description Create a new backfill for a BatchExport. + */ + post: operations["environments_batch_exports_backfills_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/{batch_export_id}/backfills/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description ViewSet for BatchExportBackfill models. + * + * Allows creating and reading backfills, but not updating or deleting them. + */ + get: operations["environments_batch_exports_backfills_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/{batch_export_id}/backfills/{id}/cancel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Cancel a batch export backfill. + */ + post: operations["environments_batch_exports_backfills_cancel_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/{batch_export_id}/runs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_batch_exports_runs_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/{batch_export_id}/runs/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_batch_exports_runs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/{batch_export_id}/runs/{id}/cancel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Cancel a batch export run. + */ + post: operations["environments_batch_exports_runs_cancel_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/{batch_export_id}/runs/{id}/logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_batch_exports_runs_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/{batch_export_id}/runs/{id}/retry/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Retry a batch export run. + * + * We use the same underlying mechanism as when backfilling a batch export, as retrying + * a run is the same as backfilling one run. + */ + post: operations["environments_batch_exports_runs_retry_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_batch_exports_retrieve"]; + /** @deprecated */ + put: operations["environments_batch_exports_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_batch_exports_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_batch_exports_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/{id}/logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_batch_exports_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/{id}/pause/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Pause a BatchExport. + */ + post: operations["environments_batch_exports_pause_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/{id}/run_test_step/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_batch_exports_run_test_step_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/{id}/unpause/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Unpause a BatchExport. + */ + post: operations["environments_batch_exports_unpause_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/run_test_step_new/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_batch_exports_run_test_step_new_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/batch_exports/test/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_batch_exports_test_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_dashboards_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_dashboards_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{dashboard_id}/collaborators/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_dashboards_collaborators_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_dashboards_collaborators_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{dashboard_id}/collaborators/{user__uuid}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** @deprecated */ + delete: operations["environments_dashboards_collaborators_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{dashboard_id}/sharing/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_dashboards_sharing_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{dashboard_id}/sharing/passwords/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create a new password for the sharing configuration. + */ + post: operations["environments_dashboards_sharing_passwords_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{dashboard_id}/sharing/passwords/{password_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** + * @deprecated + * @description Delete a password from the sharing configuration. + */ + delete: operations["environments_dashboards_sharing_passwords_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{dashboard_id}/sharing/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_dashboards_sharing_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_dashboards_retrieve"]; + /** @deprecated */ + put: operations["environments_dashboards_update"]; + post?: never; + /** + * @deprecated + * @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true + */ + delete: operations["environments_dashboards_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_dashboards_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{id}/analyze_refresh_result/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Generate AI analysis comparing before/after dashboard refresh. + * Expects cache_key in request body pointing to the stored 'before' state. + */ + post: operations["environments_dashboards_analyze_refresh_result_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{id}/copy_tile/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Copy an existing dashboard tile to another dashboard (insight or text card; new tile row). + */ + post: operations["environments_dashboards_copy_tile_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{id}/move_tile/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_dashboards_move_tile_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{id}/reorder_tiles/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_dashboards_reorder_tiles_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{id}/run_insights/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Run all insights on a dashboard and return their results. + */ + get: operations["environments_dashboards_run_insights_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{id}/snapshot/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Snapshot the current dashboard state (from cache) for AI analysis. + * Returns a cache_key representing the 'before' state, to be used with analyze_refresh_result. + */ + post: operations["environments_dashboards_snapshot_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/{id}/stream_tiles/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Stream dashboard metadata and tiles via Server-Sent Events. Sends metadata first, then tiles as they are rendered. + */ + get: operations["environments_dashboards_stream_tiles_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/bulk_update_tags/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Bulk update tags on multiple objects. + * + * Accepts: + * - {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]} + * + * Actions: + * - "add": Add tags to existing tags on each object + * - "remove": Remove specific tags from each object + * - "set": Replace all tags on each object with the provided list + */ + post: operations["environments_dashboards_bulk_update_tags_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/create_from_template_json/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_dashboards_create_from_template_json_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dashboards/create_unlisted_dashboard/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Creates an unlisted dashboard from template by tag. + * Enforces uniqueness (one per tag per team). + * Returns 409 if unlisted dashboard with this tag already exists. + */ + post: operations["environments_dashboards_create_unlisted_dashboard_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_color_themes/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_data_color_themes_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_data_color_themes_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_color_themes/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_data_color_themes_retrieve"]; + /** @deprecated */ + put: operations["environments_data_color_themes_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_data_color_themes_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_data_color_themes_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/data_modeling_jobs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description List data modeling jobs which are "runs" for our saved queries. + */ + get: operations["environments_data_modeling_jobs_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_modeling_jobs/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description List data modeling jobs which are "runs" for our saved queries. + */ + get: operations["environments_data_modeling_jobs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_modeling_jobs/recent/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Get the most recent non-running job for each saved query from the v2 backend. + */ + get: operations["environments_data_modeling_jobs_recent_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_modeling_jobs/running/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Get all currently running jobs from the v2 backend. + */ + get: operations["environments_data_modeling_jobs_running_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_warehouse/check-database-name/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Check if a database name is available. + */ + get: operations["environments_data_warehouse_check_database_name_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_warehouse/completed_activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Returns completed/non-running activities (jobs with status 'Completed'). + * Supports pagination and cutoff time filtering. + */ + get: operations["environments_data_warehouse_completed_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_warehouse/data_health_issues/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Returns failed/disabled data pipeline items for the Pipeline status side panel. + * Includes: materializations, syncs, sources, destinations, and transformations. + */ + get: operations["environments_data_warehouse_data_health_issues_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_warehouse/data_ops_dashboard/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Returns the data ops overview dashboard ID for this team, creating it if it doesn't exist yet. + */ + get: operations["environments_data_warehouse_data_ops_dashboard_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_warehouse/deprovision/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Start deprovisioning the managed warehouse for this team. + */ + post: operations["environments_data_warehouse_deprovision_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_warehouse/job_stats/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Returns success and failed job statistics for the last 1, 7, or 30 days. + * Query parameter 'days' can be 1, 7, or 30 (default: 7). + */ + get: operations["environments_data_warehouse_job_stats_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_warehouse/property_values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description API endpoints for data warehouse aggregate statistics and operations. + */ + get: operations["environments_data_warehouse_property_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_warehouse/provision/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Start provisioning a managed warehouse for this team. + */ + post: operations["environments_data_warehouse_provision_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_warehouse/reset-password/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Reset the root password for the managed warehouse. + */ + post: operations["environments_data_warehouse_reset_password_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_warehouse/running_activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Returns currently running activities (jobs with status 'Running'). + * Supports pagination and cutoff time filtering. + */ + get: operations["environments_data_warehouse_running_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_warehouse/total_rows_stats/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Returns aggregated statistics for the data warehouse total rows processed within the current billing period. + * Used by the frontend data warehouse scene to display usage information. + */ + get: operations["environments_data_warehouse_total_rows_stats_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/data_warehouse/warehouse_status/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Get the current provisioning status of the managed warehouse. + */ + get: operations["environments_data_warehouse_warehouse_status_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dataset_items/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_dataset_items_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_dataset_items_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/dataset_items/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_dataset_items_retrieve"]; + /** @deprecated */ + put: operations["environments_dataset_items_update"]; + post?: never; + /** + * @deprecated + * @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true + */ + delete: operations["environments_dataset_items_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_dataset_items_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/datasets/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_datasets_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_datasets_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/datasets/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_datasets_retrieve"]; + /** @deprecated */ + put: operations["environments_datasets_update"]; + post?: never; + /** + * @deprecated + * @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true + */ + delete: operations["environments_datasets_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_datasets_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/elements/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_elements_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_elements_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/elements/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_elements_retrieve"]; + /** @deprecated */ + put: operations["environments_elements_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_elements_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_elements_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/elements/stats/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description The original version of this API always and only returned $autocapture elements + * If no include query parameter is sent this remains true. + * Now, you can pass a combination of include query parameters to get different types of elements + * Currently only $autocapture and $rageclick and $dead_click are supported + */ + get: operations["environments_elements_stats_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/elements/values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_elements_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/endpoints/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description List all endpoints for the team. + */ + get: operations["environments_endpoints_list"]; + put?: never; + /** + * @deprecated + * @description Create a new endpoint. + */ + post: operations["environments_endpoints_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/endpoints/{name}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Retrieve an endpoint, or a specific version via ?version=N. + */ + get: operations["environments_endpoints_retrieve"]; + /** + * @deprecated + * @description Update an existing endpoint. Parameters are optional. Pass version in body or ?version=N query param to target a specific version. + */ + put: operations["environments_endpoints_update"]; + post?: never; + /** + * @deprecated + * @description Delete an endpoint and clean up materialized query. + */ + delete: operations["environments_endpoints_destroy"]; + options?: never; + head?: never; + /** + * @deprecated + * @description Update an existing endpoint. + */ + patch: operations["environments_endpoints_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/endpoints/{name}/materialization_preview/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Preview the materialization transform for an endpoint. Shows what the query will look like after materialization, including range pair detection and bucket functions. + */ + post: operations["environments_endpoints_materialization_preview_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/endpoints/{name}/materialization_status/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Get materialization status for an endpoint. Supports ?version=N query param. + */ + get: operations["environments_endpoints_materialization_status_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/endpoints/{name}/openapi.json/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Get OpenAPI 3.0 specification for this endpoint. Use this to generate typed SDK clients. + */ + get: operations["environments_endpoints_openapi.json_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/endpoints/{name}/run/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Execute endpoint with optional materialization. Supports version parameter, runs latest version if not set. + */ + get: operations["environments_endpoints_run_retrieve"]; + put?: never; + /** + * @deprecated + * @description Execute endpoint with optional materialization. Supports version parameter, runs latest version if not set. + */ + post: operations["environments_endpoints_run_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/endpoints/{name}/versions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description List all versions for an endpoint. + */ + get: operations["environments_endpoints_versions_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/endpoints/last_execution_times/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Get the last execution times in the past 6 months for multiple endpoints. + */ + post: operations["environments_endpoints_last_execution_times_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/error_tracking/releases/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_error_tracking_releases_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_error_tracking_releases_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/error_tracking/releases/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_error_tracking_releases_retrieve"]; + /** @deprecated */ + put: operations["environments_error_tracking_releases_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_error_tracking_releases_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_error_tracking_releases_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/error_tracking/releases/hash/{hash_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_error_tracking_releases_hash_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/error_tracking/symbol_sets/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_error_tracking_symbol_sets_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/error_tracking/symbol_sets/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_error_tracking_symbol_sets_retrieve"]; + put?: never; + post?: never; + /** @deprecated */ + delete: operations["environments_error_tracking_symbol_sets_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/error_tracking/symbol_sets/{id}/download/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Return a presigned URL for downloading the symbol set's source map. + */ + get: operations["environments_error_tracking_symbol_sets_download_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/error_tracking/symbol_sets/{id}/finish_upload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + /** @deprecated */ + put: operations["environments_error_tracking_symbol_sets_finish_upload_update"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/error_tracking/symbol_sets/bulk_delete/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_error_tracking_symbol_sets_bulk_delete_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/error_tracking/symbol_sets/bulk_finish_upload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_error_tracking_symbol_sets_bulk_finish_upload_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/error_tracking/symbol_sets/bulk_start_upload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_error_tracking_symbol_sets_bulk_start_upload_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/events/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description This endpoint allows you to list and filter events. + * It is effectively deprecated and is kept only for backwards compatibility. + * If you ever ask about it you will be advised to not use it... + * If you want to ad-hoc list or aggregate events, use the Query endpoint instead. + * If you want to export all events or many pages of events you should use our CDP/Batch Exports products instead. + */ + get: operations["environments_events_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/events/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_events_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/events/values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_events_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/exports/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_exports_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_exports_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/exports/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_exports_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/exports/{id}/content/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_exports_content_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_schemas/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_external_data_schemas_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_external_data_schemas_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_schemas/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_external_data_schemas_retrieve"]; + /** @deprecated */ + put: operations["environments_external_data_schemas_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_external_data_schemas_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_external_data_schemas_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_schemas/{id}/cancel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_external_data_schemas_cancel_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_schemas/{id}/delete_data/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** @deprecated */ + delete: operations["environments_external_data_schemas_delete_data_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_schemas/{id}/incremental_fields/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_external_data_schemas_incremental_fields_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_schemas/{id}/reload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_external_data_schemas_reload_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_schemas/{id}/resync/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_external_data_schemas_resync_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + get: operations["environments_external_data_sources_list"]; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + post: operations["environments_external_data_sources_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + get: operations["environments_external_data_sources_retrieve"]; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + put: operations["environments_external_data_sources_update"]; + post?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + delete: operations["environments_external_data_sources_destroy"]; + options?: never; + head?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + patch: operations["environments_external_data_sources_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/{id}/bulk_update_schemas/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + patch: operations["environments_external_data_sources_bulk_update_schemas_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/{id}/create_webhook/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + post: operations["environments_external_data_sources_create_webhook_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/{id}/delete_webhook/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + post: operations["environments_external_data_sources_delete_webhook_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/{id}/jobs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + get: operations["environments_external_data_sources_jobs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/{id}/refresh_schemas/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Fetch current schema/table list from the source and create any new ExternalDataSchema rows (no data sync). + */ + post: operations["environments_external_data_sources_refresh_schemas_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/{id}/reload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + post: operations["environments_external_data_sources_reload_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/{id}/revenue_analytics_config/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** + * @deprecated + * @description Update the revenue analytics configuration and return the full external data source. + */ + patch: operations["environments_external_data_sources_revenue_analytics_config_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/{id}/update_webhook_inputs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + post: operations["environments_external_data_sources_update_webhook_inputs_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/{id}/webhook_info/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + get: operations["environments_external_data_sources_webhook_info_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/check_cdc_prerequisites/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Validate CDC prerequisites against a live Postgres connection. + * + * Used by the source wizard to surface ✅/❌ checks before source creation, + * and by the self-managed setup popup to verify user-created publications. + */ + post: operations["environments_external_data_sources_check_cdc_prerequisites_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/connections/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + get: operations["environments_external_data_sources_connections_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/database_schema/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + post: operations["environments_external_data_sources_database_schema_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/source_prefix/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + post: operations["environments_external_data_sources_source_prefix_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/external_data_sources/wizard/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete External data Sources. + */ + get: operations["environments_external_data_sources_wizard_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/file_system/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_file_system_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_file_system_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/file_system/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_file_system_retrieve"]; + /** @deprecated */ + put: operations["environments_file_system_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_file_system_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_file_system_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/file_system/{id}/count/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Get count of all files in a folder. + */ + post: operations["environments_file_system_count_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/file_system/{id}/link/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_file_system_link_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/file_system/{id}/move/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_file_system_move_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/file_system/count_by_path/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Get count of all files in a folder. + */ + post: operations["environments_file_system_count_by_path_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/file_system/log_view/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_file_system_log_view_retrieve"]; + put?: never; + /** @deprecated */ + post: operations["environments_file_system_log_view_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/file_system/undo_delete/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_file_system_undo_delete_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/file_system/unfiled/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_file_system_unfiled_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/file_system_shortcut/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_file_system_shortcut_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_file_system_shortcut_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/file_system_shortcut/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_file_system_shortcut_retrieve"]; + /** @deprecated */ + put: operations["environments_file_system_shortcut_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_file_system_shortcut_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_file_system_shortcut_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/file_system_shortcut/reorder/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Set the display order of the current user's shortcuts. `ordered_ids` becomes the new top-to-bottom order; any unknown IDs are rejected. + */ + post: operations["environments_file_system_shortcut_reorder_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/groups/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description List all groups of a specific group type. You must pass ?group_type_index= in the URL. + * To get a list of valid group types, call /api/:project_id/groups_types/. + * + * Uses forward-only keyset pagination via the `cursor` parameter. + * The `previous` field in the response envelope is always null. + */ + get: operations["environments_groups_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_groups_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/groups/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_groups_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/groups/delete_property/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_groups_delete_property_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/groups/find/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_groups_find_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/groups/property_definitions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_groups_property_definitions_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/groups/property_values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_groups_property_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/groups/related/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_groups_related_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/groups/update_property/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_groups_update_property_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/heatmap_screenshots/{id}/content/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_heatmap_screenshots_content_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/heatmaps/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_heatmaps_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/heatmaps/events/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_heatmaps_events_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_flows_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_hog_flows_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_flows_retrieve"]; + /** @deprecated */ + put: operations["environments_hog_flows_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_hog_flows_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_hog_flows_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/{id}/batch_jobs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_flows_batch_jobs_retrieve"]; + put?: never; + /** @deprecated */ + post: operations["environments_hog_flows_batch_jobs_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/{id}/blocked_runs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description List workflow runs that were blocked by the dedup bug. + */ + get: operations["environments_hog_flows_blocked_runs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/{id}/invocations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_hog_flows_invocations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/{id}/logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_flows_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/{id}/metrics/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_flows_metrics_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/{id}/metrics/totals/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_flows_metrics_totals_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/{id}/replay_all_blocked_runs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Replay all blocked runs in a single bulk call to Node. + */ + post: operations["environments_hog_flows_replay_all_blocked_runs_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/{id}/replay_blocked_run/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Replay a single blocked run. Django fetches the event, Node creates the invocation and writes the log. + */ + post: operations["environments_hog_flows_replay_blocked_run_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/{id}/schedules/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_flows_schedules_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_hog_flows_schedules_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/{id}/schedules/{schedule_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** @deprecated */ + delete: operations["environments_hog_flows_schedules_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_hog_flows_schedules_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/bulk_delete/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_hog_flows_bulk_delete_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_flows/user_blast_radius/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_hog_flows_user_blast_radius_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_functions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_functions_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_hog_functions_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_functions/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_functions_retrieve"]; + /** @deprecated */ + put: operations["environments_hog_functions_update"]; + post?: never; + /** + * @deprecated + * @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true + */ + delete: operations["environments_hog_functions_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_hog_functions_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/hog_functions/{id}/enable_backfills/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_hog_functions_enable_backfills_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_functions/{id}/invocations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_hog_functions_invocations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_functions/{id}/logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_functions_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_functions/{id}/metrics/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_functions_metrics_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_functions/{id}/metrics/totals/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_functions_metrics_totals_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_functions/icon/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_functions_icon_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_functions/icons/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_hog_functions_icons_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/hog_functions/rearrange/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** + * @deprecated + * @description Update the execution order of multiple HogFunctions. + */ + patch: operations["environments_hog_functions_rearrange_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/insight_variables/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_insight_variables_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_insight_variables_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insight_variables/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_insight_variables_retrieve"]; + /** @deprecated */ + put: operations["environments_insight_variables_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_insight_variables_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_insight_variables_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/insights/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + get: operations["environments_insights_list"]; + put?: never; + /** + * @deprecated + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + post: operations["environments_insights_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/{insight_id}/sharing/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_insights_sharing_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/{insight_id}/sharing/passwords/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create a new password for the sharing configuration. + */ + post: operations["environments_insights_sharing_passwords_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/{insight_id}/sharing/passwords/{password_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** + * @deprecated + * @description Delete a password from the sharing configuration. + */ + delete: operations["environments_insights_sharing_passwords_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/{insight_id}/sharing/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_insights_sharing_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/{insight_id}/thresholds/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_insights_thresholds_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/{insight_id}/thresholds/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_insights_thresholds_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + get: operations["environments_insights_retrieve"]; + /** + * @deprecated + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + put: operations["environments_insights_update"]; + post?: never; + /** + * @deprecated + * @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true + */ + delete: operations["environments_insights_destroy"]; + options?: never; + head?: never; + /** + * @deprecated + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + patch: operations["environments_insights_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/insights/{id}/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Audit trail for a single insight — every change made to it, by whom, and when. Use this when you want the change history of a specific insight; use the project-wide activity endpoint for a broader view. + */ + get: operations["environments_insights_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/{id}/analyze/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + get: operations["environments_insights_analyze_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/{id}/suggestions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + get: operations["environments_insights_suggestions_retrieve"]; + put?: never; + /** + * @deprecated + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + post: operations["environments_insights_suggestions_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Project-wide audit trail across all insights — who created, edited, deleted, or restored insights, what changed (with before/after diffs), and when. Useful for surfacing what people (or agents) have been working on recently. + */ + get: operations["environments_insights_all_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/bulk_update_tags/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Bulk update tags on multiple objects. + * + * Accepts: + * - {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]} + * + * Actions: + * - "add": Add tags to existing tags on each object + * - "remove": Remove specific tags from each object + * - "set": Replace all tags on each object with the provided list + */ + post: operations["environments_insights_bulk_update_tags_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/cancel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + post: operations["environments_insights_cancel_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/generate_metadata/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Generate an AI-suggested name and description for an insight based on its query configuration. + */ + post: operations["environments_insights_generate_metadata_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/my_last_viewed/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Returns basic details about the last 5 insights viewed by this user. Most recently viewed first. + */ + get: operations["environments_insights_my_last_viewed_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/trending/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Returns insights ranked by view count over the last N days (default 7), highest first. Each result includes the same metadata as the standard insights list, plus a `view_count` and up to 3 recent `viewers`. Useful for surfacing the most-used insights in a project. + */ + get: operations["environments_insights_trending_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/insights/viewed/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Record that the current user has just viewed one or more insights. Submitted ids that do not belong to the current project or that point at deleted insights are silently dropped. Returns 201 on success regardless of how many ids were retained. + */ + post: operations["environments_insights_viewed_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_integrations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_retrieve"]; + put?: never; + post?: never; + /** @deprecated */ + delete: operations["environments_integrations_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/anthropic_managed_agent_environments/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_anthropic_managed_agent_envs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/anthropic_managed_agent_vaults/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_anthropic_managed_agent_vaults_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/anthropic_managed_agents/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_anthropic_managed_agents_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/channels/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_channels_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/clickup_lists/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_clickup_lists_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/clickup_spaces/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_clickup_spaces_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/clickup_workspaces/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_clickup_workspaces_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/email/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_integrations_email_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/email/verify/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_integrations_email_verify_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/github_branches/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_github_branches_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/github_repos/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_github_repos_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/github_repos/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_integrations_github_repos_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/google_accessible_accounts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_google_accessible_accounts_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/google_conversion_actions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_google_conversion_actions_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/jira_projects/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_jira_projects_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/linear_teams/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_linear_teams_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/linkedin_ads_accounts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_linkedin_ads_accounts_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/linkedin_ads_conversion_rules/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_linkedin_ads_conversion_rules_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/{id}/twilio_phone_numbers/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_twilio_phone_numbers_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/authorize/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_authorize_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/domain-connect/apply-url/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Unified endpoint for generating Domain Connect apply URLs. + * + * Accepts a context ("email" or "proxy") and the relevant resource ID. + * The backend resolves the domain, template variables, and service ID + * based on context, then builds the signed apply URL. + */ + post: operations["environments_integrations_domain_connect_apply_url_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/domain-connect/check/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_integrations_domain_connect_check_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/github/link_existing/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Reuse a GitHub installation already linked to a sibling team in the same organization. + */ + post: operations["environments_integrations_github_link_existing_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/integrations/github/oauth_authorize/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Mint a User OAuth URL to bootstrap a fresh `code` when the install flow returns without one. + */ + post: operations["environments_integrations_github_oauth_authorize_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/alerts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_logs_alerts_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_logs_alerts_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/alerts/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_logs_alerts_retrieve"]; + /** @deprecated */ + put: operations["environments_logs_alerts_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_logs_alerts_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_logs_alerts_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/logs/alerts/{id}/destinations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create a notification destination for this alert. One HogFunction is created per alert event kind (firing, resolved, ...) atomically. + */ + post: operations["environments_logs_alerts_destinations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/alerts/{id}/destinations/delete/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Delete a notification destination by deleting its HogFunction group atomically. + */ + post: operations["environments_logs_alerts_destinations_delete_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/alerts/{id}/events/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Paginated event history for this alert, newest first. Returns state transitions, errored checks, and user-initiated control-plane rows (reset, enable/disable, snooze/unsnooze, threshold change) — quiet no-op check rows (where state didn't change and there was no error) are filtered out since only the last 10 are kept and they carry no forensic value. Optional `?kind=...` narrows to a single kind. + */ + get: operations["environments_logs_alerts_events_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/alerts/{id}/reset/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Reset a broken alert. Clears the consecutive-failure counter and schedules an immediate recheck. + */ + post: operations["environments_logs_alerts_reset_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/alerts/simulate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Simulate a logs alert on historical data using the full state machine. Read-only — no alert check records are created. + */ + post: operations["environments_logs_alerts_simulate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/attributes/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_logs_attributes_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/count/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_logs_count_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/count-ranges/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_logs_count_ranges_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/export/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_logs_export_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/has_logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_logs_has_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/query/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_logs_query_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/sampling_rules/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_logs_sampling_rules_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_logs_sampling_rules_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/sampling_rules/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_logs_sampling_rules_retrieve"]; + /** @deprecated */ + put: operations["environments_logs_sampling_rules_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_logs_sampling_rules_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_logs_sampling_rules_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/logs/sampling_rules/{id}/simulate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Dry-run estimate for how much volume this rule would remove (placeholder response until CH-backed simulation is wired). + */ + post: operations["environments_logs_sampling_rules_simulate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/sampling_rules/reorder/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Atomically reassign priorities so the given ID order maps to ascending priorities (0..n-1). + */ + post: operations["environments_logs_sampling_rules_reorder_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/services/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_logs_services_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/sparkline/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_logs_sparkline_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/logs/values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_logs_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persisted_folder/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_persisted_folder_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_persisted_folder_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persisted_folder/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_persisted_folder_retrieve"]; + /** @deprecated */ + put: operations["environments_persisted_folder_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_persisted_folder_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_persisted_folder_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/persons/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + get: operations["environments_persons_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + get: operations["environments_persons_retrieve"]; + /** + * @deprecated + * @description Only for setting properties on the person. "properties" from the request data will be updated via a "$set" event. + * This means that only the properties listed will be updated, but other properties won't be removed nor updated. + * If you would like to remove a property use the `delete_property` endpoint. + */ + put: operations["environments_persons_update"]; + post?: never; + delete?: never; + options?: never; + head?: never; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + patch: operations["environments_persons_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/persons/{id}/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + get: operations["environments_persons_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/{id}/delete_property/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + post: operations["environments_persons_delete_property_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/{id}/properties_timeline/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + get: operations["environments_persons_properties_timeline_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/{id}/split/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + post: operations["environments_persons_split_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/{id}/update_property/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + post: operations["environments_persons_update_property_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + get: operations["environments_persons_all_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/batch_by_distinct_ids/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + post: operations["environments_persons_batch_by_distinct_ids_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/batch_by_uuids/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + post: operations["environments_persons_batch_by_uuids_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/bulk_delete/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description This endpoint allows you to bulk delete persons, either by the PostHog person IDs or by distinct IDs. You can pass in a maximum of 1000 IDs per call. Only events captured before the request will be deleted. + */ + post: operations["environments_persons_bulk_delete_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/cohorts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + get: operations["environments_persons_cohorts_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/deletion_status/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description List the status of queued event deletions for persons. When you delete a person with `delete_events=true`, an async deletion is queued. Use this endpoint to check whether those deletions are still pending or have been completed. + */ + get: operations["environments_persons_deletion_status_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/funnel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + get: operations["environments_persons_funnel_retrieve"]; + put?: never; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + post: operations["environments_persons_funnel_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/funnel/correlation/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + get: operations["environments_persons_funnel_correlation_retrieve"]; + put?: never; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + post: operations["environments_persons_funnel_correlation_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/lifecycle/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + get: operations["environments_persons_lifecycle_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/properties_at_time/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Get person properties as they existed at a specific point in time. + * + * This endpoint reconstructs person properties by querying ClickHouse events + * for $set and $set_once operations up to the specified timestamp. + * + * Query parameters: + * - distinct_id: The distinct_id of the person + * - timestamp: ISO datetime string for the point in time (e.g., "2023-06-15T14:30:00Z") + * - include_set_once: Whether to handle $set_once operations (default: false) + */ + get: operations["environments_persons_properties_at_time_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/reset_person_distinct_id/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Reset a distinct_id for a deleted person. This allows the distinct_id to be used again. + */ + post: operations["environments_persons_reset_person_distinct_id_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/trends/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + get: operations["environments_persons_trends_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/persons/values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. + */ + get: operations["environments_persons_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/plugin_configs/{plugin_config_id}/logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_plugin_configs_logs_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/project_secret_api_keys/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_project_secret_api_keys_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_project_secret_api_keys_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/project_secret_api_keys/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_project_secret_api_keys_retrieve"]; + /** @deprecated */ + put: operations["environments_project_secret_api_keys_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_project_secret_api_keys_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_project_secret_api_keys_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/project_secret_api_keys/{id}/roll/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Roll a project secret API key + */ + post: operations["environments_project_secret_api_keys_roll_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/query/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + post: operations["environments_query_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/query/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description (Experimental) + */ + get: operations["environments_query_retrieve"]; + put?: never; + post?: never; + /** + * @deprecated + * @description (Experimental) + */ + delete: operations["environments_query_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/query/{id}/log/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Get query log details from query_log_archive table for a specific query_id, the query must have been issued in last 24 hours. + */ + get: operations["environments_query_log_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/query/{query_kind}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + post: operations["environments_query_create_with_kind"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/query/check_auth_for_async/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + post: operations["environments_query_check_auth_for_async_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/query/draft_sql/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + get: operations["environments_query_draft_sql_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/query/upgrade/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Upgrades a query without executing it. Returns a query with all nodes migrated to the latest version. + */ + post: operations["environments_query_upgrade_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/saved/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_saved_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_saved_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/saved/{short_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_saved_retrieve"]; + put?: never; + post?: never; + /** + * @deprecated + * @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true + */ + delete: operations["environments_saved_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_saved_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/saved/{short_id}/regenerate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_saved_regenerate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/session_recording_playlists/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Override list to include synthetic playlists + */ + get: operations["environments_session_recording_playlists_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_session_recording_playlists_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/session_recording_playlists/{short_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_session_recording_playlists_retrieve"]; + /** @deprecated */ + put: operations["environments_session_recording_playlists_update"]; + post?: never; + /** + * @deprecated + * @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true + */ + delete: operations["environments_session_recording_playlists_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_session_recording_playlists_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/session_recording_playlists/{short_id}/recordings/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_session_recording_playlists_recordings_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/session_recording_playlists/{short_id}/recordings/{session_recording_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_session_recording_playlists_recordings_create"]; + /** @deprecated */ + delete: operations["environments_session_recording_playlists_recordings_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/session_recordings/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_session_recordings_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/session_recordings/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_session_recordings_retrieve"]; + /** @deprecated */ + put: operations["environments_session_recordings_update"]; + post?: never; + /** @deprecated */ + delete: operations["environments_session_recordings_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_session_recordings_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/session_recordings/{recording_id}/sharing/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_session_recordings_sharing_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/session_recordings/{recording_id}/sharing/passwords/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create a new password for the sharing configuration. + */ + post: operations["environments_session_recordings_sharing_passwords_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/session_recordings/{recording_id}/sharing/passwords/{password_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** + * @deprecated + * @description Delete a password from the sharing configuration. + */ + delete: operations["environments_session_recordings_sharing_passwords_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/session_recordings/{recording_id}/sharing/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_session_recordings_sharing_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/sessions/property_definitions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_sessions_property_definitions_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/sessions/values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_sessions_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/subscriptions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_subscriptions_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_subscriptions_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/subscriptions/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_subscriptions_retrieve"]; + /** @deprecated */ + put: operations["environments_subscriptions_update"]; + post?: never; + /** + * @deprecated + * @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true + */ + delete: operations["environments_subscriptions_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_subscriptions_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/subscriptions/{id}/test-delivery/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["environments_subscriptions_test_delivery_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/subscriptions/summary_quota/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_subscriptions_summary_quota_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_queries/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + get: operations["environments_warehouse_saved_queries_list"]; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + post: operations["environments_warehouse_saved_queries_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_queries/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + get: operations["environments_warehouse_saved_queries_retrieve"]; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + put: operations["environments_warehouse_saved_queries_update"]; + post?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + delete: operations["environments_warehouse_saved_queries_destroy"]; + options?: never; + head?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + patch: operations["environments_warehouse_saved_queries_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_queries/{id}/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + get: operations["environments_warehouse_saved_queries_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_queries/{id}/ancestors/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Return the ancestors of this saved query. + * + * By default, we return the immediate parents. The `level` parameter can be used to + * look further back into the ancestor tree. If `level` overshoots (i.e. points to only + * ancestors beyond the root), we return an empty list. + */ + post: operations["environments_warehouse_saved_queries_ancestors_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_queries/{id}/cancel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Cancel a running saved query workflow. + */ + post: operations["environments_warehouse_saved_queries_cancel_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_queries/{id}/dependencies/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Return the count of immediate upstream and downstream dependencies for this saved query. + */ + get: operations["environments_warehouse_saved_queries_dependencies_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_queries/{id}/descendants/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Return the descendants of this saved query. + * + * By default, we return the immediate children. The `level` parameter can be used to + * look further ahead into the descendants tree. If `level` overshoots (i.e. points to only + * descendants further than a leaf), we return an empty list. + */ + post: operations["environments_warehouse_saved_queries_descendants_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_queries/{id}/materialize/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Enable materialization for this saved query with a 24-hour sync frequency. + */ + post: operations["environments_warehouse_saved_queries_materialize_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_queries/{id}/revert_materialization/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Undo materialization, revert back to the original view. + * (i.e. delete the materialized table and the schedule) + */ + post: operations["environments_warehouse_saved_queries_revert_materialization_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_queries/{id}/run/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Run this saved query. + */ + post: operations["environments_warehouse_saved_queries_run_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_queries/{id}/run_history/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Return the recent run history (up to 5 most recent) for this materialized view. + */ + get: operations["environments_warehouse_saved_queries_run_history_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_queries/resume_schedules/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Resume paused materialization schedules for multiple matviews. + * + * Accepts a list of view IDs in the request body: {"view_ids": ["id1", "id2", ...]} + * This endpoint is idempotent - calling it on already running or non-existent schedules is safe. + */ + post: operations["environments_warehouse_saved_queries_resume_schedules_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_query_folders/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_warehouse_saved_query_folders_list"]; + put?: never; + /** @deprecated */ + post: operations["environments_warehouse_saved_query_folders_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_saved_query_folders/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["environments_warehouse_saved_query_folders_retrieve"]; + put?: never; + post?: never; + /** @deprecated */ + delete: operations["environments_warehouse_saved_query_folders_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["environments_warehouse_saved_query_folders_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_tables/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + get: operations["environments_warehouse_tables_list"]; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + post: operations["environments_warehouse_tables_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_tables/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + get: operations["environments_warehouse_tables_retrieve"]; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + put: operations["environments_warehouse_tables_update"]; + post?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + delete: operations["environments_warehouse_tables_destroy"]; + options?: never; + head?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + patch: operations["environments_warehouse_tables_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_tables/{id}/refresh_schema/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + post: operations["environments_warehouse_tables_refresh_schema_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_tables/{id}/update_schema/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + post: operations["environments_warehouse_tables_update_schema_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_tables/file/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete Warehouse Tables. + */ + post: operations["environments_warehouse_tables_file_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_view_link/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + get: operations["environments_warehouse_view_link_list"]; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + post: operations["environments_warehouse_view_link_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_view_link/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + get: operations["environments_warehouse_view_link_retrieve"]; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + put: operations["environments_warehouse_view_link_update"]; + post?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + delete: operations["environments_warehouse_view_link_destroy"]; + options?: never; + head?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + patch: operations["environments_warehouse_view_link_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_view_link/validate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + post: operations["environments_warehouse_view_link_validate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_view_links/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + get: operations["environments_warehouse_view_links_list"]; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + post: operations["environments_warehouse_view_links_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_view_links/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + get: operations["environments_warehouse_view_links_retrieve"]; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + put: operations["environments_warehouse_view_links_update"]; + post?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + delete: operations["environments_warehouse_view_links_destroy"]; + options?: never; + head?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + patch: operations["environments_warehouse_view_links_partial_update"]; + trace?: never; + }; + "/api/environments/{environment_id}/warehouse_view_links/validate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Create, Read, Update and Delete View Columns. + */ + post: operations["environments_warehouse_view_links_validate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/approval_policies/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["approval_policies_list"]; + put?: never; + post: operations["approval_policies_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/approval_policies/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["approval_policies_retrieve"]; + put: operations["approval_policies_update"]; + post?: never; + delete: operations["approval_policies_destroy"]; + options?: never; + head?: never; + patch: operations["approval_policies_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/change_requests/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["change_requests_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/change_requests/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["change_requests_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/change_requests/{id}/approve/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Approve a change request. + * If quorum is reached, automatically applies the change immediately. + */ + post: operations["change_requests_approve_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/change_requests/{id}/cancel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Cancel a change request. + * Only the requester can cancel their own pending change request. + */ + post: operations["change_requests_cancel_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/change_requests/{id}/reject/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Reject a change request. */ + post: operations["change_requests_reject_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/conversations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["conversations_list"]; + put?: never; + /** + * @description Unified endpoint that handles both conversation creation and streaming. + * + * - If message is provided: Start new conversation processing + * - If no message: Stream from existing conversation + */ + post: operations["conversations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/conversations/{conversation}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["conversations_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/conversations/{conversation}/append_message/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Appends a message to an existing conversation without triggering AI processing. + * This is used for client-side generated messages that need to be persisted + * (e.g., support ticket confirmation messages). + */ + post: operations["conversations_append_message_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/conversations/{conversation}/cancel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["conversations_cancel_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/conversations/{conversation}/queue/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["conversations_queue_retrieve"]; + put?: never; + post: operations["conversations_queue_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/conversations/{conversation}/queue/{queue_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete: operations["conversations_queue_destroy"]; + options?: never; + head?: never; + patch: operations["conversations_queue_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/conversations/{conversation}/queue/clear/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["conversations_queue_clear_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/conversations/views/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["conversations_views_list"]; + put?: never; + post: operations["conversations_views_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/conversations/views/{short_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["conversations_views_retrieve"]; + put?: never; + post?: never; + delete: operations["conversations_views_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/customer_journeys/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["customer_journeys_list"]; + put?: never; + post: operations["customer_journeys_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/customer_journeys/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["customer_journeys_retrieve"]; + put: operations["customer_journeys_update"]; + post?: never; + delete: operations["customer_journeys_destroy"]; + options?: never; + head?: never; + patch: operations["customer_journeys_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/customer_profile_configs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["customer_profile_configs_list"]; + put?: never; + post: operations["customer_profile_configs_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/customer_profile_configs/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["customer_profile_configs_retrieve"]; + put: operations["customer_profile_configs_update"]; + post?: never; + delete: operations["customer_profile_configs_destroy"]; + options?: never; + head?: never; + patch: operations["customer_profile_configs_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/desktop_recordings/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description RESTful API for managing desktop meeting recordings. + * + * Standard CRUD operations plus transcript management as a subresource. + */ + get: operations["desktop_recordings_list"]; + put?: never; + /** @description Create a new recording and get Recall.ai upload token for the desktop SDK */ + post: operations["desktop_recordings_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/desktop_recordings/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description RESTful API for managing desktop meeting recordings. + * + * Standard CRUD operations plus transcript management as a subresource. + */ + get: operations["desktop_recordings_retrieve"]; + /** + * @description RESTful API for managing desktop meeting recordings. + * + * Standard CRUD operations plus transcript management as a subresource. + */ + put: operations["desktop_recordings_update"]; + post?: never; + /** + * @description RESTful API for managing desktop meeting recordings. + * + * Standard CRUD operations plus transcript management as a subresource. + */ + delete: operations["desktop_recordings_destroy"]; + options?: never; + head?: never; + /** + * @description RESTful API for managing desktop meeting recordings. + * + * Standard CRUD operations plus transcript management as a subresource. + */ + patch: operations["desktop_recordings_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/desktop_recordings/{id}/append_segments/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Append transcript segments (supports batched real-time streaming) */ + post: operations["desktop_recordings_append_segments_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/assignment_rules/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_assignment_rules_list"]; + put?: never; + post: operations["error_tracking_assignment_rules_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/assignment_rules/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_assignment_rules_retrieve"]; + put: operations["error_tracking_assignment_rules_update"]; + post?: never; + delete: operations["error_tracking_assignment_rules_destroy"]; + options?: never; + head?: never; + patch: operations["error_tracking_assignment_rules_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/assignment_rules/reorder/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["error_tracking_assignment_rules_reorder_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/fingerprints/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_fingerprints_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/fingerprints/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_fingerprints_retrieve"]; + put?: never; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["error_tracking_fingerprints_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/git-provider-file-links/resolve_github/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_git_provider_file_links_resolve_github_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/git-provider-file-links/resolve_gitlab/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_git_provider_file_links_resolve_gitlab_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/grouping_rules/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_grouping_rules_list"]; + put?: never; + post: operations["error_tracking_grouping_rules_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/grouping_rules/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_grouping_rules_retrieve"]; + put: operations["error_tracking_grouping_rules_update"]; + post?: never; + delete: operations["error_tracking_grouping_rules_destroy"]; + options?: never; + head?: never; + patch: operations["error_tracking_grouping_rules_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/grouping_rules/reorder/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["error_tracking_grouping_rules_reorder_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/issues/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_issues_list"]; + put?: never; + post: operations["error_tracking_issues_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/issues/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_issues_retrieve"]; + put: operations["error_tracking_issues_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["error_tracking_issues_destroy"]; + options?: never; + head?: never; + patch: operations["error_tracking_issues_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/issues/{id}/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_issues_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/issues/{id}/assign/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["error_tracking_issues_assign_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/issues/{id}/cohort/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put: operations["error_tracking_issues_cohort_update"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/issues/{id}/merge/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["error_tracking_issues_merge_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/issues/{id}/split/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["error_tracking_issues_split_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/issues/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_issues_all_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/issues/bulk/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["error_tracking_issues_bulk_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/issues/exists/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_issues_exists_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/issues/values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_issues_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/query/issue/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Get compact error tracking issue details + * @description Fetch one error tracking issue with impact counts, top in_app frame, latest release, and optional sparkline. + */ + post: operations["error_tracking_query_issue_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/query/issue_events/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * List sampled exception events for an error tracking issue + * @description Fetch sampled exception events, stack traces, browser/SDK context, URL, and $session_id values for one issue. + */ + post: operations["error_tracking_query_issue_events_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/query/issues/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * List compact error tracking issues + * @description List error tracking issues with typed filters and compact aggregate counts. + */ + post: operations["error_tracking_query_issues_list_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/recommendations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_recommendations_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/recommendations/{id}/dismiss/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["error_tracking_recommendations_dismiss_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/recommendations/{id}/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["error_tracking_recommendations_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/recommendations/{id}/restore/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["error_tracking_recommendations_restore_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/settings/retrieve_settings/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_settings_retrieve_settings_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/settings/update_settings/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["error_tracking_settings_update_settings_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/spike_detection_config/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_spike_detection_config_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/spike_detection_config/update_config/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["error_tracking_spike_detection_config_update_config_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/spike_events/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_spike_events_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/stack_frames/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_stack_frames_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/stack_frames/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_stack_frames_retrieve"]; + put?: never; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["error_tracking_stack_frames_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/stack_frames/batch_get/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["error_tracking_stack_frames_batch_get_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/suppression_rules/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_suppression_rules_list"]; + put?: never; + post: operations["error_tracking_suppression_rules_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/suppression_rules/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_suppression_rules_retrieve"]; + put: operations["error_tracking_suppression_rules_update"]; + post?: never; + delete: operations["error_tracking_suppression_rules_destroy"]; + options?: never; + head?: never; + patch: operations["error_tracking_suppression_rules_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/error_tracking/suppression_rules/reorder/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["error_tracking_suppression_rules_reorder_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/evaluation_runs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Create a new evaluation run. + * + * This endpoint validates the request and enqueues a Temporal workflow + * to asynchronously execute the evaluation. + */ + post: operations["evaluation_runs_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/evaluations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["evaluations_list"]; + put?: never; + post: operations["evaluations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/evaluations/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["evaluations_retrieve"]; + put: operations["evaluations_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["evaluations_destroy"]; + options?: never; + head?: never; + patch: operations["evaluations_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/evaluations/test_hog/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Test Hog evaluation code against sample events without saving. */ + post: operations["evaluations_test_hog_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/event_filter/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Returns the event filter config for the team, or null if not yet created. */ + get: operations["event_filter_retrieve"]; + put?: never; + /** @description Create or update the event filter config. */ + post: operations["event_filter_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/event_filter/metrics/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Single event filter per team. + * GET /event_filter/ — returns the config (or null if not yet created) + * POST /event_filter/ — creates or updates the config (upsert) + * GET /event_filter/metrics/ — time-series metrics + * GET /event_filter/metrics/totals/ — aggregate totals + */ + get: operations["event_filter_metrics_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/event_filter/metrics/totals/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Single event filter per team. + * GET /event_filter/ — returns the config (or null if not yet created) + * POST /event_filter/ — creates or updates the config (upsert) + * GET /event_filter/metrics/ — time-series metrics + * GET /event_filter/metrics/totals/ — aggregate totals + */ + get: operations["event_filter_metrics_totals_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/health_issues/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["health_issues_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/health_issues/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["health_issues_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["health_issues_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/health_issues/{id}/resolve/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["health_issues_resolve_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/health_issues/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["health_issues_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/health_issues/summary/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["health_issues_summary_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/lineage/get_upstream/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["lineage_get_upstream_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/clustering_config/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Team-level clustering configuration (event filters for automated pipelines). */ + get: operations["llm_analytics_clustering_config_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/clustering_config/set_event_filters/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Team-level clustering configuration (event filters for automated pipelines). */ + post: operations["llm_analytics_clustering_config_set_event_filters_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/clustering_jobs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description CRUD for clustering job configurations (max 5 per team). */ + get: operations["llm_analytics_clustering_jobs_list"]; + put?: never; + /** @description CRUD for clustering job configurations (max 5 per team). */ + post: operations["llm_analytics_clustering_jobs_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/clustering_jobs/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description CRUD for clustering job configurations (max 5 per team). */ + get: operations["llm_analytics_clustering_jobs_retrieve"]; + /** @description CRUD for clustering job configurations (max 5 per team). */ + put: operations["llm_analytics_clustering_jobs_update"]; + post?: never; + /** @description CRUD for clustering job configurations (max 5 per team). */ + delete: operations["llm_analytics_clustering_jobs_destroy"]; + options?: never; + head?: never; + /** @description CRUD for clustering job configurations (max 5 per team). */ + patch: operations["llm_analytics_clustering_jobs_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/evaluation_config/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get the evaluation config for this team */ + get: operations["llm_analytics_evaluation_config_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/evaluation_config/set_active_key/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Set the active provider key for evaluations */ + post: operations["llm_analytics_evaluation_config_set_active_key_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/evaluation_reports/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description CRUD for evaluation report configurations + report run history. */ + get: operations["llm_analytics_evaluation_reports_list"]; + put?: never; + /** @description CRUD for evaluation report configurations + report run history. */ + post: operations["llm_analytics_evaluation_reports_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/evaluation_reports/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description CRUD for evaluation report configurations + report run history. */ + get: operations["llm_analytics_evaluation_reports_retrieve"]; + /** @description CRUD for evaluation report configurations + report run history. */ + put: operations["llm_analytics_evaluation_reports_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["llm_analytics_evaluation_reports_destroy"]; + options?: never; + head?: never; + /** @description CRUD for evaluation report configurations + report run history. */ + patch: operations["llm_analytics_evaluation_reports_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/evaluation_reports/{id}/generate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Trigger immediate report generation. */ + post: operations["llm_analytics_evaluation_reports_generate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/evaluation_reports/{id}/runs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List report runs (history) for this report. */ + get: operations["llm_analytics_evaluation_reports_runs_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/evaluation_summary/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Generate an AI-powered summary of evaluation results. + * + * This endpoint analyzes evaluation runs and identifies patterns in passing + * and failing evaluations, providing actionable recommendations. + * + * Data is fetched server-side by evaluation ID to ensure data integrity. + * + * **Use Cases:** + * - Understand why evaluations are passing or failing + * - Identify systematic issues in LLM responses + * - Get recommendations for improving response quality + * - Review patterns across many evaluation runs at once + */ + post: operations["llm_analytics_evaluation_summary_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/models/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List available models for a provider. */ + get: operations["llm_analytics_models_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/offline_evaluations/experiment_items/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["llm_analytics_offline_evaluations_experiment_items_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/provider_key_validations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Validate LLM provider API keys without persisting them */ + post: operations["llm_analytics_provider_key_validations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/provider_keys/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_analytics_provider_keys_list"]; + put?: never; + post: operations["llm_analytics_provider_keys_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/provider_keys/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_analytics_provider_keys_retrieve"]; + put: operations["llm_analytics_provider_keys_update"]; + post?: never; + delete: operations["llm_analytics_provider_keys_destroy"]; + options?: never; + head?: never; + patch: operations["llm_analytics_provider_keys_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/provider_keys/{id}/assign/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Assign this key to evaluations and optionally re-enable them. */ + post: operations["llm_analytics_provider_keys_assign_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/provider_keys/{id}/dependent_configs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get evaluations using this key and alternative keys for replacement. */ + get: operations["llm_analytics_provider_keys_dependent_configs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/provider_keys/{id}/validate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["llm_analytics_provider_keys_validate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/provider_keys/trial_evaluations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List enabled evaluations currently using trial credits for a given provider. */ + get: operations["llm_analytics_provider_keys_trial_evaluations_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/review_queue_items/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_analytics_review_queue_items_list"]; + put?: never; + post: operations["llm_analytics_review_queue_items_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/review_queue_items/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_analytics_review_queue_items_retrieve"]; + put?: never; + post?: never; + delete: operations["llm_analytics_review_queue_items_destroy"]; + options?: never; + head?: never; + patch: operations["llm_analytics_review_queue_items_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/review_queues/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_analytics_review_queues_list"]; + put?: never; + post: operations["llm_analytics_review_queues_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/review_queues/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_analytics_review_queues_retrieve"]; + put?: never; + post?: never; + delete: operations["llm_analytics_review_queues_destroy"]; + options?: never; + head?: never; + patch: operations["llm_analytics_review_queues_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/score_definitions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_analytics_score_definitions_list"]; + put?: never; + post: operations["llm_analytics_score_definitions_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/score_definitions/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_analytics_score_definitions_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["llm_analytics_score_definitions_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/score_definitions/{id}/new_version/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["llm_analytics_score_definitions_new_version_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/sentiment/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["llm_analytics_sentiment_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/sentiment/generations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["llm_analytics_sentiment_generations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/summarization/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Generate an AI-powered summary of an LLM trace or event. + * + * This endpoint analyzes the provided trace/event, generates a line-numbered text + * representation, and uses an LLM to create a concise summary with line references. + * + * **Two ways to use this endpoint:** + * + * 1. **By ID (recommended):** Pass `trace_id` or `generation_id` with an optional `date_from`/`date_to`. + * The backend fetches the data automatically. `summarize_type` is inferred. + * 2. **By data:** Pass the full trace/event data blob in `data` with `summarize_type`. + * This is how the frontend uses it. + * + * **Summary Format:** + * - Title (concise, max 10 words) + * - Mermaid flow diagram showing the main flow + * - 3-10 summary bullets with line references + * - "Interesting Notes" section for failures, successes, or unusual patterns + * - Line references in [L45] or [L45-52] format pointing to relevant sections + * + * The response includes the structured summary, the text representation, and metadata. + */ + post: operations["llm_analytics_summarization_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/summarization/batch_check/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Check which traces have cached summaries available. + * + * This endpoint allows batch checking of multiple trace IDs to see which ones + * have cached summaries. Returns only the traces that have cached summaries + * with their titles. + * + * **Use Cases:** + * - Load cached summaries on session view load + * - Avoid unnecessary LLM calls for already-summarized traces + * - Display summary previews without generating new summaries + */ + post: operations["llm_analytics_summarization_batch_check_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/text_repr/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Generate a human-readable text representation of an LLM trace event. + * + * This endpoint converts LLM analytics events ($ai_generation, $ai_span, $ai_embedding, or $ai_trace) + * into formatted text representations suitable for display, logging, or analysis. + * + * **Supported Event Types:** + * - `$ai_generation`: Individual LLM API calls with input/output messages + * - `$ai_span`: Logical spans with state transitions + * - `$ai_embedding`: Embedding generation events (text input → vector) + * - `$ai_trace`: Full traces with hierarchical structure + * + * **Options:** + * - `max_length`: Maximum character count (default: 2000000) + * - `truncated`: Enable middle-content truncation within events (default: true) + * - `truncate_buffer`: Characters at start/end when truncating (default: 1000) + * - `include_markers`: Use interactive markers vs plain text indicators (default: true) + * - Frontend: set true for `<<>>` markers + * - Backend/LLM: set false for `... (X chars truncated) ...` text + * - `collapsed`: Show summary vs full trace tree (default: false) + * - `include_hierarchy`: Include tree structure for traces (default: true) + * - `max_depth`: Maximum depth for hierarchical rendering (default: unlimited) + * - `tools_collapse_threshold`: Number of tools before auto-collapsing list (default: 5) + * - Tool lists >5 items show `<<>>` marker for frontend + * - Or `[+] AVAILABLE TOOLS: N` for backend when `include_markers: false` + * - `include_line_numbers`: Prefix each line with line number like L001:, L010: (default: false) + * + * **Use Cases:** + * - Frontend display: `truncated: true, include_markers: true, include_line_numbers: true` + * - Backend LLM context (summary): `truncated: true, include_markers: false, collapsed: true` + * - Backend LLM context (full): `truncated: false` + * + * The response includes the formatted text and metadata about the rendering. + */ + post: operations["llm_analytics_text_repr_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/trace_reviews/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_analytics_trace_reviews_list"]; + put?: never; + post: operations["llm_analytics_trace_reviews_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/trace_reviews/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_analytics_trace_reviews_retrieve"]; + put?: never; + post?: never; + delete: operations["llm_analytics_trace_reviews_destroy"]; + options?: never; + head?: never; + patch: operations["llm_analytics_trace_reviews_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/llm_analytics/translate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Translate text to target language. */ + post: operations["llm_analytics_translate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_prompts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_prompts_list"]; + put?: never; + post: operations["llm_prompts_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_prompts/name/{prompt_name}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_prompts_name_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["llm_prompts_name_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/llm_prompts/name/{prompt_name}/archive/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["llm_prompts_name_archive_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_prompts/name/{prompt_name}/duplicate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["llm_prompts_name_duplicate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_prompts/resolve/name/{prompt_name}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_prompts_resolve_name_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_skills/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_skills_list"]; + put?: never; + post: operations["llm_skills_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_skills/name/{skill_name}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_skills_name_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["llm_skills_name_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/llm_skills/name/{skill_name}/archive/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["llm_skills_name_archive_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_skills/name/{skill_name}/duplicate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["llm_skills_name_duplicate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_skills/name/{skill_name}/files/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["llm_skills_name_files_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_skills/name/{skill_name}/files-rename/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["llm_skills_name_files_rename_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_skills/name/{skill_name}/files/{file_path}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_skills_name_files_retrieve"]; + put?: never; + post?: never; + delete: operations["llm_skills_name_files_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/llm_skills/resolve/name/{skill_name}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["llm_skills_resolve_name_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/logs/explainLogWithAI/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Explain a log entry using AI. + * + * POST /api/environments/:id/logs/explainLogWithAI/ + */ + post: operations["logs_explainLogWithAI_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/logs/views/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["logs_views_list"]; + put?: never; + post: operations["logs_views_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/logs/views/{short_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["logs_views_retrieve"]; + put: operations["logs_views_update"]; + post?: never; + delete: operations["logs_views_destroy"]; + options?: never; + head?: never; + patch: operations["logs_views_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/managed_viewsets/{kind}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Get all views associated with a specific managed viewset. + * GET /api/environments/{team_id}/managed_viewsets/{kind}/ + */ + get: operations["managed_viewsets_retrieve"]; + /** + * @description Enable or disable a managed viewset by kind. + * PUT /api/environments/{team_id}/managed_viewsets/{kind}/ with body {"enabled": true/false} + */ + put: operations["managed_viewsets_update"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/max_tools/create_and_query_insight/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["max_tools_create_and_query_insight_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/mcp_server_installations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["mcp_server_installations_list"]; + put?: never; + post: operations["mcp_server_installations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/mcp_server_installations/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["mcp_server_installations_retrieve"]; + put: operations["mcp_server_installations_update"]; + post?: never; + delete: operations["mcp_server_installations_destroy"]; + options?: never; + head?: never; + patch: operations["mcp_server_installations_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/mcp_server_installations/{id}/proxy/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["mcp_server_installations_proxy_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/mcp_server_installations/{id}/tools/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["mcp_server_installations_tools_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/mcp_server_installations/{id}/tools/{tool_name}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["mcp_server_installations_tools_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/mcp_server_installations/{id}/tools/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["mcp_server_installations_tools_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/mcp_server_installations/authorize/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Start (or re-start) an OAuth flow. + * + * Pass ``template_id`` to (re)connect a catalog template, or + * ``installation_id`` to reconnect an existing custom install using its + * cached metadata and per-user DCR creds. + */ + get: operations["mcp_server_installations_authorize_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/mcp_server_installations/install_custom/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["mcp_server_installations_install_custom_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/mcp_server_installations/install_template/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["mcp_server_installations_install_template_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/mcp_servers/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Lists curated MCP server templates that users can install with one click. + * + * Templates are seeded by PostHog operators and carry shared, encrypted + * OAuth client credentials. Inactive templates are hidden from the catalog. + */ + get: operations["mcp_servers_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/mcp_tools/{tool_name}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Invoke an MCP tool by name. + * + * This endpoint allows MCP callers to invoke Max AI tools directly + * without going through the full LangChain conversation flow. + * + * Scopes are resolved dynamically per tool via dangerously_get_required_scopes. + */ + post: operations["mcp_tools_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/mcp_tools/docs_search/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Search PostHog documentation + * @description Run a hybrid (semantic + full-text) RAG search over the PostHog documentation via Inkeep. Returns a markdown body with title, URL, and excerpt for each match for the agent to cite back to the user. + */ + post: operations["docs_search"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/session_summaries/config/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Retrieve the team's session summaries configuration (product context used to tailor single-session replay summaries). */ + get: operations["retrieve_session_summaries_config"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Update the team's session summaries configuration (product context used to tailor single-session replay summaries). */ + patch: operations["update_session_summaries_config"]; + trace?: never; + }; + "/api/environments/{project_id}/session_summaries/create_session_summaries/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Generate AI summary for a group of session recordings to find patterns and generate a notebook. */ + post: operations["create_session_summaries"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/session_summaries/create_session_summaries_individually/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Generate AI individual summary for each session, without grouping. */ + post: operations["create_session_summaries_individually"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/subscriptions/{subscription_id}/deliveries/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List subscription deliveries + * @description Paginated delivery history for a subscription. Requires premium subscriptions. + */ + get: operations["subscriptions_deliveries_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/subscriptions/{subscription_id}/deliveries/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Retrieve subscription delivery + * @description Fetch one delivery row by id. + */ + get: operations["subscriptions_deliveries_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/taggers/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["taggers_list"]; + put?: never; + post: operations["taggers_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/taggers/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["taggers_retrieve"]; + put: operations["taggers_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["taggers_destroy"]; + options?: never; + head?: never; + patch: operations["taggers_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/taggers/test_hog/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Test Hog tagger code against sample events without saving. */ + post: operations["taggers_test_hog_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/tracing/spans/aggregate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["tracing_spans_aggregate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/tracing/spans/attributes/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["tracing_spans_attributes_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/tracing/spans/query/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["tracing_spans_query_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/tracing/spans/service-names/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["tracing_spans_service_names_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/tracing/spans/sparkline/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["tracing_spans_sparkline_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/tracing/spans/trace/{trace_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["tracing_spans_trace_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/tracing/spans/tree/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["tracing_spans_tree_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/tracing/spans/values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["tracing_spans_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/user_interviews/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["user_interviews_list"]; + put?: never; + post: operations["user_interviews_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/user_interviews/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["user_interviews_retrieve"]; + put: operations["user_interviews_update"]; + post?: never; + delete: operations["user_interviews_destroy"]; + options?: never; + head?: never; + patch: operations["user_interviews_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/vision/lenses/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description CRUD for Replay Vision lenses. */ + get: operations["vision_lenses_list"]; + put?: never; + /** @description CRUD for Replay Vision lenses. */ + post: operations["vision_lenses_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/vision/lenses/{lens_id}/observations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Read-only access to observations produced by a lens. */ + get: operations["vision_lenses_observations_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/vision/lenses/{lens_id}/observations/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Read-only access to observations produced by a lens. */ + get: operations["vision_lenses_observations_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/vision/lenses/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description CRUD for Replay Vision lenses. */ + get: operations["vision_lenses_retrieve"]; + put?: never; + post?: never; + /** @description CRUD for Replay Vision lenses. */ + delete: operations["vision_lenses_destroy"]; + options?: never; + head?: never; + /** @description CRUD for Replay Vision lenses. */ + patch: operations["vision_lenses_partial_update"]; + trace?: never; + }; + "/api/environments/{project_id}/vision/lenses/{id}/observe/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Apply this lens to one specific session, on demand. Returns 202 with the workflow handle. */ + post: operations["vision_lenses_observe_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/web_analytics/weekly_digest/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Summarize web analytics + * @description Summarizes a project's web analytics over a lookback window (default 7 days): unique visitors, pageviews, sessions, bounce rate, and average session duration with period-over-period comparisons, plus the top 5 pages, top 5 traffic sources, and goal conversions. + */ + get: operations["web_analytics_weekly_digest"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/environments/{project_id}/web_vitals/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Get web vitals for a specific pathname. + * Toolbar accesses this via OAuth (handled by TeamAndOrgViewSetMixin.get_authenticators). + */ + get: operations["web_vitals_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["list"]; + put?: never; + post: operations["create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["retrieve"]; + put: operations["update"]; + post?: never; + delete: operations["destroy"]; + options?: never; + head?: never; + patch: operations["partial_update"]; + trace?: never; + }; + "/api/organizations/{organization_id}/advanced_activity_logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Organization-wide view of activity logs across every project in the organization. + * + * Mounted at /api/organizations//advanced_activity_logs/. + * Restricted to organization admins and owners. + */ + get: operations["org_organizations_advanced_activity_logs_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/advanced_activity_logs/available_filters/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Organization-wide view of activity logs across every project in the organization. + * + * Mounted at /api/organizations//advanced_activity_logs/. + * Restricted to organization admins and owners. + */ + get: operations["org_organizations_advanced_activity_logs_available_filters_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/advanced_activity_logs/export/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Organization-wide view of activity logs across every project in the organization. + * + * Mounted at /api/organizations//advanced_activity_logs/. + * Restricted to organization admins and owners. + */ + post: operations["org_organizations_advanced_activity_logs_export_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/batch_exports/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["org_organizations_batch_exports_list"]; + put?: never; + /** @deprecated */ + post: operations["org_organizations_batch_exports_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/batch_exports/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["org_organizations_batch_exports_retrieve"]; + /** @deprecated */ + put: operations["org_organizations_batch_exports_update"]; + post?: never; + /** @deprecated */ + delete: operations["org_organizations_batch_exports_destroy"]; + options?: never; + head?: never; + /** @deprecated */ + patch: operations["org_organizations_batch_exports_partial_update"]; + trace?: never; + }; + "/api/organizations/{organization_id}/batch_exports/{id}/logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["org_organizations_batch_exports_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/batch_exports/{id}/pause/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Pause a BatchExport. + */ + post: operations["org_organizations_batch_exports_pause_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/batch_exports/{id}/run_test_step/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["org_organizations_batch_exports_run_test_step_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/batch_exports/{id}/unpause/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description Unpause a BatchExport. + */ + post: operations["org_organizations_batch_exports_unpause_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/batch_exports/run_test_step_new/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @deprecated */ + post: operations["org_organizations_batch_exports_run_test_step_new_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/batch_exports/test/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @deprecated */ + get: operations["org_organizations_batch_exports_test_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/cimd_verification_tokens/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Manage CIMD verification tokens for an organization. + * + * A partner embeds the plaintext token in their CIMD metadata document under + * `posthog_verification_token`. When PostHog fetches the metadata, matching + * the token links the partner app to this organization and grants a higher + * default rate limit for account provisioning. + * + * The plaintext value is only available on creation; we store a hash. + */ + get: operations["cimd_verification_tokens_list"]; + put?: never; + /** + * @description Manage CIMD verification tokens for an organization. + * + * A partner embeds the plaintext token in their CIMD metadata document under + * `posthog_verification_token`. When PostHog fetches the metadata, matching + * the token links the partner app to this organization and grants a higher + * default rate limit for account provisioning. + * + * The plaintext value is only available on creation; we store a hash. + */ + post: operations["cimd_verification_tokens_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/cimd_verification_tokens/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Manage CIMD verification tokens for an organization. + * + * A partner embeds the plaintext token in their CIMD metadata document under + * `posthog_verification_token`. When PostHog fetches the metadata, matching + * the token links the partner app to this organization and grants a higher + * default rate limit for account provisioning. + * + * The plaintext value is only available on creation; we store a hash. + */ + get: operations["cimd_verification_tokens_retrieve"]; + put?: never; + post?: never; + /** + * @description Manage CIMD verification tokens for an organization. + * + * A partner embeds the plaintext token in their CIMD metadata document under + * `posthog_verification_token`. When PostHog fetches the metadata, matching + * the token links the partner app to this organization and grants a higher + * default rate limit for account provisioning. + * + * The plaintext value is only available on creation; we store a hash. + */ + delete: operations["cimd_verification_tokens_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/domains/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["domains_list"]; + put?: never; + post: operations["domains_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/domains/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["domains_retrieve"]; + put: operations["domains_update"]; + post?: never; + delete: operations["domains_destroy"]; + options?: never; + head?: never; + patch: operations["domains_partial_update"]; + trace?: never; + }; + "/api/organizations/{organization_id}/domains/{id}/scim/logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["domains_scim_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/domains/{id}/scim/token/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Regenerate SCIM bearer token. */ + post: operations["domains_scim_token_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/domains/{id}/verify/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["domains_verify_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/integrations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description ViewSet for organization-level integrations. + * + * Provides access to integrations that are scoped to the entire organization + * (vs. project-level integrations). Examples include Vercel, AWS Marketplace, etc. + * + * Creation is handled by the integration installation flows + * (e.g., Vercel marketplace installation). Users can disconnect integrations + * via the DELETE endpoint. + */ + get: operations["org_organizations_integrations_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/integrations/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description ViewSet for organization-level integrations. + * + * Provides access to integrations that are scoped to the entire organization + * (vs. project-level integrations). Examples include Vercel, AWS Marketplace, etc. + * + * Creation is handled by the integration installation flows + * (e.g., Vercel marketplace installation). Users can disconnect integrations + * via the DELETE endpoint. + */ + get: operations["org_organizations_integrations_retrieve"]; + put?: never; + post?: never; + /** + * @deprecated + * @description ViewSet for organization-level integrations. + * + * Provides access to integrations that are scoped to the entire organization + * (vs. project-level integrations). Examples include Vercel, AWS Marketplace, etc. + * + * Creation is handled by the integration installation flows + * (e.g., Vercel marketplace installation). Users can disconnect integrations + * via the DELETE endpoint. + */ + delete: operations["org_organization_integrations_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/integrations/{id}/environment-mapping/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** + * @description ViewSet for organization-level integrations. + * + * Provides access to integrations that are scoped to the entire organization + * (vs. project-level integrations). Examples include Vercel, AWS Marketplace, etc. + * + * Creation is handled by the integration installation flows + * (e.g., Vercel marketplace installation). Users can disconnect integrations + * via the DELETE endpoint. + */ + patch: operations["integrations_environment_mapping_partial_update"]; + trace?: never; + }; + "/api/organizations/{organization_id}/invites/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["invites_list"]; + put?: never; + post: operations["invites_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/invites/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete: operations["invites_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/invites/bulk/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["invites_bulk_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/invites/delegate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Create an onboarding delegation invite: an admin-level invite flagged as a setup delegation. + * Sends a single dedicated delegation email and records the inviting user as having delegated. + */ + post: operations["invites_delegate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/legal_documents/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["legal_documents_list"]; + put?: never; + post: operations["legal_documents_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/legal_documents/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["legal_documents_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/legal_documents/{id}/download/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Short-lived redirect to the signed PDF in object storage. 404 while the + * envelope is still out for signature (or if the upload hasn't completed + * yet). The underlying presigned URL expires in ~60s; clients should hit + * this endpoint each time they want to view the PDF rather than caching. + */ + get: operations["legal_documents_download_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/members/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["members_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/members/{user__uuid}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put: operations["members_update"]; + post?: never; + delete: operations["members_destroy"]; + options?: never; + head?: never; + patch: operations["members_partial_update"]; + trace?: never; + }; + "/api/organizations/{organization_id}/members/{user__uuid}/scoped_api_keys/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["members_scoped_api_keys_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/oauth_applications/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description ViewSet for listing OAuth applications at the organization level (read-only). */ + get: operations["oauth_applications_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/projects/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Projects for the current organization. */ + get: operations["organizations_projects_list"]; + put?: never; + /** @description Projects for the current organization. */ + post: operations["organizations_projects_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/projects/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Retrieve a project and its settings. */ + get: operations["organizations_projects_retrieve"]; + /** @description Replace a project and its settings. Prefer the PATCH endpoint for partial updates — PUT requires every writable field to be provided. */ + put: operations["organizations_projects_update"]; + post?: never; + /** @description Projects for the current organization. */ + delete: operations["organizations_projects_destroy"]; + options?: never; + head?: never; + /** @description Update one or more of a project's settings. Only the fields included in the request body are changed. */ + patch: operations["organizations_projects_partial_update"]; + trace?: never; + }; + "/api/organizations/{organization_id}/projects/{id}/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Projects for the current organization. */ + get: operations["organizations_projects_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/projects/{id}/add_product_intent/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Projects for the current organization. */ + patch: operations["organizations_projects_add_product_intent_partial_update"]; + trace?: never; + }; + "/api/organizations/{organization_id}/projects/{id}/change_organization/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Projects for the current organization. */ + post: operations["organizations_projects_change_organization_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/projects/{id}/complete_product_onboarding/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Projects for the current organization. */ + patch: operations["organizations_projects_complete_product_onboarding_partial_update"]; + trace?: never; + }; + "/api/organizations/{organization_id}/projects/{id}/delete_secret_token_backup/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Projects for the current organization. */ + patch: operations["organizations_projects_delete_secret_token_backup_partial_update"]; + trace?: never; + }; + "/api/organizations/{organization_id}/projects/{id}/generate_conversations_public_token/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Projects for the current organization. */ + post: operations["organizations_projects_generate_conversations_public_token_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/projects/{id}/is_generating_demo_data/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Projects for the current organization. */ + get: operations["organizations_projects_is_generating_demo_data_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/projects/{id}/reset_token/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Projects for the current organization. */ + patch: operations["organizations_projects_reset_token_partial_update"]; + trace?: never; + }; + "/api/organizations/{organization_id}/projects/{id}/rotate_secret_token/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Projects for the current organization. */ + patch: operations["organizations_projects_rotate_secret_token_partial_update"]; + trace?: never; + }; + "/api/organizations/{organization_id}/proxy_records/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List all reverse proxies configured for the organization. Returns proxy records along with the maximum number allowed by the current plan. */ + get: operations["proxy_records_list"]; + put?: never; + /** @description Create a new managed reverse proxy. Provide the domain you want to proxy through. The response includes the CNAME target you need to add as a DNS record. Once the CNAME is configured, the proxy will be automatically verified and provisioned. */ + post: operations["proxy_records_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/proxy_records/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get details of a specific reverse proxy by ID. Returns the full configuration including domain, CNAME target, and current provisioning status. */ + get: operations["proxy_records_retrieve"]; + put?: never; + post?: never; + /** @description Delete a reverse proxy. For proxies in 'waiting', 'erroring', or 'timed_out' status, the record is deleted immediately. For active proxies, a deletion workflow is started to clean up the provisioned infrastructure. */ + delete: operations["proxy_records_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/proxy_records/{id}/diagnose/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Run a deep diagnostic on a reverse proxy. Inspects DNS CNAME alignment, the certificate provider's hostname state, CAA records walked up the customer's DNS tree, HTTP-01 challenge reachability, a live event probe, and certificate expiry. Returns a structured report with each check's status and concrete remediation steps (e.g. exact DNS records to add). Use this to debug why a proxy is stuck or erroring. */ + post: operations["proxy_records_diagnose_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/proxy_records/{id}/retry/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Retry provisioning a failed reverse proxy. Only available for proxies in 'erroring' or 'timed_out' status. Resets the proxy to 'waiting' status and restarts the provisioning workflow. */ + post: operations["proxy_records_retry_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/role_external_references/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["role_external_references_list"]; + put?: never; + post: operations["role_external_references_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/role_external_references/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete: operations["role_external_references_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/role_external_references/lookup/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["role_external_references_lookup_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/roles/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["roles_list"]; + put?: never; + post: operations["roles_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/roles/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["roles_retrieve"]; + put: operations["roles_update"]; + post?: never; + delete: operations["roles_destroy"]; + options?: never; + head?: never; + patch: operations["roles_partial_update"]; + trace?: never; + }; + "/api/organizations/{organization_id}/roles/{role_id}/role_memberships/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["roles_role_memberships_list"]; + put?: never; + post: operations["roles_role_memberships_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/roles/{role_id}/role_memberships/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["roles_role_memberships_retrieve"]; + put?: never; + post?: never; + delete: operations["roles_role_memberships_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/organizations/{organization_id}/welcome/current/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Aggregated payload for the invited-user welcome screen. */ + get: operations["welcome_current_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/actions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["actions_list"]; + put?: never; + post: operations["actions_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/actions/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["actions_retrieve"]; + put: operations["actions_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["actions_destroy"]; + options?: never; + head?: never; + patch: operations["actions_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/actions/{id}/references/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["actions_references_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/actions/bulk_update_tags/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Bulk update tags on multiple objects. + * + * Accepts: + * - {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]} + * + * Actions: + * - "add": Add tags to existing tags on each object + * - "remove": Remove specific tags from each object + * - "set": Replace all tags on each object with the provided list + */ + post: operations["actions_bulk_update_tags_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/activity_log/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["activity_log_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/advanced_activity_logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["advanced_activity_logs_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/advanced_activity_logs/available_filters/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["advanced_activity_logs_available_filters_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/advanced_activity_logs/export/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["advanced_activity_logs_export_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/alerts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["alerts_list"]; + put?: never; + post: operations["alerts_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/alerts/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["alerts_retrieve"]; + put: operations["alerts_update"]; + post?: never; + delete: operations["alerts_destroy"]; + options?: never; + head?: never; + patch: operations["alerts_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/alerts/simulate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Simulate a detector on an insight's historical data. Read-only — no AlertCheck records are created. */ + post: operations["alerts_simulate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/annotations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete annotations. [See docs](https://posthog.com/docs/data/annotations) for more information on annotations. */ + get: operations["annotations_list"]; + put?: never; + /** @description Create, Read, Update and Delete annotations. [See docs](https://posthog.com/docs/data/annotations) for more information on annotations. */ + post: operations["annotations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/annotations/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete annotations. [See docs](https://posthog.com/docs/data/annotations) for more information on annotations. */ + get: operations["annotations_retrieve"]; + /** @description Create, Read, Update and Delete annotations. [See docs](https://posthog.com/docs/data/annotations) for more information on annotations. */ + put: operations["annotations_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["annotations_destroy"]; + options?: never; + head?: never; + /** @description Create, Read, Update and Delete annotations. [See docs](https://posthog.com/docs/data/annotations) for more information on annotations. */ + patch: operations["annotations_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["batch_exports_list"]; + put?: never; + post: operations["batch_exports_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/{batch_export_id}/backfills/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description ViewSet for BatchExportBackfill models. + * + * Allows creating and reading backfills, but not updating or deleting them. + */ + get: operations["batch_exports_backfills_list"]; + put?: never; + /** @description Create a new backfill for a BatchExport. */ + post: operations["batch_exports_backfills_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/{batch_export_id}/backfills/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description ViewSet for BatchExportBackfill models. + * + * Allows creating and reading backfills, but not updating or deleting them. + */ + get: operations["batch_exports_backfills_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/{batch_export_id}/backfills/{id}/cancel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Cancel a batch export backfill. */ + post: operations["batch_exports_backfills_cancel_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/{batch_export_id}/runs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["batch_exports_runs_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/{batch_export_id}/runs/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["batch_exports_runs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/{batch_export_id}/runs/{id}/cancel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Cancel a batch export run. */ + post: operations["batch_exports_runs_cancel_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/{batch_export_id}/runs/{id}/logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["batch_exports_runs_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/{batch_export_id}/runs/{id}/retry/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Retry a batch export run. + * + * We use the same underlying mechanism as when backfilling a batch export, as retrying + * a run is the same as backfilling one run. + */ + post: operations["batch_exports_runs_retry_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["batch_exports_retrieve"]; + put: operations["batch_exports_update"]; + post?: never; + delete: operations["batch_exports_destroy"]; + options?: never; + head?: never; + patch: operations["batch_exports_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/{id}/logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["batch_exports_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/{id}/pause/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Pause a BatchExport. */ + post: operations["batch_exports_pause_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/{id}/run_test_step/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["batch_exports_run_test_step_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/{id}/unpause/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Unpause a BatchExport. */ + post: operations["batch_exports_unpause_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/run_test_step_new/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["batch_exports_run_test_step_new_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/batch_exports/test/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["batch_exports_test_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/business_knowledge/sources/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["business_knowledge_sources_list"]; + put?: never; + post: operations["business_knowledge_sources_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/business_knowledge/sources/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["business_knowledge_sources_retrieve"]; + put?: never; + post?: never; + delete: operations["business_knowledge_sources_destroy"]; + options?: never; + head?: never; + patch: operations["business_knowledge_sources_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/business_knowledge/sources/{id}/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["business_knowledge_sources_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/business_knowledge/sources/{id}/text/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["business_knowledge_sources_text_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/cohorts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["cohorts_list"]; + put?: never; + post: operations["cohorts_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/cohorts/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["cohorts_retrieve"]; + put: operations["cohorts_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["cohorts_destroy"]; + options?: never; + head?: never; + patch: operations["cohorts_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/cohorts/{id}/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["cohorts_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/cohorts/{id}/add_persons_to_static_cohort/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["cohorts_add_persons_to_static_cohort_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/cohorts/{id}/calculation_history/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["cohorts_calculation_history_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/cohorts/{id}/persons/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["cohorts_persons_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/cohorts/{id}/remove_person_from_static_cohort/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["cohorts_remove_person_from_static_cohort_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/cohorts/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["cohorts_all_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/comments/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["comments_list"]; + put?: never; + post: operations["comments_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/comments/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["comments_retrieve"]; + put: operations["comments_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["comments_destroy"]; + options?: never; + head?: never; + patch: operations["comments_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/comments/{id}/complete/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Mark a task-comment as complete. Sets completed_at and completed_by. 400 if the comment is not a task or is already complete. */ + post: operations["comments_complete_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/comments/{id}/reopen/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Reopen a completed task-comment. Clears completed_at and completed_by. 400 if the comment is not a task or is already open. */ + post: operations["comments_reopen_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/comments/{id}/thread/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["comments_thread_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/comments/count/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["comments_count_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/conversations/tickets/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List tickets with person data attached. */ + get: operations["conversations_tickets_list"]; + put?: never; + post: operations["conversations_tickets_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/conversations/tickets/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get single ticket and mark as read by team. */ + get: operations["conversations_tickets_retrieve"]; + /** @description Handle ticket updates including assignee changes. */ + put: operations["conversations_tickets_update"]; + post?: never; + delete: operations["conversations_tickets_destroy"]; + options?: never; + head?: never; + patch: operations["conversations_tickets_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/conversations/tickets/{id}/suggest_reply/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["conversations_tickets_suggest_reply_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/conversations/tickets/bulk_update_tags/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Bulk update tags on multiple objects. + * + * Accepts: + * - {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]} + * + * Actions: + * - "add": Add tags to existing tags on each object + * - "remove": Remove specific tags from each object + * - "set": Replace all tags on each object with the provided list + */ + post: operations["conversations_tickets_bulk_update_tags_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/conversations/tickets/unread_count/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Get total unread ticket count for the team. + * + * Returns the sum of unread_team_count for all non-resolved tickets. + * Cached in Redis for 30 seconds, invalidated on changes. + */ + get: operations["conversations_tickets_unread_count_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboard_templates/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["dashboard_templates_list"]; + put?: never; + post: operations["dashboard_templates_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboard_templates/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["dashboard_templates_retrieve"]; + put: operations["dashboard_templates_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["dashboard_templates_destroy"]; + options?: never; + head?: never; + patch: operations["dashboard_templates_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/dashboard_templates/copy_between_projects/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Copy a team template to this project + * @description Creates a new team-scoped template in the **target** project (URL) from a **team-scoped** source template in the same organization. Global and feature-flag templates return 400. Cross-organization or inaccessible sources return 404. Source and destination projects must differ (400 if equal). Conflicting `template_name` values on the destination are auto-suffixed with `(copy)`, `(copy 2)`, … + */ + post: operations["dashboard_templates_copy_between_projects_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboard_templates/json_schema/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["dashboard_templates_json_schema_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["dashboards_list"]; + put?: never; + post: operations["dashboards_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{dashboard_id}/collaborators/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["dashboards_collaborators_list"]; + put?: never; + post: operations["dashboards_collaborators_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{dashboard_id}/collaborators/{user__uuid}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete: operations["dashboards_collaborators_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{dashboard_id}/sharing/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["dashboards_sharing_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{dashboard_id}/sharing/passwords/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create a new password for the sharing configuration. */ + post: operations["dashboards_sharing_passwords_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{dashboard_id}/sharing/passwords/{password_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** @description Delete a password from the sharing configuration. */ + delete: operations["dashboards_sharing_passwords_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{dashboard_id}/sharing/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["dashboards_sharing_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["dashboards_retrieve"]; + put: operations["dashboards_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["dashboards_destroy"]; + options?: never; + head?: never; + patch: operations["dashboards_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{id}/analyze_refresh_result/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Generate AI analysis comparing before/after dashboard refresh. + * Expects cache_key in request body pointing to the stored 'before' state. + */ + post: operations["dashboards_analyze_refresh_result_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{id}/copy_tile/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Copy an existing dashboard tile to another dashboard (insight or text card; new tile row). */ + post: operations["dashboards_copy_tile_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{id}/move_tile/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["dashboards_move_tile_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{id}/reorder_tiles/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["dashboards_reorder_tiles_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{id}/run_insights/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Run all insights on a dashboard and return their results. */ + get: operations["dashboards_run_insights_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{id}/snapshot/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Snapshot the current dashboard state (from cache) for AI analysis. + * Returns a cache_key representing the 'before' state, to be used with analyze_refresh_result. + */ + post: operations["dashboards_snapshot_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/{id}/stream_tiles/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Stream dashboard metadata and tiles via Server-Sent Events. Sends metadata first, then tiles as they are rendered. */ + get: operations["dashboards_stream_tiles_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/bulk_update_tags/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Bulk update tags on multiple objects. + * + * Accepts: + * - {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]} + * + * Actions: + * - "add": Add tags to existing tags on each object + * - "remove": Remove specific tags from each object + * - "set": Replace all tags on each object with the provided list + */ + post: operations["dashboards_bulk_update_tags_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/create_from_template_json/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["dashboards_create_from_template_json_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dashboards/create_unlisted_dashboard/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Creates an unlisted dashboard from template by tag. + * Enforces uniqueness (one per tag per team). + * Returns 409 if unlisted dashboard with this tag already exists. + */ + post: operations["dashboards_create_unlisted_dashboard_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_color_themes/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["data_color_themes_list"]; + put?: never; + post: operations["data_color_themes_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_color_themes/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["data_color_themes_retrieve"]; + put: operations["data_color_themes_update"]; + post?: never; + delete: operations["data_color_themes_destroy"]; + options?: never; + head?: never; + patch: operations["data_color_themes_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/data_modeling_jobs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List data modeling jobs which are "runs" for our saved queries. */ + get: operations["data_modeling_jobs_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_modeling_jobs/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List data modeling jobs which are "runs" for our saved queries. */ + get: operations["data_modeling_jobs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_modeling_jobs/recent/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get the most recent non-running job for each saved query from the v2 backend. */ + get: operations["data_modeling_jobs_recent_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_modeling_jobs/running/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get all currently running jobs from the v2 backend. */ + get: operations["data_modeling_jobs_running_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_warehouse/check-database-name/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Check if a database name is available. */ + get: operations["data_warehouse_check_database_name_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_warehouse/completed_activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Returns completed/non-running activities (jobs with status 'Completed'). + * Supports pagination and cutoff time filtering. + */ + get: operations["data_warehouse_completed_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_warehouse/data_health_issues/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Returns failed/disabled data pipeline items for the Pipeline status side panel. + * Includes: materializations, syncs, sources, destinations, and transformations. + */ + get: operations["data_warehouse_data_health_issues_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_warehouse/data_ops_dashboard/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Returns the data ops overview dashboard ID for this team, creating it if it doesn't exist yet. */ + get: operations["data_warehouse_data_ops_dashboard_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_warehouse/deprovision/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Start deprovisioning the managed warehouse for this team. */ + post: operations["data_warehouse_deprovision_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_warehouse/job_stats/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Returns success and failed job statistics for the last 1, 7, or 30 days. + * Query parameter 'days' can be 1, 7, or 30 (default: 7). + */ + get: operations["data_warehouse_job_stats_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_warehouse/property_values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description API endpoints for data warehouse aggregate statistics and operations. */ + get: operations["data_warehouse_property_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_warehouse/provision/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Start provisioning a managed warehouse for this team. */ + post: operations["data_warehouse_provision_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_warehouse/reset-password/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Reset the root password for the managed warehouse. */ + post: operations["data_warehouse_reset_password_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_warehouse/running_activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Returns currently running activities (jobs with status 'Running'). + * Supports pagination and cutoff time filtering. + */ + get: operations["data_warehouse_running_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_warehouse/total_rows_stats/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Returns aggregated statistics for the data warehouse total rows processed within the current billing period. + * Used by the frontend data warehouse scene to display usage information. + */ + get: operations["data_warehouse_total_rows_stats_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/data_warehouse/warehouse_status/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get the current provisioning status of the managed warehouse. */ + get: operations["data_warehouse_warehouse_status_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dataset_items/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["dataset_items_list"]; + put?: never; + post: operations["dataset_items_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/dataset_items/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["dataset_items_retrieve"]; + put: operations["dataset_items_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["dataset_items_destroy"]; + options?: never; + head?: never; + patch: operations["dataset_items_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/datasets/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["datasets_list"]; + put?: never; + post: operations["datasets_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/datasets/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["datasets_retrieve"]; + put: operations["datasets_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["datasets_destroy"]; + options?: never; + head?: never; + patch: operations["datasets_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/deployments/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Read-only viewset for the Deployments product. + * + * `list` and `retrieve` are wired against the model queryset. The + * `@action` stubs (`redeploy`, `rollback`, `refresh_preview`) intentionally + * return 501 — they exist so OpenAPI / MCP can discover the surface area + * while behavior lands in follow-up commits. + */ + get: operations["deployments_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/deployments/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Read-only viewset for the Deployments product. + * + * `list` and `retrieve` are wired against the model queryset. The + * `@action` stubs (`redeploy`, `rollback`, `refresh_preview`) intentionally + * return 501 — they exist so OpenAPI / MCP can discover the surface area + * while behavior lands in follow-up commits. + */ + get: operations["deployments_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/deployments/{id}/redeploy/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Read-only viewset for the Deployments product. + * + * `list` and `retrieve` are wired against the model queryset. The + * `@action` stubs (`redeploy`, `rollback`, `refresh_preview`) intentionally + * return 501 — they exist so OpenAPI / MCP can discover the surface area + * while behavior lands in follow-up commits. + */ + post: operations["deployments_redeploy_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/deployments/{id}/refresh-preview/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Read-only viewset for the Deployments product. + * + * `list` and `retrieve` are wired against the model queryset. The + * `@action` stubs (`redeploy`, `rollback`, `refresh_preview`) intentionally + * return 501 — they exist so OpenAPI / MCP can discover the surface area + * while behavior lands in follow-up commits. + */ + post: operations["deployments_refresh_preview_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/deployments/{id}/rollback/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Read-only viewset for the Deployments product. + * + * `list` and `retrieve` are wired against the model queryset. The + * `@action` stubs (`redeploy`, `rollback`, `refresh_preview`) intentionally + * return 501 — they exist so OpenAPI / MCP can discover the surface area + * while behavior lands in follow-up commits. + */ + post: operations["deployments_rollback_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/early_access_feature/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["early_access_feature_list"]; + put?: never; + post: operations["early_access_feature_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/early_access_feature/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["early_access_feature_retrieve"]; + put: operations["early_access_feature_update"]; + post?: never; + delete: operations["early_access_feature_destroy"]; + options?: never; + head?: never; + patch: operations["early_access_feature_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/elements/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["elements_list"]; + put?: never; + post: operations["elements_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/elements/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["elements_retrieve"]; + put: operations["elements_update"]; + post?: never; + delete: operations["elements_destroy"]; + options?: never; + head?: never; + patch: operations["elements_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/elements/stats/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description The original version of this API always and only returned $autocapture elements + * If no include query parameter is sent this remains true. + * Now, you can pass a combination of include query parameters to get different types of elements + * Currently only $autocapture and $rageclick and $dead_click are supported + */ + get: operations["elements_stats_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/elements/values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["elements_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/endpoints/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List all endpoints for the team. */ + get: operations["endpoints_list"]; + put?: never; + /** @description Create a new endpoint. */ + post: operations["endpoints_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/endpoints/{name}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Retrieve an endpoint, or a specific version via ?version=N. */ + get: operations["endpoints_retrieve"]; + /** @description Update an existing endpoint. Parameters are optional. Pass version in body or ?version=N query param to target a specific version. */ + put: operations["endpoints_update"]; + post?: never; + /** @description Delete an endpoint and clean up materialized query. */ + delete: operations["endpoints_destroy"]; + options?: never; + head?: never; + /** @description Update an existing endpoint. */ + patch: operations["endpoints_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/endpoints/{name}/materialization_preview/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Preview the materialization transform for an endpoint. Shows what the query will look like after materialization, including range pair detection and bucket functions. */ + post: operations["endpoints_materialization_preview_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/endpoints/{name}/materialization_status/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get materialization status for an endpoint. Supports ?version=N query param. */ + get: operations["endpoints_materialization_status_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/endpoints/{name}/openapi.json/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get OpenAPI 3.0 specification for this endpoint. Use this to generate typed SDK clients. */ + get: operations["endpoints_openapi.json_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/endpoints/{name}/run/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Execute endpoint with optional materialization. Supports version parameter, runs latest version if not set. */ + get: operations["endpoints_run_retrieve"]; + put?: never; + /** @description Execute endpoint with optional materialization. Supports version parameter, runs latest version if not set. */ + post: operations["endpoints_run_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/endpoints/{name}/versions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List all versions for an endpoint. */ + get: operations["endpoints_versions_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/endpoints/last_execution_times/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Get the last execution times in the past 6 months for multiple endpoints. */ + post: operations["endpoints_last_execution_times_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/environments/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Deprecated: use /api/environments/{id}/ instead. + */ + get: operations["environments_list"]; + put?: never; + /** + * @deprecated + * @description Deprecated: use /api/environments/{id}/ instead. + */ + post: operations["environments_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description Deprecated: use /api/environments/{id}/ instead. + */ + get: operations["environments_retrieve"]; + /** + * @deprecated + * @description Deprecated: use /api/environments/{id}/ instead. + */ + put: operations["environments_update"]; + post?: never; + /** + * @deprecated + * @description Deprecated: use /api/environments/{id}/ instead. + */ + delete: operations["environments_destroy"]; + options?: never; + head?: never; + /** + * @deprecated + * @description Deprecated: use /api/environments/{id}/ instead. + */ + patch: operations["environments_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Deprecated: use /api/environments/{id}/ instead. */ + get: operations["environments_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/add_product_intent/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Deprecated: use /api/environments/{id}/ instead. */ + patch: operations["environments_add_product_intent_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/complete_product_onboarding/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Deprecated: use /api/environments/{id}/ instead. */ + patch: operations["environments_complete_product_onboarding_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/default_evaluation_contexts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Manage default evaluation contexts for a team. */ + get: operations["environments_default_evaluation_contexts_retrieve"]; + put?: never; + /** @description Manage default evaluation contexts for a team. */ + post: operations["environments_default_evaluation_contexts_create"]; + /** @description Manage default evaluation contexts for a team. */ + delete: operations["environments_default_evaluation_contexts_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/default_release_conditions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Manage default release conditions for new feature flags in this team. */ + get: operations["environments_default_release_conditions_retrieve"]; + /** @description Manage default release conditions for new feature flags in this team. */ + put: operations["environments_default_release_conditions_update"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/delete_secret_token_backup/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Deprecated: use /api/environments/{id}/ instead. */ + patch: operations["environments_delete_secret_token_backup_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/event_ingestion_restrictions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Deprecated: use /api/environments/{id}/ instead. */ + get: operations["environments_event_ingestion_restrictions_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/experiments_config/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Manage experiment configuration for this environment. */ + get: operations["environments_experiments_config_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Manage experiment configuration for this environment. */ + patch: operations["environments_experiments_config_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/generate_conversations_public_token/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Deprecated: use /api/environments/{id}/ instead. */ + post: operations["environments_generate_conversations_public_token_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/is_generating_demo_data/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Deprecated: use /api/environments/{id}/ instead. */ + get: operations["environments_is_generating_demo_data_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/reset_token/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Deprecated: use /api/environments/{id}/ instead. */ + patch: operations["environments_reset_token_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/rotate_secret_token/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Deprecated: use /api/environments/{id}/ instead. */ + patch: operations["environments_rotate_secret_token_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/environments/{id}/settings_as_of/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Return the team settings as of the provided timestamp. + * Query params: + * - at: ISO8601 datetime (required) + * - scope: optional, one or multiple keys to filter the returned settings + */ + get: operations["environments_settings_as_of_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/error_tracking/releases/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_releases_list"]; + put?: never; + post: operations["error_tracking_releases_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/error_tracking/releases/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_releases_retrieve"]; + put: operations["error_tracking_releases_update"]; + post?: never; + delete: operations["error_tracking_releases_destroy"]; + options?: never; + head?: never; + patch: operations["error_tracking_releases_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/error_tracking/releases/hash/{hash_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_releases_hash_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/error_tracking/symbol_sets/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_symbol_sets_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/error_tracking/symbol_sets/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["error_tracking_symbol_sets_retrieve"]; + put?: never; + post?: never; + delete: operations["error_tracking_symbol_sets_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/error_tracking/symbol_sets/{id}/download/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Return a presigned URL for downloading the symbol set's source map. */ + get: operations["error_tracking_symbol_sets_download_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/error_tracking/symbol_sets/{id}/finish_upload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put: operations["error_tracking_symbol_sets_finish_upload_update"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/error_tracking/symbol_sets/bulk_delete/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["error_tracking_symbol_sets_bulk_delete_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/error_tracking/symbol_sets/bulk_finish_upload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["error_tracking_symbol_sets_bulk_finish_upload_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/error_tracking/symbol_sets/bulk_start_upload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["error_tracking_symbol_sets_bulk_start_upload_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/event_definitions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["event_definitions_list"]; + put?: never; + post: operations["event_definitions_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/event_definitions/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["event_definitions_retrieve"]; + put: operations["event_definitions_update"]; + post?: never; + delete: operations["event_definitions_destroy"]; + options?: never; + head?: never; + patch: operations["event_definitions_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/event_definitions/{id}/metrics/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["event_definitions_metrics_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/event_definitions/bulk_update_tags/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Bulk update tags on multiple objects. + * + * Accepts: + * - {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]} + * + * Actions: + * - "add": Add tags to existing tags on each object + * - "remove": Remove specific tags from each object + * - "set": Replace all tags on each object with the provided list + */ + post: operations["event_definitions_bulk_update_tags_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/event_definitions/by_name/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get event definition by exact name */ + get: operations["event_definitions_by_name_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/event_definitions/golang/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["event_definitions_golang_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/event_definitions/primary_properties/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Resolve team-configured primary properties for event definitions. + * + * The response only contains entries where a non-null primary_property is set on the + * EventDefinition. Callers should fall back to the core taxonomy defaults client-side + * for names not present in the response. + */ + get: operations["event_definitions_primary_properties_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/event_definitions/python/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["event_definitions_python_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/event_definitions/typescript/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["event_definitions_typescript_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/event_schemas/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["event_schemas_list"]; + put?: never; + post: operations["event_schemas_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/event_schemas/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put: operations["event_schemas_update"]; + post?: never; + delete: operations["event_schemas_destroy"]; + options?: never; + head?: never; + patch: operations["event_schemas_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/events/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description This endpoint allows you to list and filter events. + * It is effectively deprecated and is kept only for backwards compatibility. + * If you ever ask about it you will be advised to not use it... + * If you want to ad-hoc list or aggregate events, use the Query endpoint instead. + * If you want to export all events or many pages of events you should use our CDP/Batch Exports products instead. + */ + get: operations["events_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/events/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["events_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/events/values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["events_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiment_holdouts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["experiment_holdouts_list"]; + put?: never; + post: operations["experiment_holdouts_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiment_holdouts/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["experiment_holdouts_retrieve"]; + put: operations["experiment_holdouts_update"]; + post?: never; + delete: operations["experiment_holdouts_destroy"]; + options?: never; + head?: never; + patch: operations["experiment_holdouts_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/experiment_saved_metrics/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["experiment_saved_metrics_list"]; + put?: never; + post: operations["experiment_saved_metrics_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiment_saved_metrics/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["experiment_saved_metrics_retrieve"]; + put: operations["experiment_saved_metrics_update"]; + post?: never; + delete: operations["experiment_saved_metrics_destroy"]; + options?: never; + head?: never; + patch: operations["experiment_saved_metrics_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/experiments/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List experiments for the current project. Supports filtering by status and archival state. */ + get: operations["experiments_list"]; + put?: never; + /** @description Create a new experiment in draft status with optional metrics. */ + post: operations["experiments_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Retrieve a single experiment by ID, including its current status, metrics, feature flag, and results metadata. */ + get: operations["experiments_retrieve"]; + /** + * @description Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers. + * + * This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator + * on serializer methods and converts them into proper HTTP 409 Conflict responses with + * change request details. + */ + put: operations["experiments_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["experiments_destroy"]; + options?: never; + head?: never; + /** @description Update an experiment. Use this to modify experiment properties such as name, description, metrics, variants, and configuration. Metrics can be added, changed and removed at any time. */ + patch: operations["experiments_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/archive/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Archive an ended experiment. + * + * Hides the experiment from the default list view. The experiment can be + * restored at any time by updating archived=false. Returns 400 if the + * experiment is already archived or has not ended yet. + */ + post: operations["experiments_archive_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/copy_to_project/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers. + * + * This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator + * on serializer methods and converts them into proper HTTP 409 Conflict responses with + * change request details. + */ + post: operations["experiments_copy_to_project_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/create_exposure_cohort_for_experiment/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers. + * + * This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator + * on serializer methods and converts them into proper HTTP 409 Conflict responses with + * change request details. + */ + post: operations["experiments_create_exposure_cohort_for_experiment_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/duplicate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers. + * + * This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator + * on serializer methods and converts them into proper HTTP 409 Conflict responses with + * change request details. + */ + post: operations["experiments_duplicate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/end/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description End a running experiment without shipping a variant. + * + * Sets end_date to now and marks the experiment as stopped. The feature + * flag is NOT modified — users continue to see their assigned variants + * and exposure events ($feature_flag_called) continue to be recorded. + * However, only data up to end_date is included in experiment results. + * + * Use this when: + * + * - You want to freeze the results window without changing which variant + * users see. + * - A variant was already shipped manually via the feature flag UI and + * the experiment just needs to be marked complete. + * + * The end_date can be adjusted after ending via PATCH if it needs to be + * backdated (e.g. to match when the flag was actually paused). + * + * Other options: + * - Use ship_variant to end the experiment AND roll out a single variant to 100%% of users. + * - Use pause to deactivate the flag without ending the experiment (stops variant assignment but does not freeze results). + * + * Returns 400 if the experiment is not running. + */ + post: operations["experiments_end_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/launch/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Launch a draft experiment. + * + * Validates the experiment is in draft state, activates its linked feature flag, + * sets start_date to the current server time, and transitions the experiment to running. + * Returns 400 if the experiment has already been launched or if the feature flag + * configuration is invalid (e.g. missing "control" variant or fewer than 2 variants). + */ + post: operations["experiments_launch_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/pause/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Pause a running experiment. + * + * Deactivates the linked feature flag so it is no longer returned by the + * /decide endpoint. Users fall back to the application default (typically + * the control experience), and no new exposure events are recorded (i.e. + * $feature_flag_called is not fired). + * Returns 400 if the experiment is not running or is already paused. + */ + post: operations["experiments_pause_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/recalculate_timeseries/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers. + * + * This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator + * on serializer methods and converts them into proper HTTP 409 Conflict responses with + * change request details. + */ + post: operations["experiments_recalculate_timeseries_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/reset/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Reset an experiment back to draft state. + * + * Clears start/end dates, conclusion, and archived flag. The feature + * flag is left unchanged — users continue to see their assigned variants. + * + * Previously collected events still exist but won't be included in + * results unless the start date is manually adjusted after re-launch. + * + * Returns 400 if the experiment is already in draft state. + */ + post: operations["experiments_reset_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/resume/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Resume a paused experiment. + * + * Reactivates the linked feature flag so it is returned by /decide again. + * Users are re-bucketed deterministically into the same variants they had + * before the pause, and exposure tracking resumes. + * Returns 400 if the experiment is not running or is not paused. + */ + post: operations["experiments_resume_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/ship_variant/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Ship a variant to 100% of users and (optionally) end the experiment. + * + * Rewrites the feature flag so that the selected variant is served to everyone. + * Existing release conditions (flag groups) are preserved so the change can be + * rolled back by deleting the auto-added release condition in the feature flag UI. + * + * Can be called on both running and stopped experiments. If the experiment is + * still running, it will also be ended (end_date set and status marked as stopped). + * If the experiment has already ended, only the flag is rewritten - this supports + * the "end first, ship later" workflow. + * + * If an approval policy requires review before changes on the flag take effect, + * the API returns 409 with a change_request_id. The experiment is NOT ended until + * the change request is approved and the user retries. + * + * Returns 400 if the experiment is in draft state, the variant_key is not found + * on the flag, or the experiment has no linked feature flag. + */ + post: operations["experiments_ship_variant_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/timeseries_results/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers. + * + * This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator + * on serializer methods and converts them into proper HTTP 409 Conflict responses with + * change request details. + */ + get: operations["experiments_timeseries_results_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/{id}/unarchive/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Unarchive an archived experiment. + * + * Restores the experiment to the default list view. Returns 400 if the + * experiment is not currently archived. + */ + post: operations["experiments_unarchive_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/eligible_feature_flags/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Returns a paginated list of feature flags eligible for use in experiments. + * + * Eligible flags must: + * - Be multivariate with at least 2 variants + * - Have "control" as the first variant key + * + * Query parameters: + * - search: Filter by flag key or name (case insensitive) + * - limit: Number of results per page (default: 20) + * - offset: Pagination offset (default: 0) + * - active: Filter by active status ("true" or "false") + * - created_by_id: Filter by creator user ID + * - order: Sort order field + * - evaluation_runtime: Filter by evaluation runtime + * - has_evaluation_contexts: Filter by presence of evaluation contexts ("true" or "false") + */ + get: operations["experiments_eligible_feature_flags_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/requires_flag_implementation/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers. + * + * This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator + * on serializer methods and converts them into proper HTTP 409 Conflict responses with + * change request details. + */ + get: operations["experiments_requires_flag_implementation_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/experiments/stats/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers. + * + * This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator + * on serializer methods and converts them into proper HTTP 409 Conflict responses with + * change request details. + */ + get: operations["experiments_stats_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/exports/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["exports_list"]; + put?: never; + post: operations["exports_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/exports/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["exports_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/exports/{id}/content/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["exports_content_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_schemas/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["external_data_schemas_list"]; + put?: never; + post: operations["external_data_schemas_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_schemas/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["external_data_schemas_retrieve"]; + put: operations["external_data_schemas_update"]; + post?: never; + delete: operations["external_data_schemas_destroy"]; + options?: never; + head?: never; + patch: operations["external_data_schemas_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/external_data_schemas/{id}/cancel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["external_data_schemas_cancel_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_schemas/{id}/delete_data/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete: operations["external_data_schemas_delete_data_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_schemas/{id}/incremental_fields/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["external_data_schemas_incremental_fields_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_schemas/{id}/reload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["external_data_schemas_reload_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_schemas/{id}/resync/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["external_data_schemas_resync_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete External data Sources. */ + get: operations["external_data_sources_list"]; + put?: never; + /** @description Create, Read, Update and Delete External data Sources. */ + post: operations["external_data_sources_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete External data Sources. */ + get: operations["external_data_sources_retrieve"]; + /** @description Create, Read, Update and Delete External data Sources. */ + put: operations["external_data_sources_update"]; + post?: never; + /** @description Create, Read, Update and Delete External data Sources. */ + delete: operations["external_data_sources_destroy"]; + options?: never; + head?: never; + /** @description Create, Read, Update and Delete External data Sources. */ + patch: operations["external_data_sources_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/{id}/bulk_update_schemas/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Create, Read, Update and Delete External data Sources. */ + patch: operations["external_data_sources_bulk_update_schemas_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/{id}/create_webhook/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create, Read, Update and Delete External data Sources. */ + post: operations["external_data_sources_create_webhook_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/{id}/delete_webhook/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create, Read, Update and Delete External data Sources. */ + post: operations["external_data_sources_delete_webhook_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/{id}/jobs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete External data Sources. */ + get: operations["external_data_sources_jobs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/{id}/refresh_schemas/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Fetch current schema/table list from the source and create any new ExternalDataSchema rows (no data sync). */ + post: operations["external_data_sources_refresh_schemas_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/{id}/reload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create, Read, Update and Delete External data Sources. */ + post: operations["external_data_sources_reload_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/{id}/revenue_analytics_config/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Update the revenue analytics configuration and return the full external data source. */ + patch: operations["external_data_sources_revenue_analytics_config_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/{id}/update_webhook_inputs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create, Read, Update and Delete External data Sources. */ + post: operations["external_data_sources_update_webhook_inputs_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/{id}/webhook_info/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete External data Sources. */ + get: operations["external_data_sources_webhook_info_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/check_cdc_prerequisites/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Validate CDC prerequisites against a live Postgres connection. + * + * Used by the source wizard to surface ✅/❌ checks before source creation, + * and by the self-managed setup popup to verify user-created publications. + */ + post: operations["external_data_sources_check_cdc_prerequisites_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/connections/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete External data Sources. */ + get: operations["external_data_sources_connections_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/database_schema/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create, Read, Update and Delete External data Sources. */ + post: operations["external_data_sources_database_schema_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/source_prefix/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create, Read, Update and Delete External data Sources. */ + post: operations["external_data_sources_source_prefix_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/external_data_sources/wizard/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete External data Sources. */ + get: operations["external_data_sources_wizard_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + get: operations["feature_flags_list"]; + put?: never; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + post: operations["feature_flags_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + get: operations["feature_flags_retrieve"]; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + put: operations["feature_flags_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["feature_flags_destroy"]; + options?: never; + head?: never; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + patch: operations["feature_flags_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/{id}/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + get: operations["feature_flags_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/{id}/create_static_cohort_for_flag/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + post: operations["feature_flags_create_static_cohort_for_flag_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/{id}/dashboard/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + post: operations["feature_flags_dashboard_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/{id}/dependent_flags/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get other active flags that depend on this flag. */ + get: operations["feature_flags_dependent_flags_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/{id}/enrich_usage_dashboard/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + post: operations["feature_flags_enrich_usage_dashboard_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/{id}/remote_config/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + get: operations["feature_flags_remote_config_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/{id}/status/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + get: operations["feature_flags_status_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/{id}/test_evaluation/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Test feature flag evaluation against a specific user at an optional point in time. + * + * This endpoint allows testing how a feature flag would evaluate for a specific user, + * optionally at a historical timestamp. When a timestamp is provided, both the flag + * conditions and person properties are evaluated as they existed at that time. + */ + post: operations["feature_flags_test_evaluation_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/{id}/versions/{version_number}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + get: operations["feature_flags_versions_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + get: operations["feature_flags_all_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/bulk_delete/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Bulk delete feature flags by filter criteria or explicit IDs. + * + * Accepts either: + * - {"filters": {...}} - Same filter params as list endpoint (search, active, type, etc.) + * - {"ids": [...]} - Explicit list of flag IDs (no limit) + * + * Returns same format as bulk_delete for UI compatibility. + * + * Uses bulk operations for efficiency: database updates are batched and cache + * invalidation happens once at the end rather than per-flag. + */ + post: operations["feature_flags_bulk_delete_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/bulk_keys/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Get feature flag keys by IDs. + * Accepts a list of feature flag IDs and returns a mapping of ID to key. + */ + post: operations["feature_flags_bulk_keys_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/bulk_update_tags/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Bulk update tags on multiple objects. + * + * Accepts: + * - {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]} + * + * Actions: + * - "add": Add tags to existing tags on each object + * - "remove": Remove specific tags from each object + * - "set": Replace all tags on each object with the provided list + */ + post: operations["feature_flags_bulk_update_tags_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/evaluation_reasons/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + get: operations["feature_flags_evaluation_reasons_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/local_evaluation/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + get: operations["feature_flags_local_evaluation_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/matching_ids/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Get IDs of all feature flags matching the current filters. + * Uses the same filtering logic as the list endpoint. + * Returns only IDs that the user has permission to edit. + */ + get: operations["feature_flags_matching_ids_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/my_flags/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + get: operations["feature_flags_my_flags_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/feature_flags/user_blast_radius/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags. + * + * If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user. + */ + post: operations["feature_flags_user_blast_radius_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/file_system/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["file_system_list"]; + put?: never; + post: operations["file_system_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/file_system/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["file_system_retrieve"]; + put: operations["file_system_update"]; + post?: never; + delete: operations["file_system_destroy"]; + options?: never; + head?: never; + patch: operations["file_system_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/file_system/{id}/count/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Get count of all files in a folder. */ + post: operations["file_system_count_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/file_system/{id}/link/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["file_system_link_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/file_system/{id}/move/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["file_system_move_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/file_system/count_by_path/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Get count of all files in a folder. */ + post: operations["file_system_count_by_path_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/file_system/log_view/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["file_system_log_view_retrieve"]; + put?: never; + post: operations["file_system_log_view_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/file_system/undo_delete/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["file_system_undo_delete_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/file_system/unfiled/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["file_system_unfiled_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/file_system_shortcut/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["file_system_shortcut_list"]; + put?: never; + post: operations["file_system_shortcut_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/file_system_shortcut/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["file_system_shortcut_retrieve"]; + put: operations["file_system_shortcut_update"]; + post?: never; + delete: operations["file_system_shortcut_destroy"]; + options?: never; + head?: never; + patch: operations["file_system_shortcut_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/file_system_shortcut/reorder/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Set the display order of the current user's shortcuts. `ordered_ids` becomes the new top-to-bottom order; any unknown IDs are rejected. */ + post: operations["file_system_shortcut_reorder_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/flag_value/values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Get possible values for a feature flag. + * + * Query parameters: + * - key: The flag ID (required) + * Returns: + * + * - Array of objects with 'name' field containing possible values + */ + get: operations["flag_value_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description List all groups of a specific group type. You must pass ?group_type_index= in the URL. + * To get a list of valid group types, call /api/:project_id/groups_types/. + * + * Uses forward-only keyset pagination via the `cursor` parameter. + * The `previous` field in the response envelope is always null. + */ + get: operations["groups_list"]; + put?: never; + post: operations["groups_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["groups_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups/delete_property/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["groups_delete_property_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups/find/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["groups_find_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups/property_definitions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["groups_property_definitions_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups/property_values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["groups_property_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups/related/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["groups_related_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups/update_property/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["groups_update_property_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups_types/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["groups_types_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups_types/{group_type_index}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete: operations["groups_types_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups_types/{group_type_index}/metrics/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["groups_types_metrics_list"]; + put?: never; + post: operations["groups_types_metrics_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups_types/{group_type_index}/metrics/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["groups_types_metrics_retrieve"]; + put: operations["groups_types_metrics_update"]; + post?: never; + delete: operations["groups_types_metrics_destroy"]; + options?: never; + head?: never; + patch: operations["groups_types_metrics_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/groups_types/create_detail_dashboard/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put: operations["groups_types_create_detail_dashboard_update"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups_types/set_default_columns/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put: operations["groups_types_set_default_columns_update"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/groups_types/update_metadata/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["groups_types_update_metadata_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/heatmap_screenshots/{id}/content/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["heatmap_screenshots_content_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/heatmaps/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["heatmaps_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/heatmaps/events/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["heatmaps_events_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_flows_list"]; + put?: never; + post: operations["hog_flows_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_flows_retrieve"]; + put: operations["hog_flows_update"]; + post?: never; + delete: operations["hog_flows_destroy"]; + options?: never; + head?: never; + patch: operations["hog_flows_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/{id}/batch_jobs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_flows_batch_jobs_retrieve"]; + put?: never; + post: operations["hog_flows_batch_jobs_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/{id}/blocked_runs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List workflow runs that were blocked by the dedup bug. */ + get: operations["hog_flows_blocked_runs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/{id}/invocations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["hog_flows_invocations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/{id}/logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_flows_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/{id}/metrics/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_flows_metrics_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/{id}/metrics/totals/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_flows_metrics_totals_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/{id}/replay_all_blocked_runs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Replay all blocked runs in a single bulk call to Node. */ + post: operations["hog_flows_replay_all_blocked_runs_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/{id}/replay_blocked_run/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Replay a single blocked run. Django fetches the event, Node creates the invocation and writes the log. */ + post: operations["hog_flows_replay_blocked_run_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/{id}/schedules/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_flows_schedules_list"]; + put?: never; + post: operations["hog_flows_schedules_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/{id}/schedules/{schedule_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete: operations["hog_flows_schedules_destroy"]; + options?: never; + head?: never; + patch: operations["hog_flows_schedules_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/bulk_delete/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["hog_flows_bulk_delete_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_flows/user_blast_radius/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["hog_flows_user_blast_radius_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_function_templates/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_function_templates_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_function_templates/{template_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_function_templates_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_functions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_functions_list"]; + put?: never; + post: operations["hog_functions_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_functions/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_functions_retrieve"]; + put: operations["hog_functions_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["hog_functions_destroy"]; + options?: never; + head?: never; + patch: operations["hog_functions_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/hog_functions/{id}/enable_backfills/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["hog_functions_enable_backfills_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_functions/{id}/invocations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["hog_functions_invocations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_functions/{id}/logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_functions_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_functions/{id}/metrics/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_functions_metrics_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_functions/{id}/metrics/totals/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_functions_metrics_totals_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_functions/icon/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_functions_icon_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_functions/icons/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["hog_functions_icons_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/hog_functions/rearrange/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Update the execution order of multiple HogFunctions. */ + patch: operations["hog_functions_rearrange_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/insight_variables/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["insight_variables_list"]; + put?: never; + post: operations["insight_variables_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insight_variables/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["insight_variables_retrieve"]; + put: operations["insight_variables_update"]; + post?: never; + delete: operations["insight_variables_destroy"]; + options?: never; + head?: never; + patch: operations["insight_variables_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/insights/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + get: operations["insights_list"]; + put?: never; + /** + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + post: operations["insights_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/{insight_id}/sharing/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["insights_sharing_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/{insight_id}/sharing/passwords/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create a new password for the sharing configuration. */ + post: operations["insights_sharing_passwords_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/{insight_id}/sharing/passwords/{password_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** @description Delete a password from the sharing configuration. */ + delete: operations["insights_sharing_passwords_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/{insight_id}/sharing/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["insights_sharing_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/{insight_id}/thresholds/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["insights_thresholds_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/{insight_id}/thresholds/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["insights_thresholds_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + get: operations["insights_retrieve"]; + /** + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + put: operations["insights_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["insights_destroy"]; + options?: never; + head?: never; + /** + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + patch: operations["insights_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/insights/{id}/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Audit trail for a single insight — every change made to it, by whom, and when. Use this when you want the change history of a specific insight; use the project-wide activity endpoint for a broader view. */ + get: operations["insights_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/{id}/analyze/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + get: operations["insights_analyze_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/{id}/suggestions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + get: operations["insights_suggestions_retrieve"]; + put?: never; + /** + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + post: operations["insights_suggestions_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Project-wide audit trail across all insights — who created, edited, deleted, or restored insights, what changed (with before/after diffs), and when. Useful for surfacing what people (or agents) have been working on recently. */ + get: operations["insights_all_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/bulk_update_tags/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Bulk update tags on multiple objects. + * + * Accepts: + * - {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]} + * + * Actions: + * - "add": Add tags to existing tags on each object + * - "remove": Remove specific tags from each object + * - "set": Replace all tags on each object with the provided list + */ + post: operations["insights_bulk_update_tags_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/cancel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + post: operations["insights_cancel_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/generate_metadata/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Generate an AI-suggested name and description for an insight based on its query configuration. */ + post: operations["insights_generate_metadata_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/my_last_viewed/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Returns basic details about the last 5 insights viewed by this user. Most recently viewed first. */ + get: operations["insights_my_last_viewed_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/trending/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Returns insights ranked by view count over the last N days (default 7), highest first. Each result includes the same metadata as the standard insights list, plus a `view_count` and up to 3 recent `viewers`. Useful for surfacing the most-used insights in a project. */ + get: operations["insights_trending_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/insights/viewed/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Record that the current user has just viewed one or more insights. Submitted ids that do not belong to the current project or that point at deleted insights are silently dropped. Returns 201 on success regardless of how many ids were retained. */ + post: operations["insights_viewed_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_list"]; + put?: never; + post: operations["integrations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_retrieve"]; + put?: never; + post?: never; + delete: operations["integrations_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/anthropic_managed_agent_environments/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_anthropic_managed_agent_envs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/anthropic_managed_agent_vaults/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_anthropic_managed_agent_vaults_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/anthropic_managed_agents/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_anthropic_managed_agents_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/channels/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_channels_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/clickup_lists/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_clickup_lists_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/clickup_spaces/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_clickup_spaces_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/clickup_workspaces/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_clickup_workspaces_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/email/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["integrations_email_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/email/verify/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["integrations_email_verify_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/github_branches/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_github_branches_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/github_repos/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_github_repos_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/github_repos/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["integrations_github_repos_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/google_accessible_accounts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_google_accessible_accounts_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/google_conversion_actions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_google_conversion_actions_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/jira_projects/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_jira_projects_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/linear_teams/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_linear_teams_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/linkedin_ads_accounts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_linkedin_ads_accounts_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/linkedin_ads_conversion_rules/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_linkedin_ads_conversion_rules_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/{id}/twilio_phone_numbers/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_twilio_phone_numbers_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/authorize/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_authorize_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/domain-connect/apply-url/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Unified endpoint for generating Domain Connect apply URLs. + * + * Accepts a context ("email" or "proxy") and the relevant resource ID. + * The backend resolves the domain, template variables, and service ID + * based on context, then builds the signed apply URL. + */ + post: operations["integrations_domain_connect_apply_url_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/domain-connect/check/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["integrations_domain_connect_check_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/github/link_existing/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Reuse a GitHub installation already linked to a sibling team in the same organization. */ + post: operations["integrations_github_link_existing_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/integrations/github/oauth_authorize/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Mint a User OAuth URL to bootstrap a fresh `code` when the install flow returns without one. */ + post: operations["integrations_github_oauth_authorize_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/js-snippet/resolve/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Preview what a given pin would resolve to, without saving it. */ + get: operations["js_snippet_resolve_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/js-snippet/version/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Return the team's current version pin and resolved version. */ + get: operations["js_snippet_version_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Update the team's version pin. */ + patch: operations["js_snippet_version_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/live_debugger_breakpoints/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete breakpoints for live debugging. */ + get: operations["live_debugger_breakpoints_list"]; + put?: never; + /** @description Create, Read, Update and Delete breakpoints for live debugging. */ + post: operations["live_debugger_breakpoints_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/live_debugger_breakpoints/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete breakpoints for live debugging. */ + get: operations["live_debugger_breakpoints_retrieve"]; + /** @description Create, Read, Update and Delete breakpoints for live debugging. */ + put: operations["live_debugger_breakpoints_update"]; + post?: never; + /** @description Create, Read, Update and Delete breakpoints for live debugging. */ + delete: operations["live_debugger_breakpoints_destroy"]; + options?: never; + head?: never; + /** @description Create, Read, Update and Delete breakpoints for live debugging. */ + patch: operations["live_debugger_breakpoints_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/live_debugger_breakpoints/active/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get active breakpoints (External API) + * @description External API endpoint for client applications to fetch active breakpoints using Project API key. This endpoint allows external client applications (like Python scripts, Node.js apps, etc.) to fetch the list of active breakpoints so they can instrument their code accordingly. + * + * Authentication: Requires a Project API Key in the Authorization header: `Authorization: Bearer phs_`. You can find your Project API Key in PostHog at: Settings → Project → Project API Key + */ + get: operations["live_debugger_breakpoints_active_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/live_debugger_breakpoints/breakpoint_hits/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get breakpoint hits + * @description Retrieve breakpoint hit events from ClickHouse with optional filtering and pagination. Returns hit events containing stack traces, local variables, and execution context from your application's runtime. + * + * Security: Breakpoint IDs are filtered to only include those belonging to the current team. + */ + get: operations["live_debugger_breakpoints_breakpoint_hits_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/alerts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["logs_alerts_list"]; + put?: never; + post: operations["logs_alerts_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/alerts/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["logs_alerts_retrieve"]; + put: operations["logs_alerts_update"]; + post?: never; + delete: operations["logs_alerts_destroy"]; + options?: never; + head?: never; + patch: operations["logs_alerts_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/logs/alerts/{id}/destinations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create a notification destination for this alert. One HogFunction is created per alert event kind (firing, resolved, ...) atomically. */ + post: operations["logs_alerts_destinations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/alerts/{id}/destinations/delete/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Delete a notification destination by deleting its HogFunction group atomically. */ + post: operations["logs_alerts_destinations_delete_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/alerts/{id}/events/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Paginated event history for this alert, newest first. Returns state transitions, errored checks, and user-initiated control-plane rows (reset, enable/disable, snooze/unsnooze, threshold change) — quiet no-op check rows (where state didn't change and there was no error) are filtered out since only the last 10 are kept and they carry no forensic value. Optional `?kind=...` narrows to a single kind. */ + get: operations["logs_alerts_events_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/alerts/{id}/reset/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Reset a broken alert. Clears the consecutive-failure counter and schedules an immediate recheck. */ + post: operations["logs_alerts_reset_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/alerts/simulate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Simulate a logs alert on historical data using the full state machine. Read-only — no alert check records are created. */ + post: operations["logs_alerts_simulate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/attributes/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["logs_attributes_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/count/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["logs_count_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/count-ranges/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["logs_count_ranges_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/export/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["logs_export_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/has_logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["logs_has_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/query/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["logs_query_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/sampling_rules/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["logs_sampling_rules_list"]; + put?: never; + post: operations["logs_sampling_rules_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/sampling_rules/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["logs_sampling_rules_retrieve"]; + put: operations["logs_sampling_rules_update"]; + post?: never; + delete: operations["logs_sampling_rules_destroy"]; + options?: never; + head?: never; + patch: operations["logs_sampling_rules_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/logs/sampling_rules/{id}/simulate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Dry-run estimate for how much volume this rule would remove (placeholder response until CH-backed simulation is wired). */ + post: operations["logs_sampling_rules_simulate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/sampling_rules/reorder/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Atomically reassign priorities so the given ID order maps to ascending priorities (0..n-1). */ + post: operations["logs_sampling_rules_reorder_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/services/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["logs_services_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/sparkline/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["logs_sparkline_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/logs/values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["logs_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + get: operations["notebooks_list"]; + put?: never; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + post: operations["notebooks_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{notebook_id}/sharing/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["notebooks_sharing_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{notebook_id}/sharing/passwords/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create a new password for the sharing configuration. */ + post: operations["notebooks_sharing_passwords_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{notebook_id}/sharing/passwords/{password_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** @description Delete a password from the sharing configuration. */ + delete: operations["notebooks_sharing_passwords_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{notebook_id}/sharing/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["notebooks_sharing_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{short_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + get: operations["notebooks_retrieve"]; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + put: operations["notebooks_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["notebooks_destroy"]; + options?: never; + head?: never; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + patch: operations["notebooks_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{short_id}/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + get: operations["notebooks_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{short_id}/collab/save/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + post: operations["notebooks_collab_save_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{short_id}/collab/stream/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + get: operations["notebooks_collab_stream_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{short_id}/hogql/execute/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + post: operations["notebooks_hogql_execute_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{short_id}/kernel/config/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + post: operations["notebooks_kernel_config_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{short_id}/kernel/dataframe/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + get: operations["notebooks_kernel_dataframe_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{short_id}/kernel/execute/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + post: operations["notebooks_kernel_execute_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{short_id}/kernel/execute/stream/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + post: operations["notebooks_kernel_execute_stream_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{short_id}/kernel/restart/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + post: operations["notebooks_kernel_restart_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{short_id}/kernel/start/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + post: operations["notebooks_kernel_start_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{short_id}/kernel/status/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + get: operations["notebooks_kernel_status_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/{short_id}/kernel/stop/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + post: operations["notebooks_kernel_stop_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + get: operations["notebooks_all_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/notebooks/recording_comments/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement. */ + get: operations["notebooks_recording_comments_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/object_media_previews/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["object_media_previews_list"]; + put?: never; + post: operations["object_media_previews_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/object_media_previews/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["object_media_previews_retrieve"]; + put: operations["object_media_previews_update"]; + post?: never; + delete: operations["object_media_previews_destroy"]; + options?: never; + head?: never; + patch: operations["object_media_previews_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/object_media_previews/preferred_for_event/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Get the preferred media preview for an event definition. + * Most recent user-uploaded, then most recent exported asset. + * Requires event_definition (query param). + */ + get: operations["object_media_previews_preferred_for_event_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persisted_folder/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["persisted_folder_list"]; + put?: never; + post: operations["persisted_folder_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persisted_folder/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["persisted_folder_retrieve"]; + put: operations["persisted_folder_update"]; + post?: never; + delete: operations["persisted_folder_destroy"]; + options?: never; + head?: never; + patch: operations["persisted_folder_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/persons/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + get: operations["persons_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + get: operations["persons_retrieve"]; + /** + * @description Only for setting properties on the person. "properties" from the request data will be updated via a "$set" event. + * This means that only the properties listed will be updated, but other properties won't be removed nor updated. + * If you would like to remove a property use the `delete_property` endpoint. + */ + put: operations["persons_update"]; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + patch: operations["persons_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/persons/{id}/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + get: operations["persons_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/{id}/delete_property/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + post: operations["persons_delete_property_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/{id}/properties_timeline/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + get: operations["persons_properties_timeline_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/{id}/split/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + post: operations["persons_split_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/{id}/update_property/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + post: operations["persons_update_property_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + get: operations["persons_all_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/batch_by_distinct_ids/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + post: operations["persons_batch_by_distinct_ids_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/batch_by_uuids/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + post: operations["persons_batch_by_uuids_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/bulk_delete/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description This endpoint allows you to bulk delete persons, either by the PostHog person IDs or by distinct IDs. You can pass in a maximum of 1000 IDs per call. Only events captured before the request will be deleted. */ + post: operations["persons_bulk_delete_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/cohorts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + get: operations["persons_cohorts_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/deletion_status/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List the status of queued event deletions for persons. When you delete a person with `delete_events=true`, an async deletion is queued. Use this endpoint to check whether those deletions are still pending or have been completed. */ + get: operations["persons_deletion_status_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/funnel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + get: operations["persons_funnel_retrieve"]; + put?: never; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + post: operations["persons_funnel_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/funnel/correlation/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + get: operations["persons_funnel_correlation_retrieve"]; + put?: never; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + post: operations["persons_funnel_correlation_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/lifecycle/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + get: operations["persons_lifecycle_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/properties_at_time/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Get person properties as they existed at a specific point in time. + * + * This endpoint reconstructs person properties by querying ClickHouse events + * for $set and $set_once operations up to the specified timestamp. + * + * Query parameters: + * - distinct_id: The distinct_id of the person + * - timestamp: ISO datetime string for the point in time (e.g., "2023-06-15T14:30:00Z") + * - include_set_once: Whether to handle $set_once operations (default: false) + */ + get: operations["persons_properties_at_time_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/reset_person_distinct_id/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Reset a distinct_id for a deleted person. This allows the distinct_id to be used again. */ + post: operations["persons_reset_person_distinct_id_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/trends/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + get: operations["persons_trends_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/persons/values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs. */ + get: operations["persons_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/plugin_configs/{plugin_config_id}/logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["plugin_configs_logs_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/product_tours/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["product_tours_list"]; + put?: never; + post: operations["product_tours_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/product_tours/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["product_tours_retrieve"]; + put: operations["product_tours_update"]; + post?: never; + delete: operations["product_tours_destroy"]; + options?: never; + head?: never; + patch: operations["product_tours_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/product_tours/{id}/discard_draft/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** @description Discard draft content. */ + delete: operations["product_tours_discard_draft_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/product_tours/{id}/draft/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Save draft content (server-side merge). No side effects triggered. */ + patch: operations["product_tours_draft_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/product_tours/{id}/draft_status/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Lightweight polling endpoint for draft change detection. */ + get: operations["product_tours_draft_status_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/product_tours/{id}/generate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Generate tour step content using AI. */ + post: operations["product_tours_generate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/product_tours/{id}/publish_draft/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Commit draft to live tour. Runs full validation and triggers side effects. + * + * Accepts an optional body payload. If provided, merges it into the draft + * before publishing so the caller can save + publish in a single request. + */ + post: operations["product_tours_publish_draft_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/project_secret_api_keys/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["project_secret_api_keys_list"]; + put?: never; + post: operations["project_secret_api_keys_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/project_secret_api_keys/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["project_secret_api_keys_retrieve"]; + put: operations["project_secret_api_keys_update"]; + post?: never; + delete: operations["project_secret_api_keys_destroy"]; + options?: never; + head?: never; + patch: operations["project_secret_api_keys_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/project_secret_api_keys/{id}/roll/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Roll a project secret API key */ + post: operations["project_secret_api_keys_roll_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/property_definitions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["property_definitions_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/property_definitions/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["property_definitions_retrieve"]; + put: operations["property_definitions_update"]; + post?: never; + delete: operations["property_definitions_destroy"]; + options?: never; + head?: never; + patch: operations["property_definitions_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/property_definitions/bulk_update_tags/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Bulk update tags on multiple objects. + * + * Accepts: + * - {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]} + * + * Actions: + * - "add": Add tags to existing tags on each object + * - "remove": Remove specific tags from each object + * - "set": Replace all tags on each object with the provided list + */ + post: operations["property_definitions_bulk_update_tags_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/property_definitions/seen_together/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Allows a caller to provide a list of event names and a single property name + * Returns a map of the event names to a boolean representing whether that property has ever been seen with that event_name + */ + get: operations["property_definitions_seen_together_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/query/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + post: operations["query_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/query/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description (Experimental) */ + get: operations["query_retrieve"]; + put?: never; + post?: never; + /** @description (Experimental) */ + delete: operations["query_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/query/{id}/log/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get query log details from query_log_archive table for a specific query_id, the query must have been issued in last 24 hours. */ + get: operations["query_log_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/query/{query_kind}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + post: operations["query_create_with_kind"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/query/check_auth_for_async/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + post: operations["query_check_auth_for_async_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/query/draft_sql/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description DRF ViewSet mixin that gates coalesced responses behind permission checks. + * + * The QueryCoalescingMiddleware attaches cached response data to + * request.META["_coalesced_response"] for followers. This mixin runs DRF's + * initial() (auth + permissions + throttling) before returning the + * cached response, ensuring the request is authorized. + */ + get: operations["query_draft_sql_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/query/upgrade/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Upgrades a query without executing it. Returns a query with all nodes migrated to the latest version. */ + post: operations["query_upgrade_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/sandbox_environments/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description API for managing sandbox environments that control network access for task runs. */ + get: operations["sandbox_list"]; + put?: never; + /** @description API for managing sandbox environments that control network access for task runs. */ + post: operations["sandbox_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/sandbox_environments/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description API for managing sandbox environments that control network access for task runs. */ + get: operations["sandbox_retrieve"]; + put?: never; + post?: never; + /** @description API for managing sandbox environments that control network access for task runs. */ + delete: operations["sandbox_destroy"]; + options?: never; + head?: never; + /** @description API for managing sandbox environments that control network access for task runs. */ + patch: operations["sandbox_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/saved/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["saved_list"]; + put?: never; + post: operations["saved_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/saved/{short_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["saved_retrieve"]; + put?: never; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["saved_destroy"]; + options?: never; + head?: never; + patch: operations["saved_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/saved/{short_id}/regenerate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["saved_regenerate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/schema_property_groups/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["schema_property_groups_list"]; + put?: never; + post: operations["schema_property_groups_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/schema_property_groups/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["schema_property_groups_retrieve"]; + put: operations["schema_property_groups_update"]; + post?: never; + delete: operations["schema_property_groups_destroy"]; + options?: never; + head?: never; + patch: operations["schema_property_groups_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/sdk_doctor/report/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get SDK health report for a project + * @description Returns a pre-digested health assessment of the PostHog SDKs the project is using. Covers which SDKs are current vs outdated (smart-semver rules with grace periods and traffic-percentage thresholds), per-version breakdown, and a human-readable reason for each assessment. Use this to diagnose SDK version issues, surface upgrade recommendations, or check overall SDK health. + */ + get: operations["sdk_doctor_report_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/session_group_summaries/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description API for retrieving and managing stored group session summaries. */ + get: operations["session_group_summaries_list"]; + put?: never; + /** @description API for retrieving and managing stored group session summaries. */ + post: operations["session_group_summaries_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/session_group_summaries/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description API for retrieving and managing stored group session summaries. */ + get: operations["session_group_summaries_retrieve"]; + /** @description API for retrieving and managing stored group session summaries. */ + put: operations["session_group_summaries_update"]; + post?: never; + /** @description API for retrieving and managing stored group session summaries. */ + delete: operations["session_group_summaries_destroy"]; + options?: never; + head?: never; + /** @description API for retrieving and managing stored group session summaries. */ + patch: operations["session_group_summaries_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/session_recording_playlists/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Override list to include synthetic playlists */ + get: operations["session_recording_playlists_list"]; + put?: never; + post: operations["session_recording_playlists_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/session_recording_playlists/{short_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["session_recording_playlists_retrieve"]; + put: operations["session_recording_playlists_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["session_recording_playlists_destroy"]; + options?: never; + head?: never; + patch: operations["session_recording_playlists_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/session_recording_playlists/{short_id}/recordings/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["session_recording_playlists_recordings_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/session_recording_playlists/{short_id}/recordings/{session_recording_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["session_recording_playlists_recordings_create"]; + delete: operations["session_recording_playlists_recordings_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/session_recordings/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["session_recordings_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/session_recordings/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["session_recordings_retrieve"]; + put: operations["session_recordings_update"]; + post?: never; + delete: operations["session_recordings_destroy"]; + options?: never; + head?: never; + patch: operations["session_recordings_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/session_recordings/{recording_id}/sharing/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["session_recordings_sharing_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/session_recordings/{recording_id}/sharing/passwords/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create a new password for the sharing configuration. */ + post: operations["session_recordings_sharing_passwords_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/session_recordings/{recording_id}/sharing/passwords/{password_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** @description Delete a password from the sharing configuration. */ + delete: operations["session_recordings_sharing_passwords_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/session_recordings/{recording_id}/sharing/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["session_recordings_sharing_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/sessions/property_definitions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["sessions_property_definitions_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/sessions/values/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["sessions_values_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/signals/processing/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Return current processing state including pause status. */ + get: operations["signals_processing_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/signals/processing/pause/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + /** @description View and control signal processing pipeline state for a team. */ + put: operations["signals_processing_pause_update"]; + post?: never; + /** @description View and control signal processing pipeline state for a team. */ + delete: operations["signals_processing_pause_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/signals/reports/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["signals_reports_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/signals/reports/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["signals_reports_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/signals/source_configs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["signals_source_configs_list"]; + put?: never; + post: operations["signals_source_configs_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/signals/source_configs/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["signals_source_configs_retrieve"]; + put: operations["signals_source_configs_update"]; + post?: never; + delete: operations["signals_source_configs_destroy"]; + options?: never; + head?: never; + patch: operations["signals_source_configs_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/subscriptions/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["subscriptions_list"]; + put?: never; + post: operations["subscriptions_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/subscriptions/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["subscriptions_retrieve"]; + put: operations["subscriptions_update"]; + post?: never; + /** @description Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true */ + delete: operations["subscriptions_destroy"]; + options?: never; + head?: never; + patch: operations["subscriptions_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/subscriptions/{id}/test-delivery/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["subscriptions_test_delivery_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/subscriptions/summary_quota/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["subscriptions_summary_quota_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/surveys/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["surveys_list"]; + put?: never; + post: operations["surveys_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/surveys/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["surveys_retrieve"]; + put: operations["surveys_update"]; + post?: never; + delete: operations["surveys_destroy"]; + options?: never; + head?: never; + patch: operations["surveys_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/surveys/{id}/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["surveys_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/surveys/{id}/archived-response-uuids/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Get list of archived response UUIDs for HogQL filtering. + * + * Returns list of UUIDs that the frontend can use to filter out archived responses + * in HogQL queries. + */ + get: operations["surveys_archived_response_uuids_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/surveys/{id}/duplicate_to_projects/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Duplicate a survey to multiple projects in a single transaction. + * + * Accepts a list of target team IDs and creates a copy of the survey in each project. + * Uses an all-or-nothing approach - if any duplication fails, all changes are rolled back. + */ + post: operations["surveys_duplicate_to_projects_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/surveys/{id}/generate_translations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["surveys_generate_translations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/surveys/{id}/responses/{response_uuid}/archive/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Archive a single survey response. */ + post: operations["surveys_responses_archive_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/surveys/{id}/responses/{response_uuid}/unarchive/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Unarchive a single survey response. */ + post: operations["surveys_responses_unarchive_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/surveys/{id}/stats/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Get survey response statistics for a specific survey. + * + * Args: + * date_from: Optional ISO timestamp for start date (e.g. 2024-01-01T00:00:00Z) + * date_to: Optional ISO timestamp for end date (e.g. 2024-01-31T23:59:59Z) + * exclude_archived: Optional boolean to exclude archived responses (default: false, includes archived) + * + * Returns: + * Survey statistics including event counts, unique respondents, and conversion rates + */ + get: operations["surveys_stats_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/surveys/{id}/summarize_responses/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["surveys_summarize_responses_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/surveys/{id}/summary_headline/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["surveys_summary_headline_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/surveys/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["surveys_all_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/surveys/responses_count/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Get response counts for all surveys. + * + * Args: + * exclude_archived: Optional boolean to exclude archived responses (default: false, includes archived) + * survey_ids: Optional comma-separated list of survey IDs to filter by + * + * Returns: + * Dictionary mapping survey IDs to response counts + */ + get: operations["surveys_responses_count_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/surveys/stats/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Get aggregated response statistics across all surveys. + * + * Args: + * date_from: Optional ISO timestamp for start date (e.g. 2024-01-01T00:00:00Z) + * date_to: Optional ISO timestamp for end date (e.g. 2024-01-31T23:59:59Z) + * + * Returns: + * Aggregated statistics across all surveys including total counts and rates + */ + get: operations["surveys_global_stats_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/task_automations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["task_automations_list"]; + put?: never; + post: operations["task_automations_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/task_automations/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["task_automations_retrieve"]; + put: operations["task_automations_update"]; + post?: never; + delete: operations["task_automations_destroy"]; + options?: never; + head?: never; + patch: operations["task_automations_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/task_automations/{id}/run/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["task_automations_run_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List tasks + * @description Get a list of tasks for the current project, with optional filtering by origin product, stage, organization, repository, and created_by. + */ + get: operations["tasks_list"]; + put?: never; + /** @description API for managing tasks within a project. Tasks represent units of work to be performed by an agent. */ + post: operations["tasks_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description API for managing tasks within a project. Tasks represent units of work to be performed by an agent. */ + get: operations["tasks_retrieve"]; + /** @description API for managing tasks within a project. Tasks represent units of work to be performed by an agent. */ + put: operations["tasks_update"]; + post?: never; + /** @description API for managing tasks within a project. Tasks represent units of work to be performed by an agent. */ + delete: operations["tasks_destroy"]; + options?: never; + head?: never; + /** @description API for managing tasks within a project. Tasks represent units of work to be performed by an agent. */ + patch: operations["tasks_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{id}/run/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Run task + * @description Create a new task run and kick off the workflow. + */ + post: operations["tasks_run_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{id}/staged_artifacts/finalize_upload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Finalize staged direct uploads for task attachments + * @description Verify staged S3 uploads and cache their metadata so they can be attached to the next run created for this task. + */ + post: operations["tasks_staged_artifacts_finalize_upload_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{id}/staged_artifacts/prepare_upload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Prepare staged direct uploads for task attachments + * @description Reserve S3 object keys for task attachments before creating a new run and return presigned POST forms for direct uploads. + */ + post: operations["tasks_staged_artifacts_prepare_upload_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List task runs + * @description Get a list of runs for a specific task. + */ + get: operations["tasks_runs_list"]; + put?: never; + /** + * Create task run + * @description Create a new run for a specific task without starting execution. + */ + post: operations["tasks_runs_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description API for managing task runs. Each run represents an execution of a task. */ + get: operations["tasks_runs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** + * Update task run + * @description API for managing task runs. Each run represents an execution of a task. + */ + patch: operations["tasks_runs_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/append_log/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Append log entries + * @description Append one or more log entries to the task run log array + */ + post: operations["tasks_runs_append_log_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Upload artifacts for a task run + * @description Persist task artifacts to S3 and attach them to the run manifest. + */ + post: operations["tasks_runs_artifacts_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/download/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Download an artifact through the backend + * @description Streams artifact content for a task run artifact after validating that it belongs to the run. + */ + post: operations["tasks_runs_artifacts_download_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/finalize_upload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Finalize direct uploads for task run artifacts + * @description Verify directly uploaded S3 objects and attach them to the run artifact manifest. + */ + post: operations["tasks_runs_artifacts_finalize_upload_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/prepare_upload/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Prepare direct uploads for task run artifacts + * @description Reserve S3 object keys for task artifacts and return presigned POST forms for direct uploads. + */ + post: operations["tasks_runs_artifacts_prepare_upload_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/presign/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Generate presigned URL for an artifact + * @description Returns a temporary, signed URL that can be used to download a specific artifact. + */ + post: operations["tasks_runs_artifacts_presign_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/command/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Send command to task run + * @description Queue user_message JSON-RPC commands through the task workflow and forward sandbox control commands to the agent server. Supports user_message, cancel, close, permission_response, and set_config_option commands. + */ + post: operations["tasks_runs_command_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/connection_token/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get sandbox connection token + * @description Generate a JWT token for direct connection to the sandbox. Valid for 24 hours. + */ + get: operations["tasks_runs_connection_token_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get task run logs + * @description Fetch the logs for a task run as JSONL. If the run resumes from another (state.resume_from_run_id), each ancestor's log is concatenated first (oldest ancestor → ... → this run) so resume consumers see a single continuous history and can find the most recent git_checkpoint event regardless of which run emitted it. + */ + get: operations["tasks_runs_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/relay_message/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Relay run message to Slack + * @description Queue a Slack relay workflow to post a run message into the mapped Slack thread. + */ + post: operations["tasks_runs_relay_message_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/resume_in_cloud/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Resume task run in cloud + * @description Resume an existing task run in a cloud sandbox. Terminates any existing workflow and starts a new one. + */ + post: operations["tasks_runs_resume_in_cloud_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/session_logs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get filtered task run session logs + * @description Fetch session log entries for a task run with optional filtering by timestamp, event type, and limit. + */ + get: operations["tasks_runs_session_logs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/set_output/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** + * Set run output + * @description Update the output field for a task run (e.g., PR URL, commit SHA, etc.) + */ + patch: operations["tasks_runs_set_output_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/start/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Start task run + * @description Start an existing cloud run after any initial run-scoped attachments have been uploaded. + */ + post: operations["tasks_runs_start_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/{task_id}/runs/{id}/stream/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description API for managing task runs. Each run represents an execution of a task. */ + get: operations["tasks_runs_stream_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/repositories/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List distinct task repositories + * @description Return the set of repositories referenced by non-deleted, non-internal tasks in the current project. Used to populate repository filter pickers without being constrained by task list pagination. + */ + get: operations["tasks_repositories_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/repository_readiness/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get repository readiness + * @description Get autonomy readiness details for a specific repository in the current project. + */ + get: operations["tasks_repository_readiness_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/tasks/summaries/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Fetch task summaries by ID + * @description Returns summary for the requested tasks: `id`, `title`, `repository`, `created_at`, `updated_at`, and the latest run's `status` and `environment`. + */ + post: operations["tasks_summaries_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/uploaded_media/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description When object storage is available this API allows upload of media which can be used, for example, in text cards on dashboards. + * + * Uploaded media must have a content type beginning with 'image/' and be less than 4MB. + */ + post: operations["uploaded_media_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/repos/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List all projects for the team. */ + get: operations["visual_review_repos_list"]; + put?: never; + /** @description Create a new repo. */ + post: operations["visual_review_repos_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/repos/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get a repo by ID. */ + get: operations["visual_review_repos_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Update a repo's settings. */ + patch: operations["visual_review_repos_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/repos/{id}/baselines/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Snapshots overview for a repo: every identifier with a current baseline (latest non-superseded master/main run per run_type), plus tolerate counts, active quarantine state, and a 30-day stability sparkline. Capped at 5000 entries — sets `truncated` and returns the most recently active when exceeded. Filtering / faceting / search are all done client-side; this endpoint takes no filter query params. */ + get: operations["visual_review_repos_baselines_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/repos/{id}/quarantine/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List quarantined identifiers. Without filter: active only. With identifier: full history. */ + get: operations["visual_review_repos_quarantine_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/repos/{id}/quarantine/{run_type}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Quarantine a snapshot identifier for a specific run type. */ + post: operations["visual_review_repos_quarantine_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/repos/{id}/quarantine/{run_type}/expire/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Expire all active quarantine entries for an identifier. */ + post: operations["visual_review_repos_quarantine_expire_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/repos/{id}/thumbnails/{identifier}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Serve a snapshot thumbnail by identifier. Returns WebP with ETag caching. */ + get: operations["visual_review_repos_thumbnails_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/repos/{repo_id}/runs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List runs in this repo, optionally filtered by review state. */ + get: operations["visual_review_repos_runs_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/repos/{repo_id}/runs/counts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Review state counts for runs in this repo. */ + get: operations["visual_review_repos_runs_counts_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/repos/{repo_id}/snapshots/{run_type}/{identifier}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Deduped baseline timeline for a snapshot identity. Newest first. */ + get: operations["visual_review_repos_snapshots_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/runs/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List runs for the team, optionally filtered by review state, PR number, commit SHA, or branch. */ + get: operations["visual_review_runs_list"]; + put?: never; + /** @description Create a new run from a CI manifest. */ + post: operations["visual_review_runs_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/runs/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get run status and summary. */ + get: operations["visual_review_runs_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/runs/{id}/add-snapshots/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Add a batch of snapshots to a pending run (shard-based flow). */ + post: operations["visual_review_runs_add_snapshots_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/runs/{id}/approve/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Approve visual changes for snapshots in this run. + * + * With approve_all=true, approves all changed+new snapshots and returns + * signed baseline YAML. With specific snapshots, approves only those. + */ + post: operations["visual_review_runs_approve_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/runs/{id}/auto-approve/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @deprecated + * @description CLI auto-approve: approve all and return baseline YAML for local write. + */ + post: operations["visual_review_runs_auto_approve_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/runs/{id}/complete/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Complete a run: detect removals, verify uploads, trigger diff processing. */ + post: operations["visual_review_runs_complete_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/runs/{id}/recompute/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Re-evaluate quarantine and counts, update commit status, and optionally rerun the CI job. */ + post: operations["visual_review_runs_recompute_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/runs/{id}/snapshot-history/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Recent change history for a snapshot identifier across runs. */ + get: operations["visual_review_runs_snapshot_history_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/runs/{id}/snapshots/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get all snapshots for a run with diff results. */ + get: operations["visual_review_runs_snapshots_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/runs/{id}/tolerate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Mark a changed snapshot as a known tolerated alternate. */ + post: operations["visual_review_runs_tolerate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/runs/{id}/tolerated-hashes/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description List known tolerated hashes for a snapshot identifier. */ + get: operations["visual_review_runs_tolerated_hashes_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/visual_review/runs/counts/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Review state counts for the runs list. */ + get: operations["visual_review_runs_counts_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_dag/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Return this team's DAG as a set of edges and nodes */ + get: operations["warehouse_dag_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_model_paths/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["warehouse_model_paths_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_model_paths/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["warehouse_model_paths_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_queries/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + get: operations["warehouse_saved_queries_list"]; + put?: never; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + post: operations["warehouse_saved_queries_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_queries/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + get: operations["warehouse_saved_queries_retrieve"]; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + put: operations["warehouse_saved_queries_update"]; + post?: never; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + delete: operations["warehouse_saved_queries_destroy"]; + options?: never; + head?: never; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + patch: operations["warehouse_saved_queries_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_queries/{id}/activity/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + get: operations["warehouse_saved_queries_activity_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_queries/{id}/ancestors/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Return the ancestors of this saved query. + * + * By default, we return the immediate parents. The `level` parameter can be used to + * look further back into the ancestor tree. If `level` overshoots (i.e. points to only + * ancestors beyond the root), we return an empty list. + */ + post: operations["warehouse_saved_queries_ancestors_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_queries/{id}/cancel/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Cancel a running saved query workflow. */ + post: operations["warehouse_saved_queries_cancel_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_queries/{id}/dependencies/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Return the count of immediate upstream and downstream dependencies for this saved query. */ + get: operations["warehouse_saved_queries_dependencies_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_queries/{id}/descendants/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Return the descendants of this saved query. + * + * By default, we return the immediate children. The `level` parameter can be used to + * look further ahead into the descendants tree. If `level` overshoots (i.e. points to only + * descendants further than a leaf), we return an empty list. + */ + post: operations["warehouse_saved_queries_descendants_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_queries/{id}/materialize/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Enable materialization for this saved query with a 24-hour sync frequency. */ + post: operations["warehouse_saved_queries_materialize_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_queries/{id}/revert_materialization/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Undo materialization, revert back to the original view. + * (i.e. delete the materialized table and the schedule) + */ + post: operations["warehouse_saved_queries_revert_materialization_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_queries/{id}/run/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Run this saved query. */ + post: operations["warehouse_saved_queries_run_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_queries/{id}/run_history/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Return the recent run history (up to 5 most recent) for this materialized view. */ + get: operations["warehouse_saved_queries_run_history_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_queries/resume_schedules/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Resume paused materialization schedules for multiple matviews. + * + * Accepts a list of view IDs in the request body: {"view_ids": ["id1", "id2", ...]} + * This endpoint is idempotent - calling it on already running or non-existent schedules is safe. + */ + post: operations["warehouse_saved_queries_resume_schedules_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_query_folders/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["warehouse_saved_query_folders_list"]; + put?: never; + post: operations["warehouse_saved_query_folders_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_saved_query_folders/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["warehouse_saved_query_folders_retrieve"]; + put?: never; + post?: never; + delete: operations["warehouse_saved_query_folders_destroy"]; + options?: never; + head?: never; + patch: operations["warehouse_saved_query_folders_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_tables/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + get: operations["warehouse_tables_list"]; + put?: never; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + post: operations["warehouse_tables_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_tables/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + get: operations["warehouse_tables_retrieve"]; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + put: operations["warehouse_tables_update"]; + post?: never; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + delete: operations["warehouse_tables_destroy"]; + options?: never; + head?: never; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + patch: operations["warehouse_tables_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_tables/{id}/refresh_schema/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + post: operations["warehouse_tables_refresh_schema_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_tables/{id}/update_schema/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + post: operations["warehouse_tables_update_schema_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_tables/file/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create, Read, Update and Delete Warehouse Tables. */ + post: operations["warehouse_tables_file_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_view_link/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete View Columns. */ + get: operations["warehouse_view_link_list"]; + put?: never; + /** @description Create, Read, Update and Delete View Columns. */ + post: operations["warehouse_view_link_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_view_link/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete View Columns. */ + get: operations["warehouse_view_link_retrieve"]; + /** @description Create, Read, Update and Delete View Columns. */ + put: operations["warehouse_view_link_update"]; + post?: never; + /** @description Create, Read, Update and Delete View Columns. */ + delete: operations["warehouse_view_link_destroy"]; + options?: never; + head?: never; + /** @description Create, Read, Update and Delete View Columns. */ + patch: operations["warehouse_view_link_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_view_link/validate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create, Read, Update and Delete View Columns. */ + post: operations["warehouse_view_link_validate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_view_links/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete View Columns. */ + get: operations["warehouse_view_links_list"]; + put?: never; + /** @description Create, Read, Update and Delete View Columns. */ + post: operations["warehouse_view_links_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_view_links/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Create, Read, Update and Delete View Columns. */ + get: operations["warehouse_view_links_retrieve"]; + /** @description Create, Read, Update and Delete View Columns. */ + put: operations["warehouse_view_links_update"]; + post?: never; + /** @description Create, Read, Update and Delete View Columns. */ + delete: operations["warehouse_view_links_destroy"]; + options?: never; + head?: never; + /** @description Create, Read, Update and Delete View Columns. */ + patch: operations["warehouse_view_links_partial_update"]; + trace?: never; + }; + "/api/projects/{project_id}/warehouse_view_links/validate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Create, Read, Update and Delete View Columns. */ + post: operations["warehouse_view_links_validate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/web_experiments/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["web_experiments_list"]; + put?: never; + post: operations["web_experiments_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/projects/{project_id}/web_experiments/{id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["web_experiments_retrieve"]; + put: operations["web_experiments_update"]; + post?: never; + delete: operations["web_experiments_destroy"]; + options?: never; + head?: never; + patch: operations["web_experiments_partial_update"]; + trace?: never; + }; + "/api/public_hog_function_templates/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["public_hog_function_templates_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/user_home_settings/{uuid}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get the authenticated user's pinned sidebar tabs and configured homepage for the current team. Pass `@me` as the UUID. */ + get: operations["user_home_settings_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** @description Update the authenticated user's pinned sidebar tabs and/or homepage for the current team. Pass `@me` as the UUID. Send `tabs` to replace the pinned tab list, `homepage` to set the home destination (any PostHog URL — dashboard, insight, search results, scene). Either field may be omitted to leave it unchanged; sending `homepage: null` or `{}` clears the homepage. */ + patch: operations["user_home_settings_partial_update"]; + trace?: never; + }; + "/api/users/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["users_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{user_id}/signal_autonomy/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @description Per-user signal autonomy config (singleton keyed by user). + * + * GET /api/users//signal_autonomy/ → current config (or 404) + * POST /api/users//signal_autonomy/ → create or update + * DELETE /api/users//signal_autonomy/ → remove (opt out) + */ + get: operations["users_signal_autonomy_retrieve"]; + put?: never; + /** + * @description Per-user signal autonomy config (singleton keyed by user). + * + * GET /api/users//signal_autonomy/ → current config (or 404) + * POST /api/users//signal_autonomy/ → create or update + * DELETE /api/users//signal_autonomy/ → remove (opt out) + */ + post: operations["users_signal_autonomy_create"]; + /** + * @description Per-user signal autonomy config (singleton keyed by user). + * + * GET /api/users//signal_autonomy/ → current config (or 404) + * POST /api/users//signal_autonomy/ → create or update + * DELETE /api/users//signal_autonomy/ → remove (opt out) + */ + delete: operations["users_signal_autonomy_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Retrieve a user's profile and settings. Pass `@me` as the UUID to fetch the authenticated user; non-staff callers may only access their own account. */ + get: operations["users_retrieve"]; + /** @description Replace the authenticated user's profile and settings. Pass `@me` as the UUID to update the authenticated user. Prefer the PATCH endpoint for partial updates — PUT requires every writable field to be provided. */ + put: operations["users_update"]; + post?: never; + delete: operations["users_destroy"]; + options?: never; + head?: never; + /** @description Update one or more of the authenticated user's profile fields or settings. */ + patch: operations["users_partial_update"]; + trace?: never; + }; + "/api/users/{uuid}/github_login/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["users_github_login_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/hedgehog_config/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["users_hedgehog_config_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["users_hedgehog_config_partial_update"]; + trace?: never; + }; + "/api/users/{uuid}/integrations/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List personal GitHub integrations + * @description `/api/users/@me/integrations/` — manage the user's personal GitHub integrations. + */ + get: operations["users_integrations_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/integrations/github/{installation_id}/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** + * Disconnect a personal GitHub integration + * @description Remove a specific GitHub installation by its installation_id. + */ + delete: operations["users_integrations_github_destroy"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/integrations/github/{installation_id}/branches/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List branches for a personal GitHub installation repository + * @description List branches for a repository accessible to a personal GitHub installation. + */ + get: operations["users_integrations_github_branches_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/integrations/github/{installation_id}/repos/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List repositories for a personal GitHub installation + * @description List repositories accessible to a specific GitHub installation (paginated, cached). + */ + get: operations["users_integrations_github_repos_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/integrations/github/{installation_id}/repos/refresh/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Refresh repositories for a personal GitHub installation + * @description Refresh repositories accessible to a specific GitHub installation. + */ + post: operations["users_integrations_github_repos_refresh_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/integrations/github/start/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Start GitHub personal integration linking + * @description Start GitHub linking: either full App install or OAuth-only (user-to-server). + * + * ``**_kwargs`` absorbs ``parent_lookup_uuid`` from the nested + * ``/api/users/{uuid}/integrations/`` router (same pattern as ``local_evaluation`` + * under projects). + * + * Usually returns ``install_url`` pointing at ``/installations/new`` so the + * user can pick any GitHub org (new or already connected). GitHub's install + * page handles both cases: orgs where the app is installed show "Configure" + * (no admin needed), orgs where it isn't show "Install" (needs admin). + * + * **PostHog Code fast path:** when ``connect_from`` is ``"posthog_code"``, + * the current project already has a team-level GitHub installation, and the + * user has no ``UserIntegration`` for that installation yet, we skip the org + * picker and redirect straight to ``/login/oauth/authorize`` so the user + * only authorizes themselves and returns to PostHog Code immediately. + * + * In both cases the response key is ``install_url`` for compatibility with callers. + */ + post: operations["users_integrations_github_start_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/onboarding/skip/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * @description Mark the current user as having exited onboarding with a non-delegated reason. + * Idempotent: the skip timestamp is only set on the first successful call. + * + * Callers wanting to delegate setup to a teammate must use the dedicated + * /organizations/{id}/invites/delegate/ endpoint, which atomically creates the + * invite and sets reason="delegated". This endpoint rejects that reason so state + * can't be faked without a real invite. + */ + post: operations["users_onboarding_skip_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/scene_personalisation/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["users_scene_personalisation_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/start_2fa_setup/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["users_start_2fa_setup_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/two_factor_backup_codes/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Generate new backup codes, invalidating any existing ones */ + post: operations["users_two_factor_backup_codes_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/two_factor_disable/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** @description Disable 2FA and remove all related devices */ + post: operations["users_two_factor_disable_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/two_factor_start_setup/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["users_two_factor_start_setup_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/two_factor_status/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Get current 2FA status including backup codes if enabled */ + get: operations["users_two_factor_status_retrieve"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/two_factor_validate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["users_two_factor_validate_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/{uuid}/validate_2fa/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["users_validate_2fa_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/cancel_email_change_request/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["users_cancel_email_change_request_partial_update"]; + trace?: never; + }; + "/api/users/request_email_verification/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["users_request_email_verification_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/users/verify_email/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["users_verify_email_create"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: { + /** + * AIEventType + * @enum {string} + */ + AIEventType: "$ai_generation" | "$ai_embedding" | "$ai_span" | "$ai_trace" | "$ai_metric" | "$ai_feedback" | "$ai_evaluation" | "$ai_tag" | "$ai_trace_summary" | "$ai_generation_summary" | "$ai_trace_clusters" | "$ai_generation_clusters"; + /** + * @description * `warehouse` - warehouse + * * `direct` - direct + * @enum {string} + */ + AccessMethodEnum: "warehouse" | "direct"; + /** @description Serializer mixin that handles tags for objects. */ + Action: { + readonly id: number; + /** @description Name of the action (must be unique within the project). */ + name?: string | null; + /** @description Human-readable description of what this action represents. */ + description?: string; + tags?: unknown[]; + /** @description Whether to post a notification to Slack when this action is triggered. */ + post_to_slack?: boolean; + /** @description Custom Slack message format. Supports templates with event properties. */ + slack_message_format?: string; + /** @description Action steps defining trigger conditions. Each step matches events by name, properties, URL, or element attributes. Multiple steps are OR-ed together. */ + steps?: components["schemas"]["ActionStepJSON"][]; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + deleted?: boolean; + readonly is_calculating: boolean; + /** Format: date-time */ + last_calculated_at?: string; + readonly team_id: number; + /** @default true */ + readonly is_action: boolean; + readonly bytecode_error: string | null; + /** + * Format: date-time + * @description ISO 8601 timestamp when the action was pinned, or null if not pinned. Set any value to pin, null to unpin. + */ + pinned_at?: string | null; + readonly creation_context: string | null; + /** create in folder */ + _create_in_folder?: string; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + }; + /** ActionConversionGoal */ + ActionConversionGoal: { + /** Actionid */ + actionId: number; + }; + /** + * @description * `add` - add + * * `remove` - remove + * * `set` - set + * @enum {string} + */ + ActionEnum: "add" | "remove" | "set"; + ActionReference: { + /** @description Resource type: insight, experiment, cohort, or hog_function */ + type: string; + /** @description Resource ID (integer or UUID depending on type) */ + id: string; + /** @description Resource name */ + name: string; + /** @description Relative URL to the resource */ + url: string; + /** + * Format: date-time + * @description When the resource was created + */ + created_at: string | null; + /** @description User who created the resource */ + created_by: components["schemas"]["UserBasic"] | null; + }; + ActionStepJSON: { + /** @description Event name to match (e.g. '$pageview', '$autocapture', or a custom event name). */ + event?: string | null; + /** @description Event or person property filters. Each item should have 'key' (string), 'value' (string, number, boolean, or array), optional 'operator' (exact, is_not, is_set, is_not_set, icontains, not_icontains, regex, not_regex, gt, gte, lt, lte), and optional 'type' (event, person). */ + properties?: components["schemas"]["ActionStepPropertyFilter"][] | null; + /** @description CSS selector to match the target element (e.g. 'div > button.cta'). */ + selector?: string | null; + readonly selector_regex: string | null; + /** @description HTML tag name to match (e.g. "button", "a", "input"). */ + tag_name?: string | null; + /** @description Element text content to match. */ + text?: string | null; + /** + * @description How to match the text value. Defaults to exact. + * + * * `contains` - contains + * * `regex` - regex + * * `exact` - exact + */ + text_matching?: components["schemas"]["ActionStepMatchingEnum"] | components["schemas"]["NullEnum"]; + /** @description Link href attribute to match. */ + href?: string | null; + /** + * @description How to match the href value. Defaults to exact. + * + * * `contains` - contains + * * `regex` - regex + * * `exact` - exact + */ + href_matching?: components["schemas"]["ActionStepMatchingEnum"] | components["schemas"]["NullEnum"]; + /** @description Page URL to match. */ + url?: string | null; + /** + * @description How to match the URL value. Defaults to contains. + * + * * `contains` - contains + * * `regex` - regex + * * `exact` - exact + */ + url_matching?: components["schemas"]["ActionStepMatchingEnum"] | components["schemas"]["NullEnum"]; + }; + /** + * @description * `contains` - contains + * * `regex` - regex + * * `exact` - exact + * @enum {string} + */ + ActionStepMatchingEnum: "contains" | "regex" | "exact"; + ActionStepPropertyFilter: components["schemas"]["StringPropertyFilter"] | components["schemas"]["NumericPropertyFilter"] | components["schemas"]["ArrayPropertyFilter"] | components["schemas"]["DatePropertyFilter"] | components["schemas"]["ExistencePropertyFilter"]; + /** ActionsNode */ + ActionsNode: { + /** + * Custom Name + * @default null + */ + custom_name: string | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** Id */ + id: number; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "ActionsNode"; + /** + * Math + * @default null + */ + math: components["schemas"]["BaseMathType"] | components["schemas"]["FunnelMathType"] | components["schemas"]["PropertyMathType"] | components["schemas"]["CountPerActorMathType"] | components["schemas"]["ExperimentMetricMathType"] | components["schemas"]["CalendarHeatmapMathType"] | "unique_group" | "hogql" | null; + /** @default null */ + math_group_type_index: components["schemas"]["MathGroupTypeIndex"] | null; + /** + * Math Hogql + * @default null + */ + math_hogql: string | null; + /** + * Math Multiplier + * @default null + */ + math_multiplier: number | null; + /** + * Math Property + * @default null + */ + math_property: string | null; + /** @default null */ + math_property_revenue_currency: components["schemas"]["RevenueCurrencyPropertyConfig"] | null; + /** + * Math Property Type + * @default null + */ + math_property_type: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Optionalinfunnel + * @default null + */ + optionalInFunnel: boolean | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ActionsPie */ + ActionsPie: { + /** + * Disablehoveroffset + * @default null + */ + disableHoverOffset: boolean | null; + /** + * Hideaggregation + * @default null + */ + hideAggregation: boolean | null; + }; + /** @description Schema for a single active breakpoint */ + ActiveBreakpoint: { + /** + * Format: uuid + * @description Unique identifier for the breakpoint + */ + id: string; + /** @description Repository identifier (e.g., 'PostHog/posthog') */ + repository?: string | null; + /** @description File path where the breakpoint is set */ + filename: string; + /** @description Line number of the breakpoint */ + line_number: number; + /** @description Whether the breakpoint is enabled */ + enabled: boolean; + /** @description Optional condition for the breakpoint */ + condition?: string | null; + }; + /** @description Response schema for active breakpoints endpoint */ + ActiveBreakpointsResponse: { + /** @description List of active breakpoints */ + breakpoints: components["schemas"]["ActiveBreakpoint"][]; + }; + ActivityLog: { + /** Format: uuid */ + readonly id: string; + user: components["schemas"]["UserBasic"]; + /** @description is the date of this log item newer than the user's bookmark */ + readonly unread: boolean; + team_id?: number | null; + /** Format: uuid */ + organization_id?: string | null; + was_impersonated?: boolean | null; + is_system?: boolean | null; + client?: string | null; + activity: string; + item_id?: string | null; + scope: string; + detail?: unknown; + /** Format: date-time */ + created_at?: string; + }; + ActivityLogEntry: { + /** Format: uuid */ + readonly id: string; + readonly user: Record | null; + readonly activity: string; + readonly scope: string; + readonly item_id: string; + detail?: components["schemas"]["Detail"]; + /** Format: date-time */ + readonly created_at: string; + }; + /** @description Response shape for paginated activity log endpoints. */ + ActivityLogPaginatedResponse: { + results: components["schemas"]["ActivityLogEntry"][]; + /** Format: uri */ + next: string | null; + /** Format: uri */ + previous: string | null; + total_count: number; + }; + /** ActorsPropertyTaxonomyQuery */ + ActorsPropertyTaxonomyQuery: { + /** + * Grouptypeindex + * @default null + */ + groupTypeIndex: number | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "ActorsPropertyTaxonomyQuery"; + /** + * Maxpropertyvalues + * @default null + */ + maxPropertyValues: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Properties */ + properties: string[]; + /** @default null */ + response: components["schemas"]["ActorsPropertyTaxonomyQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ActorsPropertyTaxonomyQueryResponse */ + ActorsPropertyTaxonomyQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["ActorsPropertyTaxonomyResponse"] | components["schemas"]["ActorsPropertyTaxonomyResponse"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** ActorsPropertyTaxonomyResponse */ + ActorsPropertyTaxonomyResponse: { + /** Sample Count */ + sample_count: number; + /** Sample Values */ + sample_values: (string | number | boolean)[]; + }; + /** ActorsQuery */ + ActorsQuery: { + /** + * Fixedproperties + * @description Currently only person filters supported. No filters for querying groups. See `filter_conditions()` in actor_strategies.py. + * @default null + */ + fixedProperties: (components["schemas"]["PersonPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"])[] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "ActorsQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * Orderby + * @default null + */ + orderBy: string[] | null; + /** + * Properties + * @description Currently only person filters supported. No filters for querying groups. See `filter_conditions()` in actor_strategies.py. + * @default null + */ + properties: (components["schemas"]["PersonPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"])[] | components["schemas"]["PropertyGroupFilterValue"] | null; + /** @default null */ + response: components["schemas"]["ActorsQueryResponse"] | null; + /** + * Search + * @default null + */ + search: string | null; + /** + * Select + * @default null + */ + select: string[] | null; + /** + * Source + * @default null + */ + source: components["schemas"]["InsightActorsQuery"] | components["schemas"]["FunnelsActorsQuery"] | components["schemas"]["FunnelCorrelationActorsQuery"] | components["schemas"]["ExperimentActorsQuery"] | components["schemas"]["StickinessActorsQuery"] | components["schemas"]["HogQLQuery"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ActorsQueryResponse */ + ActorsQueryResponse: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** Limit */ + limit: number; + /** + * Missing Actors Count + * @default null + */ + missing_actors_count: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Offset */ + offset: number; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: string[] | null; + }; + AddSnapshotsInput: { + snapshots: components["schemas"]["SnapshotManifestItem"][]; + baseline_hashes?: { + [key: string]: string; + }; + }; + AddSnapshotsResult: { + added: number; + uploads: components["schemas"]["UploadTarget"][]; + }; + /** + * @description * `product_analytics` - product_analytics + * * `sql` - sql + * * `session_replay` - session_replay + * * `error_tracking` - error_tracking + * * `plan` - plan + * * `execution` - execution + * * `survey` - survey + * * `research` - research + * * `flags` - flags + * * `llm_analytics` - llm_analytics + * * `sandbox` - sandbox + * @enum {string} + */ + AgentModeEnum: "product_analytics" | "sql" | "session_replay" | "error_tracking" | "plan" | "execution" | "survey" | "research" | "flags" | "llm_analytics" | "sandbox"; + /** AggregatedSpanRow */ + AggregatedSpanRow: { + /** Avg Duration Nano */ + avg_duration_nano: number; + /** Count */ + count: number; + /** Error Count */ + error_count: number; + /** Name */ + name: string; + /** P50 Duration Nano */ + p50_duration_nano: number; + /** P95 Duration Nano */ + p95_duration_nano: number; + /** Service Name */ + service_name: string; + /** Total Duration Nano */ + total_duration_nano: number; + }; + /** + * AggregationAxisFormat + * @enum {string} + */ + AggregationAxisFormat: "numeric" | "duration" | "duration_ms" | "percentage" | "percentage_scaled" | "currency" | "short"; + /** + * AggregationPropertyType1 + * @enum {string} + */ + AggregationPropertyType1: "event" | "person" | "data_warehouse"; + /** + * AggregationType + * @enum {string} + */ + AggregationType: "count" | "sum" | "avg"; + Alert: { + /** Format: uuid */ + readonly id: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** @description Insight ID monitored by this alert. Note: Response returns full InsightBasicSerializer object. */ + insight: number; + /** @description Human-readable name for the alert. */ + name?: string; + /** @description User IDs to subscribe to this alert. Note: Response returns full UserBasicSerializer object. */ + subscribed_users: number[]; + /** @description Threshold configuration with bounds and type for evaluating the alert. */ + threshold: components["schemas"]["Threshold"]; + /** @description Alert condition type. Determines how the value is evaluated: absolute_value, relative_increase, or relative_decrease. */ + condition?: components["schemas"]["AlertCondition"] | null; + /** @description Current alert state: Firing, Not firing, Errored, or Snoozed. */ + readonly state: string; + /** @description Whether the alert is actively being evaluated. */ + enabled?: boolean; + /** Format: date-time */ + readonly last_notified_at: string | null; + /** Format: date-time */ + readonly last_checked_at: string | null; + /** Format: date-time */ + readonly next_check_at: string | null; + /** @description Alert check results. By default returns the last 5. Use checks_date_from and checks_date_to (e.g. '-24h', '-7d') to get checks within a time window, checks_limit to cap how many are returned (default 5, max 500), and checks_offset to skip the newest N checks for pagination (0-based). Newest checks first. Only populated on retrieve. */ + readonly checks: components["schemas"]["AlertCheck"][]; + /** @description Total alert checks matching the retrieve filters (date window). Only set on alert retrieve; omitted otherwise. */ + readonly checks_total: number | null; + /** @description Trends-specific alert configuration. Includes series_index (which series to monitor) and check_ongoing_interval (whether to check the current incomplete interval). */ + config?: components["schemas"]["TrendsAlertConfig"] | null; + detector_config?: components["schemas"]["DetectorConfig"] | null; + /** + * @description How often the alert is checked: hourly, daily, weekly, or monthly. + * + * * `hourly` - hourly + * * `daily` - daily + * * `weekly` - weekly + * * `monthly` - monthly + */ + calculation_interval?: components["schemas"]["CalculationIntervalEnum"]; + /** @description Snooze the alert until this time. Pass a relative date string (e.g. '2h', '1d') or null to unsnooze. */ + snoozed_until?: string | null; + /** @description Skip alert evaluation on weekends (Saturday and Sunday, local to project timezone). */ + skip_weekend?: boolean | null; + /** @description Blocked local time windows (HH:MM in the project timezone). Interval is half-open [start, end): start inclusive, end exclusive. Use blocked_windows array of {start, end}. Null disables. */ + schedule_restriction?: components["schemas"]["AlertScheduleRestriction"] | null; + /** + * Format: double + * @description The last calculated value from the most recent alert check. + */ + readonly last_value: number | null; + /** @description When enabled, an investigation agent runs on the state transition to firing and writes findings to a Notebook linked from the alert check. Only effective for detector-based (anomaly) alerts. */ + investigation_agent_enabled?: boolean; + /** @description When enabled (and investigation_agent_enabled is on), notification dispatch is held until the investigation agent produces a verdict. Notifications are suppressed when the verdict is false_positive (and optionally when inconclusive). A safety-net task force-fires after a few minutes if the investigation stalls. */ + investigation_gates_notifications?: boolean; + /** + * @description How to handle an 'inconclusive' verdict when notifications are gated. 'notify' is the safe default — an agent that can't be sure is itself useful signal. + * + * * `notify` - Notify + * * `suppress` - Suppress + */ + investigation_inconclusive_action?: components["schemas"]["InvestigationInconclusiveActionEnum"]; + }; + AlertCheck: { + /** Format: uuid */ + readonly id: string; + /** Format: date-time */ + readonly created_at: string; + /** Format: double */ + readonly calculated_value: number | null; + readonly state: components["schemas"]["AlertCheckStateEnum"]; + readonly targets_notified: boolean; + readonly anomaly_scores: unknown; + readonly triggered_points: unknown; + readonly triggered_dates: unknown; + readonly interval: string | null; + readonly triggered_metadata: unknown; + readonly investigation_status: components["schemas"]["InvestigationStatusEnum"] | components["schemas"]["NullEnum"]; + readonly investigation_verdict: components["schemas"]["InvestigationVerdictEnum"] | components["schemas"]["NullEnum"]; + readonly investigation_summary: string | null; + /** @description Short ID of the Notebook produced by the investigation agent, when the agent ran for this check. */ + readonly investigation_notebook_short_id: string | null; + /** Format: date-time */ + readonly notification_sent_at: string | null; + readonly notification_suppressed_by_agent: boolean; + }; + /** + * @description * `Firing` - Firing + * * `Not firing` - Not firing + * * `Errored` - Errored + * * `Snoozed` - Snoozed + * @enum {string} + */ + AlertCheckStateEnum: "Firing" | "Not firing" | "Errored" | "Snoozed"; + /** AlertCondition */ + AlertCondition: { + type: components["schemas"]["AlertConditionType"]; + }; + /** + * AlertConditionType + * @enum {string} + */ + AlertConditionType: "absolute_value" | "relative_increase" | "relative_decrease"; + /** AlertScheduleRestriction */ + AlertScheduleRestriction: { + /** + * Blocked Windows + * @description Blocked local time windows when the alert must not run. Overlapping or identical windows are merged when saved. At most five windows before normalization; empty array clears quiet hours. + */ + blocked_windows: components["schemas"]["AlertScheduleRestrictionWindow"][]; + }; + /** AlertScheduleRestrictionWindow */ + AlertScheduleRestrictionWindow: { + /** + * Start + * @description Start time HH:MM (24-hour, project timezone). Inclusive. Each window must span ≥ 30 minutes on the local daily timeline (half-open [start, end)). + */ + start: string; + /** + * End + * @description End time HH:MM (24-hour). Exclusive (half-open interval). Each window must span ≥ 30 minutes locally. + */ + end: string; + }; + AlertSimulate: { + /** @description Insight ID to simulate the detector on. */ + insight: number; + /** @description Detector configuration to simulate. */ + detector_config: components["schemas"]["DetectorConfig"]; + /** + * @description Zero-based index of the series to analyze. + * @default 0 + */ + series_index: number; + /** @description Relative date string for how far back to simulate (e.g. '-24h', '-30d', '-4w'). If not provided, uses the detector's minimum required samples. */ + date_from?: string | null; + }; + AlertSimulateResponse: { + /** @description Data values for each point. */ + data: number[]; + /** @description Date labels for each point. */ + dates: string[]; + /** @description Anomaly score for each point (null if insufficient data). */ + scores: (number | null)[]; + /** @description Indices of points flagged as anomalies. */ + triggered_indices: number[]; + /** @description Dates of points flagged as anomalies. */ + triggered_dates: string[]; + /** @description Interval of the trends query (hour, day, week, month). */ + interval: string | null; + /** @description Total number of data points analyzed. */ + total_points: number; + /** @description Number of anomalies detected. */ + anomaly_count: number; + /** @description Per-sub-detector scores for ensemble detectors. Each entry has 'type' and 'scores' fields. */ + sub_detector_scores?: { + [key: string]: unknown; + }[]; + /** @description Per-breakdown-value simulation results. Present only when the insight has breakdowns (up to 25 values). */ + breakdown_results?: components["schemas"]["BreakdownSimulationResult"][]; + }; + Annotation: { + readonly id: number; + /** @description Annotation text shown on charts to describe the change, release, or incident. */ + content?: string | null; + /** + * Format: date-time + * @description When this annotation happened (ISO 8601 timestamp). Used to position it on charts. + */ + date_marker?: string | null; + /** + * @description Who created this annotation. Use `USR` for user-created notes and `GIT` for bot/deployment notes. + * + * * `USR` - user + * * `GIT` - GitHub + */ + creation_type?: components["schemas"]["CreationTypeEnum"]; + dashboard_item?: number | null; + dashboard_id?: number | null; + readonly dashboard_name: string | null; + readonly insight_short_id: string | null; + readonly insight_name: string | null; + readonly insight_derived_name: string | null; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string | null; + /** Format: date-time */ + readonly updated_at: string; + /** @description Soft-delete flag. Set to true to hide the annotation, or false to restore it. */ + deleted?: boolean; + /** + * @description Annotation visibility scope: `project`, `organization`, `dashboard`, or `dashboard_item`. `recording` is deprecated and rejected. + * + * * `dashboard_item` - insight + * * `dashboard` - dashboard + * * `project` - project + * * `organization` - organization + * * `recording` - recording + */ + scope?: components["schemas"]["AnnotationScopeEnum"]; + }; + /** + * @description * `dashboard_item` - insight + * * `dashboard` - dashboard + * * `project` - project + * * `organization` - organization + * * `recording` - recording + * @enum {string} + */ + AnnotationScopeEnum: "dashboard_item" | "dashboard" | "project" | "organization" | "recording"; + AppMetricSeries: { + name: string; + values: number[]; + }; + AppMetricsResponse: { + labels: string[]; + series: components["schemas"]["AppMetricSeries"][]; + }; + AppMetricsTotalsResponse: { + totals: { + [key: string]: number; + }; + }; + /** @description Serializer for appending transcript segments (supports batched real-time uploads) */ + AppendSegments: { + segments: components["schemas"]["TranscriptSegment"][]; + }; + ApprovalPolicy: { + /** Format: uuid */ + readonly id: string; + action_key: string; + conditions?: unknown; + approver_config: unknown; + allow_self_approve?: boolean; + bypass_org_membership_levels?: unknown; + bypass_roles?: string[]; + /** @description Auto-expire change requests after this duration */ + expires_after?: string; + enabled?: boolean; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + }; + ApproveRunRequestInput: { + snapshots?: components["schemas"]["ApproveSnapshotInput"][]; + approve_all?: boolean; + commit_to_github?: boolean; + }; + ApproveSnapshotInput: { + identifier: string; + new_hash: string; + }; + /** @description Matches against a list of values (OR semantics for exact/is_not, set membership for in/not_in). */ + ArrayPropertyFilter: { + /** @description Key of the property you're filtering on. For example `email` or `$current_url`. */ + key: string; + /** + * @description Property type (event, person, session, etc.). + * + * * `event` - event + * * `event_metadata` - event_metadata + * * `feature` - feature + * * `person` - person + * * `cohort` - cohort + * * `element` - element + * * `static-cohort` - static-cohort + * * `dynamic-cohort` - dynamic-cohort + * * `precalculated-cohort` - precalculated-cohort + * * `group` - group + * * `recording` - recording + * * `log_entry` - log_entry + * * `behavioral` - behavioral + * * `session` - session + * * `hogql` - hogql + * * `data_warehouse` - data_warehouse + * * `data_warehouse_person_property` - data_warehouse_person_property + * * `error_tracking_issue` - error_tracking_issue + * * `log` - log + * * `log_attribute` - log_attribute + * * `log_resource_attribute` - log_resource_attribute + * * `span` - span + * * `span_attribute` - span_attribute + * * `span_resource_attribute` - span_resource_attribute + * * `revenue_analytics` - revenue_analytics + * * `flag` - flag + * * `workflow_variable` - workflow_variable + * @default event + */ + type: components["schemas"]["PropertyFilterTypeEnum"]; + /** @description List of values to match. For example `["test@example.com", "ok@example.com"]`. */ + value: string[]; + /** + * @description Array comparison operator. + * + * * `exact` - exact + * * `is_not` - is_not + * * `in` - in + * * `not_in` - not_in + * @default exact + */ + operator: components["schemas"]["ArrayPropertyFilterOperatorEnum"]; + }; + /** + * @description * `exact` - exact + * * `is_not` - is_not + * * `in` - in + * * `not_in` - not_in + * @enum {string} + */ + ArrayPropertyFilterOperatorEnum: "exact" | "is_not" | "in" | "not_in"; + Artifact: { + /** Format: uuid */ + id: string; + content_hash: string; + width: number | null; + height: number | null; + download_url: string | null; + }; + /** + * @description * `user` - user + * * `role` - role + * @enum {string} + */ + AssigneeTypeEnum: "user" | "role"; + AsyncDeletionStatus: { + /** @description The UUID of the person whose events are queued for deletion. */ + person_uuid: string; + /** + * Format: date-time + * @description When the deletion was requested. + */ + created_at: string; + /** @description Current status: 'pending' or 'completed'. */ + readonly status: string; + /** + * Format: date-time + * @description When the deletion was verified complete. Null if still pending. + */ + delete_verified_at: string | null; + }; + /** + * @description * `first_touch` - First Touch + * * `last_touch` - Last Touch + * * `linear` - Linear + * * `time_decay` - Time Decay + * * `position_based` - Position Based + * @enum {string} + */ + AttributionModeEnum: "first_touch" | "last_touch" | "linear" | "time_decay" | "position_based"; + AutoApproveResult: { + run: components["schemas"]["Run"]; + baseline_content: string; + }; + /** AutocompleteCompletionItem */ + AutocompleteCompletionItem: { + /** + * Detail + * @description A human-readable string with additional information about this item, like type or symbol information. + * @default null + */ + detail: string | null; + /** + * Documentation + * @description A human-readable string that represents a doc-comment. + * @default null + */ + documentation: string | null; + /** + * Inserttext + * @description A string or snippet that should be inserted in a document when selecting this completion. + */ + insertText: string; + /** @description The kind of this completion item. Based on the kind an icon is chosen by the editor. */ + kind: components["schemas"]["AutocompleteCompletionItemKind"]; + /** + * Label + * @description The label of this completion item. By default this is also the text that is inserted when selecting this completion. + */ + label: string; + }; + /** + * AutocompleteCompletionItemKind + * @enum {string} + */ + AutocompleteCompletionItemKind: "Method" | "Function" | "Constructor" | "Field" | "Variable" | "Class" | "Struct" | "Interface" | "Module" | "Property" | "Event" | "Operator" | "Unit" | "Value" | "Constant" | "Enum" | "EnumMember" | "Keyword" | "Text" | "Color" | "File" | "Reference" | "Customcolor" | "Folder" | "TypeParameter" | "User" | "Issue" | "Snippet"; + /** + * @description * `P0` - P0 + * * `P1` - P1 + * * `P2` - P2 + * * `P3` - P3 + * * `P4` - P4 + * @enum {string} + */ + AutostartPriorityEnum: "P0" | "P1" | "P2" | "P3" | "P4"; + AvailableFiltersResponse: { + /** @description Pre-computed filter options for scopes, activities, and users. */ + static_filters: components["schemas"]["StaticFilters"]; + /** @description Discovered detail fields and their value distributions. */ + detail_fields: { + [key: string]: unknown; + }; + }; + /** + * @description * `ingest_first_event` - ingest_first_event + * * `set_up_reverse_proxy` - set_up_reverse_proxy + * * `create_first_insight` - create_first_insight + * * `create_first_dashboard` - create_first_dashboard + * * `track_custom_events` - track_custom_events + * * `define_actions` - define_actions + * * `set_up_cohorts` - set_up_cohorts + * * `explore_trends_insight` - explore_trends_insight + * * `create_funnel` - create_funnel + * * `explore_retention_insight` - explore_retention_insight + * * `explore_paths_insight` - explore_paths_insight + * * `explore_stickiness_insight` - explore_stickiness_insight + * * `explore_lifecycle_insight` - explore_lifecycle_insight + * * `add_authorized_domain` - add_authorized_domain + * * `set_up_web_vitals` - set_up_web_vitals + * * `review_web_analytics_dashboard` - review_web_analytics_dashboard + * * `filter_web_analytics` - filter_web_analytics + * * `set_up_web_analytics_conversion_goals` - set_up_web_analytics_conversion_goals + * * `visit_web_vitals_dashboard` - visit_web_vitals_dashboard + * * `setup_session_recordings` - setup_session_recordings + * * `watch_session_recording` - watch_session_recording + * * `configure_recording_settings` - configure_recording_settings + * * `create_recording_playlist` - create_recording_playlist + * * `enable_console_logs` - enable_console_logs + * * `create_feature_flag` - create_feature_flag + * * `implement_flag_in_code` - implement_flag_in_code + * * `update_feature_flag_release_conditions` - update_feature_flag_release_conditions + * * `create_multivariate_flag` - create_multivariate_flag + * * `set_up_flag_payloads` - set_up_flag_payloads + * * `set_up_flag_evaluation_runtimes` - set_up_flag_evaluation_runtimes + * * `create_experiment` - create_experiment + * * `implement_experiment_variants` - implement_experiment_variants + * * `launch_experiment` - launch_experiment + * * `review_experiment_results` - review_experiment_results + * * `create_survey` - create_survey + * * `launch_survey` - launch_survey + * * `collect_survey_responses` - collect_survey_responses + * * `connect_source` - connect_source + * * `run_first_query` - run_first_query + * * `join_external_data` - join_external_data + * * `create_saved_view` - create_saved_view + * * `enable_error_tracking` - enable_error_tracking + * * `upload_source_maps` - upload_source_maps + * * `view_first_error` - view_first_error + * * `resolve_first_error` - resolve_first_error + * * `ingest_first_llm_event` - ingest_first_llm_event + * * `view_first_trace` - view_first_trace + * * `track_costs` - track_costs + * * `set_up_llm_evaluation` - set_up_llm_evaluation + * * `run_ai_playground` - run_ai_playground + * * `enable_revenue_analytics_viewset` - enable_revenue_analytics_viewset + * * `connect_revenue_source` - connect_revenue_source + * * `set_up_revenue_goal` - set_up_revenue_goal + * * `enable_log_capture` - enable_log_capture + * * `view_first_logs` - view_first_logs + * * `create_first_workflow` - create_first_workflow + * * `set_up_first_workflow_channel` - set_up_first_workflow_channel + * * `configure_workflow_trigger` - configure_workflow_trigger + * * `add_workflow_action` - add_workflow_action + * * `launch_workflow` - launch_workflow + * * `create_first_endpoint` - create_first_endpoint + * * `configure_endpoint` - configure_endpoint + * * `test_endpoint` - test_endpoint + * * `create_early_access_feature` - create_early_access_feature + * * `update_feature_stage` - update_feature_stage + * @enum {string} + */ + AvailableSetupTaskIdsEnum: "ingest_first_event" | "set_up_reverse_proxy" | "create_first_insight" | "create_first_dashboard" | "track_custom_events" | "define_actions" | "set_up_cohorts" | "explore_trends_insight" | "create_funnel" | "explore_retention_insight" | "explore_paths_insight" | "explore_stickiness_insight" | "explore_lifecycle_insight" | "add_authorized_domain" | "set_up_web_vitals" | "review_web_analytics_dashboard" | "filter_web_analytics" | "set_up_web_analytics_conversion_goals" | "visit_web_vitals_dashboard" | "setup_session_recordings" | "watch_session_recording" | "configure_recording_settings" | "create_recording_playlist" | "enable_console_logs" | "create_feature_flag" | "implement_flag_in_code" | "update_feature_flag_release_conditions" | "create_multivariate_flag" | "set_up_flag_payloads" | "set_up_flag_evaluation_runtimes" | "create_experiment" | "implement_experiment_variants" | "launch_experiment" | "review_experiment_results" | "create_survey" | "launch_survey" | "collect_survey_responses" | "connect_source" | "run_first_query" | "join_external_data" | "create_saved_view" | "enable_error_tracking" | "upload_source_maps" | "view_first_error" | "resolve_first_error" | "ingest_first_llm_event" | "view_first_trace" | "track_costs" | "set_up_llm_evaluation" | "run_ai_playground" | "enable_revenue_analytics_viewset" | "connect_revenue_source" | "set_up_revenue_goal" | "enable_log_capture" | "view_first_logs" | "create_first_workflow" | "set_up_first_workflow_channel" | "configure_workflow_trigger" | "add_workflow_action" | "launch_workflow" | "create_first_endpoint" | "configure_endpoint" | "test_endpoint" | "create_early_access_feature" | "update_feature_stage"; + /** + * @description Typed configuration for an Azure Blob Storage batch-export destination. + * + * Credentials live in the linked Integration, not in this config. Mirrors + * `AzureBlobBatchExportInputs` in `products/batch_exports/backend/service.py`. + */ + AzureBlobDestinationConfig: { + /** @description Azure Blob Storage container name. */ + container_name: string; + /** + * @description Object key prefix applied to every exported file. + * @default + */ + prefix: string; + /** + * @description Optional compression codec applied to exported files. Valid codecs depend on file_format. + * + * * `brotli` - brotli + * * `gzip` - gzip + * * `lz4` - lz4 + * * `snappy` - snappy + * * `zstd` - zstd + */ + compression?: components["schemas"]["CompressionEnum"] | components["schemas"]["NullEnum"]; + /** + * @description File format used for exported objects. + * + * * `JSONLines` - JSONLines + * * `Parquet` - Parquet + * @default JSONLines + */ + file_format: components["schemas"]["FileFormatEnum"]; + /** @description If set, rolls to a new file once the current file exceeds this size in MB. */ + max_file_size_mb?: number | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "AzureBlob"; + }; + /** @description Request shape for creating or updating an Azure Blob Storage batch-export destination. */ + AzureBlobDestinationRequest: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "AzureBlob"; + /** @description ID of an azure-blob-kind Integration. Use the integrations-list MCP tool to find one. */ + integration_id: number; + config: components["schemas"]["AzureBlobDestinationConfig"]; + }; + /** + * @description * `AzureBlob` - AzureBlob + * @enum {string} + */ + AzureBlobDestinationRequestTypeEnum: "AzureBlob"; + /** + * @description * `AED` - AED + * * `AFN` - AFN + * * `ALL` - ALL + * * `AMD` - AMD + * * `ANG` - ANG + * * `AOA` - AOA + * * `ARS` - ARS + * * `AUD` - AUD + * * `AWG` - AWG + * * `AZN` - AZN + * * `BAM` - BAM + * * `BBD` - BBD + * * `BDT` - BDT + * * `BGN` - BGN + * * `BHD` - BHD + * * `BIF` - BIF + * * `BMD` - BMD + * * `BND` - BND + * * `BOB` - BOB + * * `BRL` - BRL + * * `BSD` - BSD + * * `BTC` - BTC + * * `BTN` - BTN + * * `BWP` - BWP + * * `BYN` - BYN + * * `BZD` - BZD + * * `CAD` - CAD + * * `CDF` - CDF + * * `CHF` - CHF + * * `CLP` - CLP + * * `CNY` - CNY + * * `COP` - COP + * * `CRC` - CRC + * * `CVE` - CVE + * * `CZK` - CZK + * * `DJF` - DJF + * * `DKK` - DKK + * * `DOP` - DOP + * * `DZD` - DZD + * * `EGP` - EGP + * * `ERN` - ERN + * * `ETB` - ETB + * * `EUR` - EUR + * * `FJD` - FJD + * * `GBP` - GBP + * * `GEL` - GEL + * * `GHS` - GHS + * * `GIP` - GIP + * * `GMD` - GMD + * * `GNF` - GNF + * * `GTQ` - GTQ + * * `GYD` - GYD + * * `HKD` - HKD + * * `HNL` - HNL + * * `HRK` - HRK + * * `HTG` - HTG + * * `HUF` - HUF + * * `IDR` - IDR + * * `ILS` - ILS + * * `INR` - INR + * * `IQD` - IQD + * * `IRR` - IRR + * * `ISK` - ISK + * * `JMD` - JMD + * * `JOD` - JOD + * * `JPY` - JPY + * * `KES` - KES + * * `KGS` - KGS + * * `KHR` - KHR + * * `KMF` - KMF + * * `KRW` - KRW + * * `KWD` - KWD + * * `KYD` - KYD + * * `KZT` - KZT + * * `LAK` - LAK + * * `LBP` - LBP + * * `LKR` - LKR + * * `LRD` - LRD + * * `LTL` - LTL + * * `LVL` - LVL + * * `LSL` - LSL + * * `LYD` - LYD + * * `MAD` - MAD + * * `MDL` - MDL + * * `MGA` - MGA + * * `MKD` - MKD + * * `MMK` - MMK + * * `MNT` - MNT + * * `MOP` - MOP + * * `MRU` - MRU + * * `MTL` - MTL + * * `MUR` - MUR + * * `MVR` - MVR + * * `MWK` - MWK + * * `MXN` - MXN + * * `MYR` - MYR + * * `MZN` - MZN + * * `NAD` - NAD + * * `NGN` - NGN + * * `NIO` - NIO + * * `NOK` - NOK + * * `NPR` - NPR + * * `NZD` - NZD + * * `OMR` - OMR + * * `PAB` - PAB + * * `PEN` - PEN + * * `PGK` - PGK + * * `PHP` - PHP + * * `PKR` - PKR + * * `PLN` - PLN + * * `PYG` - PYG + * * `QAR` - QAR + * * `RON` - RON + * * `RSD` - RSD + * * `RUB` - RUB + * * `RWF` - RWF + * * `SAR` - SAR + * * `SBD` - SBD + * * `SCR` - SCR + * * `SDG` - SDG + * * `SEK` - SEK + * * `SGD` - SGD + * * `SRD` - SRD + * * `SSP` - SSP + * * `STN` - STN + * * `SYP` - SYP + * * `SZL` - SZL + * * `THB` - THB + * * `TJS` - TJS + * * `TMT` - TMT + * * `TND` - TND + * * `TOP` - TOP + * * `TRY` - TRY + * * `TTD` - TTD + * * `TWD` - TWD + * * `TZS` - TZS + * * `UAH` - UAH + * * `UGX` - UGX + * * `USD` - USD + * * `UYU` - UYU + * * `UZS` - UZS + * * `VES` - VES + * * `VND` - VND + * * `VUV` - VUV + * * `WST` - WST + * * `XAF` - XAF + * * `XCD` - XCD + * * `XOF` - XOF + * * `XPF` - XPF + * * `YER` - YER + * * `ZAR` - ZAR + * * `ZMW` - ZMW + * @enum {string} + */ + BaseCurrencyEnum: "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BRL" | "BSD" | "BTC" | "BTN" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHF" | "CLP" | "CNY" | "COP" | "CRC" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LTL" | "LVL" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRU" | "MTL" | "MUR" | "MVR" | "MWK" | "MXN" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SRD" | "SSP" | "STN" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "UYU" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XCD" | "XOF" | "XPF" | "YER" | "ZAR" | "ZMW"; + /** + * BaseMathType + * @enum {string} + */ + BaseMathType: "total" | "dau" | "weekly_active" | "monthly_active" | "unique_session" | "first_time_for_user" | "first_matching_event_for_user"; + BaselineEntry: { + identifier: string; + run_type: string; + browser: string | null; + thumbnail_hash: string | null; + width: number | null; + height: number | null; + tolerate_count_30d: number; + tolerate_count_90d: number; + is_quarantined: boolean; + /** Format: date-time */ + last_run_at: string; + baseline_change_count: number; + /** Format: double */ + recent_drift_avg: number | null; + }; + BaselineOverview: { + entries: components["schemas"]["BaselineEntry"][]; + totals: components["schemas"]["BaselineTotals"]; + truncated: boolean; + /** Format: date-time */ + generated_at: string; + }; + BaselineTotals: { + by_run_type: { + [key: string]: number; + }; + all_snapshots: number; + recently_tolerated: number; + frequently_tolerated: number; + currently_quarantined: number; + }; + BatchCheckRequest: { + /** @description List of trace IDs to check for cached summaries */ + trace_ids: string[]; + /** + * @description Summary detail level to check for + * + * * `minimal` - minimal + * * `detailed` - detailed + * @default minimal + */ + mode: components["schemas"]["DetailModeValueEnum"]; + /** @description LLM model used for cached summaries */ + model?: string | null; + }; + BatchCheckResponse: { + summaries: components["schemas"]["CachedSummary"][]; + }; + /** @description Serializer for a BatchExport model. */ + BatchExport: { + /** Format: uuid */ + readonly id: string; + /** @description The team this belongs to. */ + readonly team_id: number; + /** @description A human-readable name for this BatchExport. */ + name: string; + /** + * @description Which model this BatchExport is exporting. + * + * * `events` - Events + * * `persons` - Persons + * * `sessions` - Sessions + */ + model?: components["schemas"]["ModelEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + /** @description Destination configuration (type, config, and optional integration). */ + destination: components["schemas"]["BatchExportDestination"]; + /** + * @description How often the batch export should run. + * + * * `hour` - hour + * * `day` - day + * * `week` - week + * * `every 5 minutes` - every 5 minutes + * * `every 15 minutes` - every 15 minutes + */ + interval: components["schemas"]["IntervalEnum"]; + /** @description Whether this BatchExport is paused or not. */ + paused?: boolean; + /** + * Format: date-time + * @description The timestamp at which this BatchExport was created. + */ + readonly created_at: string; + /** + * Format: date-time + * @description The timestamp at which this BatchExport was last updated. + */ + readonly last_updated_at: string; + /** + * Format: date-time + * @description The timestamp at which this BatchExport was last paused. + */ + last_paused_at?: string | null; + /** + * Format: date-time + * @description Time before which any Batch Export runs won't be triggered. + */ + start_at?: string | null; + /** + * Format: date-time + * @description Time after which any Batch Export runs won't be triggered. + */ + end_at?: string | null; + /** @description The 10 most recent runs of this batch export, ordered newest first. */ + readonly latest_runs: components["schemas"]["BatchExportRun"][]; + /** @description Optional HogQL SELECT defining a custom model schema. Only recommended in advanced use cases. */ + hogql_query?: string; + /** @description A schema of custom fields to select when exporting data. */ + readonly schema: unknown; + filters?: unknown; + /** + * @description IANA timezone name controlling daily and weekly interval boundaries. Defaults to UTC. + * + * * `Africa/Abidjan` - Africa/Abidjan + * * `Africa/Accra` - Africa/Accra + * * `Africa/Addis_Ababa` - Africa/Addis_Ababa + * * `Africa/Algiers` - Africa/Algiers + * * `Africa/Asmara` - Africa/Asmara + * * `Africa/Asmera` - Africa/Asmera + * * `Africa/Bamako` - Africa/Bamako + * * `Africa/Bangui` - Africa/Bangui + * * `Africa/Banjul` - Africa/Banjul + * * `Africa/Bissau` - Africa/Bissau + * * `Africa/Blantyre` - Africa/Blantyre + * * `Africa/Brazzaville` - Africa/Brazzaville + * * `Africa/Bujumbura` - Africa/Bujumbura + * * `Africa/Cairo` - Africa/Cairo + * * `Africa/Casablanca` - Africa/Casablanca + * * `Africa/Ceuta` - Africa/Ceuta + * * `Africa/Conakry` - Africa/Conakry + * * `Africa/Dakar` - Africa/Dakar + * * `Africa/Dar_es_Salaam` - Africa/Dar_es_Salaam + * * `Africa/Djibouti` - Africa/Djibouti + * * `Africa/Douala` - Africa/Douala + * * `Africa/El_Aaiun` - Africa/El_Aaiun + * * `Africa/Freetown` - Africa/Freetown + * * `Africa/Gaborone` - Africa/Gaborone + * * `Africa/Harare` - Africa/Harare + * * `Africa/Johannesburg` - Africa/Johannesburg + * * `Africa/Juba` - Africa/Juba + * * `Africa/Kampala` - Africa/Kampala + * * `Africa/Khartoum` - Africa/Khartoum + * * `Africa/Kigali` - Africa/Kigali + * * `Africa/Kinshasa` - Africa/Kinshasa + * * `Africa/Lagos` - Africa/Lagos + * * `Africa/Libreville` - Africa/Libreville + * * `Africa/Lome` - Africa/Lome + * * `Africa/Luanda` - Africa/Luanda + * * `Africa/Lubumbashi` - Africa/Lubumbashi + * * `Africa/Lusaka` - Africa/Lusaka + * * `Africa/Malabo` - Africa/Malabo + * * `Africa/Maputo` - Africa/Maputo + * * `Africa/Maseru` - Africa/Maseru + * * `Africa/Mbabane` - Africa/Mbabane + * * `Africa/Mogadishu` - Africa/Mogadishu + * * `Africa/Monrovia` - Africa/Monrovia + * * `Africa/Nairobi` - Africa/Nairobi + * * `Africa/Ndjamena` - Africa/Ndjamena + * * `Africa/Niamey` - Africa/Niamey + * * `Africa/Nouakchott` - Africa/Nouakchott + * * `Africa/Ouagadougou` - Africa/Ouagadougou + * * `Africa/Porto-Novo` - Africa/Porto-Novo + * * `Africa/Sao_Tome` - Africa/Sao_Tome + * * `Africa/Timbuktu` - Africa/Timbuktu + * * `Africa/Tripoli` - Africa/Tripoli + * * `Africa/Tunis` - Africa/Tunis + * * `Africa/Windhoek` - Africa/Windhoek + * * `America/Adak` - America/Adak + * * `America/Anchorage` - America/Anchorage + * * `America/Anguilla` - America/Anguilla + * * `America/Antigua` - America/Antigua + * * `America/Araguaina` - America/Araguaina + * * `America/Argentina/Buenos_Aires` - America/Argentina/Buenos_Aires + * * `America/Argentina/Catamarca` - America/Argentina/Catamarca + * * `America/Argentina/ComodRivadavia` - America/Argentina/ComodRivadavia + * * `America/Argentina/Cordoba` - America/Argentina/Cordoba + * * `America/Argentina/Jujuy` - America/Argentina/Jujuy + * * `America/Argentina/La_Rioja` - America/Argentina/La_Rioja + * * `America/Argentina/Mendoza` - America/Argentina/Mendoza + * * `America/Argentina/Rio_Gallegos` - America/Argentina/Rio_Gallegos + * * `America/Argentina/Salta` - America/Argentina/Salta + * * `America/Argentina/San_Juan` - America/Argentina/San_Juan + * * `America/Argentina/San_Luis` - America/Argentina/San_Luis + * * `America/Argentina/Tucuman` - America/Argentina/Tucuman + * * `America/Argentina/Ushuaia` - America/Argentina/Ushuaia + * * `America/Aruba` - America/Aruba + * * `America/Asuncion` - America/Asuncion + * * `America/Atikokan` - America/Atikokan + * * `America/Atka` - America/Atka + * * `America/Bahia` - America/Bahia + * * `America/Bahia_Banderas` - America/Bahia_Banderas + * * `America/Barbados` - America/Barbados + * * `America/Belem` - America/Belem + * * `America/Belize` - America/Belize + * * `America/Blanc-Sablon` - America/Blanc-Sablon + * * `America/Boa_Vista` - America/Boa_Vista + * * `America/Bogota` - America/Bogota + * * `America/Boise` - America/Boise + * * `America/Buenos_Aires` - America/Buenos_Aires + * * `America/Cambridge_Bay` - America/Cambridge_Bay + * * `America/Campo_Grande` - America/Campo_Grande + * * `America/Cancun` - America/Cancun + * * `America/Caracas` - America/Caracas + * * `America/Catamarca` - America/Catamarca + * * `America/Cayenne` - America/Cayenne + * * `America/Cayman` - America/Cayman + * * `America/Chicago` - America/Chicago + * * `America/Chihuahua` - America/Chihuahua + * * `America/Ciudad_Juarez` - America/Ciudad_Juarez + * * `America/Coral_Harbour` - America/Coral_Harbour + * * `America/Cordoba` - America/Cordoba + * * `America/Costa_Rica` - America/Costa_Rica + * * `America/Creston` - America/Creston + * * `America/Cuiaba` - America/Cuiaba + * * `America/Curacao` - America/Curacao + * * `America/Danmarkshavn` - America/Danmarkshavn + * * `America/Dawson` - America/Dawson + * * `America/Dawson_Creek` - America/Dawson_Creek + * * `America/Denver` - America/Denver + * * `America/Detroit` - America/Detroit + * * `America/Dominica` - America/Dominica + * * `America/Edmonton` - America/Edmonton + * * `America/Eirunepe` - America/Eirunepe + * * `America/El_Salvador` - America/El_Salvador + * * `America/Ensenada` - America/Ensenada + * * `America/Fort_Nelson` - America/Fort_Nelson + * * `America/Fort_Wayne` - America/Fort_Wayne + * * `America/Fortaleza` - America/Fortaleza + * * `America/Glace_Bay` - America/Glace_Bay + * * `America/Godthab` - America/Godthab + * * `America/Goose_Bay` - America/Goose_Bay + * * `America/Grand_Turk` - America/Grand_Turk + * * `America/Grenada` - America/Grenada + * * `America/Guadeloupe` - America/Guadeloupe + * * `America/Guatemala` - America/Guatemala + * * `America/Guayaquil` - America/Guayaquil + * * `America/Guyana` - America/Guyana + * * `America/Halifax` - America/Halifax + * * `America/Havana` - America/Havana + * * `America/Hermosillo` - America/Hermosillo + * * `America/Indiana/Indianapolis` - America/Indiana/Indianapolis + * * `America/Indiana/Knox` - America/Indiana/Knox + * * `America/Indiana/Marengo` - America/Indiana/Marengo + * * `America/Indiana/Petersburg` - America/Indiana/Petersburg + * * `America/Indiana/Tell_City` - America/Indiana/Tell_City + * * `America/Indiana/Vevay` - America/Indiana/Vevay + * * `America/Indiana/Vincennes` - America/Indiana/Vincennes + * * `America/Indiana/Winamac` - America/Indiana/Winamac + * * `America/Indianapolis` - America/Indianapolis + * * `America/Inuvik` - America/Inuvik + * * `America/Iqaluit` - America/Iqaluit + * * `America/Jamaica` - America/Jamaica + * * `America/Jujuy` - America/Jujuy + * * `America/Juneau` - America/Juneau + * * `America/Kentucky/Louisville` - America/Kentucky/Louisville + * * `America/Kentucky/Monticello` - America/Kentucky/Monticello + * * `America/Knox_IN` - America/Knox_IN + * * `America/Kralendijk` - America/Kralendijk + * * `America/La_Paz` - America/La_Paz + * * `America/Lima` - America/Lima + * * `America/Los_Angeles` - America/Los_Angeles + * * `America/Louisville` - America/Louisville + * * `America/Lower_Princes` - America/Lower_Princes + * * `America/Maceio` - America/Maceio + * * `America/Managua` - America/Managua + * * `America/Manaus` - America/Manaus + * * `America/Marigot` - America/Marigot + * * `America/Martinique` - America/Martinique + * * `America/Matamoros` - America/Matamoros + * * `America/Mazatlan` - America/Mazatlan + * * `America/Mendoza` - America/Mendoza + * * `America/Menominee` - America/Menominee + * * `America/Merida` - America/Merida + * * `America/Metlakatla` - America/Metlakatla + * * `America/Mexico_City` - America/Mexico_City + * * `America/Miquelon` - America/Miquelon + * * `America/Moncton` - America/Moncton + * * `America/Monterrey` - America/Monterrey + * * `America/Montevideo` - America/Montevideo + * * `America/Montreal` - America/Montreal + * * `America/Montserrat` - America/Montserrat + * * `America/Nassau` - America/Nassau + * * `America/New_York` - America/New_York + * * `America/Nipigon` - America/Nipigon + * * `America/Nome` - America/Nome + * * `America/Noronha` - America/Noronha + * * `America/North_Dakota/Beulah` - America/North_Dakota/Beulah + * * `America/North_Dakota/Center` - America/North_Dakota/Center + * * `America/North_Dakota/New_Salem` - America/North_Dakota/New_Salem + * * `America/Nuuk` - America/Nuuk + * * `America/Ojinaga` - America/Ojinaga + * * `America/Panama` - America/Panama + * * `America/Pangnirtung` - America/Pangnirtung + * * `America/Paramaribo` - America/Paramaribo + * * `America/Phoenix` - America/Phoenix + * * `America/Port-au-Prince` - America/Port-au-Prince + * * `America/Port_of_Spain` - America/Port_of_Spain + * * `America/Porto_Acre` - America/Porto_Acre + * * `America/Porto_Velho` - America/Porto_Velho + * * `America/Puerto_Rico` - America/Puerto_Rico + * * `America/Punta_Arenas` - America/Punta_Arenas + * * `America/Rainy_River` - America/Rainy_River + * * `America/Rankin_Inlet` - America/Rankin_Inlet + * * `America/Recife` - America/Recife + * * `America/Regina` - America/Regina + * * `America/Resolute` - America/Resolute + * * `America/Rio_Branco` - America/Rio_Branco + * * `America/Rosario` - America/Rosario + * * `America/Santa_Isabel` - America/Santa_Isabel + * * `America/Santarem` - America/Santarem + * * `America/Santiago` - America/Santiago + * * `America/Santo_Domingo` - America/Santo_Domingo + * * `America/Sao_Paulo` - America/Sao_Paulo + * * `America/Scoresbysund` - America/Scoresbysund + * * `America/Shiprock` - America/Shiprock + * * `America/Sitka` - America/Sitka + * * `America/St_Barthelemy` - America/St_Barthelemy + * * `America/St_Johns` - America/St_Johns + * * `America/St_Kitts` - America/St_Kitts + * * `America/St_Lucia` - America/St_Lucia + * * `America/St_Thomas` - America/St_Thomas + * * `America/St_Vincent` - America/St_Vincent + * * `America/Swift_Current` - America/Swift_Current + * * `America/Tegucigalpa` - America/Tegucigalpa + * * `America/Thule` - America/Thule + * * `America/Thunder_Bay` - America/Thunder_Bay + * * `America/Tijuana` - America/Tijuana + * * `America/Toronto` - America/Toronto + * * `America/Tortola` - America/Tortola + * * `America/Vancouver` - America/Vancouver + * * `America/Virgin` - America/Virgin + * * `America/Whitehorse` - America/Whitehorse + * * `America/Winnipeg` - America/Winnipeg + * * `America/Yakutat` - America/Yakutat + * * `America/Yellowknife` - America/Yellowknife + * * `Antarctica/Casey` - Antarctica/Casey + * * `Antarctica/Davis` - Antarctica/Davis + * * `Antarctica/DumontDUrville` - Antarctica/DumontDUrville + * * `Antarctica/Macquarie` - Antarctica/Macquarie + * * `Antarctica/Mawson` - Antarctica/Mawson + * * `Antarctica/McMurdo` - Antarctica/McMurdo + * * `Antarctica/Palmer` - Antarctica/Palmer + * * `Antarctica/Rothera` - Antarctica/Rothera + * * `Antarctica/South_Pole` - Antarctica/South_Pole + * * `Antarctica/Syowa` - Antarctica/Syowa + * * `Antarctica/Troll` - Antarctica/Troll + * * `Antarctica/Vostok` - Antarctica/Vostok + * * `Arctic/Longyearbyen` - Arctic/Longyearbyen + * * `Asia/Aden` - Asia/Aden + * * `Asia/Almaty` - Asia/Almaty + * * `Asia/Amman` - Asia/Amman + * * `Asia/Anadyr` - Asia/Anadyr + * * `Asia/Aqtau` - Asia/Aqtau + * * `Asia/Aqtobe` - Asia/Aqtobe + * * `Asia/Ashgabat` - Asia/Ashgabat + * * `Asia/Ashkhabad` - Asia/Ashkhabad + * * `Asia/Atyrau` - Asia/Atyrau + * * `Asia/Baghdad` - Asia/Baghdad + * * `Asia/Bahrain` - Asia/Bahrain + * * `Asia/Baku` - Asia/Baku + * * `Asia/Bangkok` - Asia/Bangkok + * * `Asia/Barnaul` - Asia/Barnaul + * * `Asia/Beirut` - Asia/Beirut + * * `Asia/Bishkek` - Asia/Bishkek + * * `Asia/Brunei` - Asia/Brunei + * * `Asia/Calcutta` - Asia/Calcutta + * * `Asia/Chita` - Asia/Chita + * * `Asia/Choibalsan` - Asia/Choibalsan + * * `Asia/Chongqing` - Asia/Chongqing + * * `Asia/Chungking` - Asia/Chungking + * * `Asia/Colombo` - Asia/Colombo + * * `Asia/Dacca` - Asia/Dacca + * * `Asia/Damascus` - Asia/Damascus + * * `Asia/Dhaka` - Asia/Dhaka + * * `Asia/Dili` - Asia/Dili + * * `Asia/Dubai` - Asia/Dubai + * * `Asia/Dushanbe` - Asia/Dushanbe + * * `Asia/Famagusta` - Asia/Famagusta + * * `Asia/Gaza` - Asia/Gaza + * * `Asia/Harbin` - Asia/Harbin + * * `Asia/Hebron` - Asia/Hebron + * * `Asia/Ho_Chi_Minh` - Asia/Ho_Chi_Minh + * * `Asia/Hong_Kong` - Asia/Hong_Kong + * * `Asia/Hovd` - Asia/Hovd + * * `Asia/Irkutsk` - Asia/Irkutsk + * * `Asia/Istanbul` - Asia/Istanbul + * * `Asia/Jakarta` - Asia/Jakarta + * * `Asia/Jayapura` - Asia/Jayapura + * * `Asia/Jerusalem` - Asia/Jerusalem + * * `Asia/Kabul` - Asia/Kabul + * * `Asia/Kamchatka` - Asia/Kamchatka + * * `Asia/Karachi` - Asia/Karachi + * * `Asia/Kashgar` - Asia/Kashgar + * * `Asia/Kathmandu` - Asia/Kathmandu + * * `Asia/Katmandu` - Asia/Katmandu + * * `Asia/Khandyga` - Asia/Khandyga + * * `Asia/Kolkata` - Asia/Kolkata + * * `Asia/Krasnoyarsk` - Asia/Krasnoyarsk + * * `Asia/Kuala_Lumpur` - Asia/Kuala_Lumpur + * * `Asia/Kuching` - Asia/Kuching + * * `Asia/Kuwait` - Asia/Kuwait + * * `Asia/Macao` - Asia/Macao + * * `Asia/Macau` - Asia/Macau + * * `Asia/Magadan` - Asia/Magadan + * * `Asia/Makassar` - Asia/Makassar + * * `Asia/Manila` - Asia/Manila + * * `Asia/Muscat` - Asia/Muscat + * * `Asia/Nicosia` - Asia/Nicosia + * * `Asia/Novokuznetsk` - Asia/Novokuznetsk + * * `Asia/Novosibirsk` - Asia/Novosibirsk + * * `Asia/Omsk` - Asia/Omsk + * * `Asia/Oral` - Asia/Oral + * * `Asia/Phnom_Penh` - Asia/Phnom_Penh + * * `Asia/Pontianak` - Asia/Pontianak + * * `Asia/Pyongyang` - Asia/Pyongyang + * * `Asia/Qatar` - Asia/Qatar + * * `Asia/Qostanay` - Asia/Qostanay + * * `Asia/Qyzylorda` - Asia/Qyzylorda + * * `Asia/Rangoon` - Asia/Rangoon + * * `Asia/Riyadh` - Asia/Riyadh + * * `Asia/Saigon` - Asia/Saigon + * * `Asia/Sakhalin` - Asia/Sakhalin + * * `Asia/Samarkand` - Asia/Samarkand + * * `Asia/Seoul` - Asia/Seoul + * * `Asia/Shanghai` - Asia/Shanghai + * * `Asia/Singapore` - Asia/Singapore + * * `Asia/Srednekolymsk` - Asia/Srednekolymsk + * * `Asia/Taipei` - Asia/Taipei + * * `Asia/Tashkent` - Asia/Tashkent + * * `Asia/Tbilisi` - Asia/Tbilisi + * * `Asia/Tehran` - Asia/Tehran + * * `Asia/Tel_Aviv` - Asia/Tel_Aviv + * * `Asia/Thimbu` - Asia/Thimbu + * * `Asia/Thimphu` - Asia/Thimphu + * * `Asia/Tokyo` - Asia/Tokyo + * * `Asia/Tomsk` - Asia/Tomsk + * * `Asia/Ujung_Pandang` - Asia/Ujung_Pandang + * * `Asia/Ulaanbaatar` - Asia/Ulaanbaatar + * * `Asia/Ulan_Bator` - Asia/Ulan_Bator + * * `Asia/Urumqi` - Asia/Urumqi + * * `Asia/Ust-Nera` - Asia/Ust-Nera + * * `Asia/Vientiane` - Asia/Vientiane + * * `Asia/Vladivostok` - Asia/Vladivostok + * * `Asia/Yakutsk` - Asia/Yakutsk + * * `Asia/Yangon` - Asia/Yangon + * * `Asia/Yekaterinburg` - Asia/Yekaterinburg + * * `Asia/Yerevan` - Asia/Yerevan + * * `Atlantic/Azores` - Atlantic/Azores + * * `Atlantic/Bermuda` - Atlantic/Bermuda + * * `Atlantic/Canary` - Atlantic/Canary + * * `Atlantic/Cape_Verde` - Atlantic/Cape_Verde + * * `Atlantic/Faeroe` - Atlantic/Faeroe + * * `Atlantic/Faroe` - Atlantic/Faroe + * * `Atlantic/Jan_Mayen` - Atlantic/Jan_Mayen + * * `Atlantic/Madeira` - Atlantic/Madeira + * * `Atlantic/Reykjavik` - Atlantic/Reykjavik + * * `Atlantic/South_Georgia` - Atlantic/South_Georgia + * * `Atlantic/St_Helena` - Atlantic/St_Helena + * * `Atlantic/Stanley` - Atlantic/Stanley + * * `Australia/ACT` - Australia/ACT + * * `Australia/Adelaide` - Australia/Adelaide + * * `Australia/Brisbane` - Australia/Brisbane + * * `Australia/Broken_Hill` - Australia/Broken_Hill + * * `Australia/Canberra` - Australia/Canberra + * * `Australia/Currie` - Australia/Currie + * * `Australia/Darwin` - Australia/Darwin + * * `Australia/Eucla` - Australia/Eucla + * * `Australia/Hobart` - Australia/Hobart + * * `Australia/LHI` - Australia/LHI + * * `Australia/Lindeman` - Australia/Lindeman + * * `Australia/Lord_Howe` - Australia/Lord_Howe + * * `Australia/Melbourne` - Australia/Melbourne + * * `Australia/NSW` - Australia/NSW + * * `Australia/North` - Australia/North + * * `Australia/Perth` - Australia/Perth + * * `Australia/Queensland` - Australia/Queensland + * * `Australia/South` - Australia/South + * * `Australia/Sydney` - Australia/Sydney + * * `Australia/Tasmania` - Australia/Tasmania + * * `Australia/Victoria` - Australia/Victoria + * * `Australia/West` - Australia/West + * * `Australia/Yancowinna` - Australia/Yancowinna + * * `Brazil/Acre` - Brazil/Acre + * * `Brazil/DeNoronha` - Brazil/DeNoronha + * * `Brazil/East` - Brazil/East + * * `Brazil/West` - Brazil/West + * * `CET` - CET + * * `CST6CDT` - CST6CDT + * * `Canada/Atlantic` - Canada/Atlantic + * * `Canada/Central` - Canada/Central + * * `Canada/Eastern` - Canada/Eastern + * * `Canada/Mountain` - Canada/Mountain + * * `Canada/Newfoundland` - Canada/Newfoundland + * * `Canada/Pacific` - Canada/Pacific + * * `Canada/Saskatchewan` - Canada/Saskatchewan + * * `Canada/Yukon` - Canada/Yukon + * * `Chile/Continental` - Chile/Continental + * * `Chile/EasterIsland` - Chile/EasterIsland + * * `Cuba` - Cuba + * * `EET` - EET + * * `EST` - EST + * * `EST5EDT` - EST5EDT + * * `Egypt` - Egypt + * * `Eire` - Eire + * * `Etc/GMT` - Etc/GMT + * * `Etc/GMT+0` - Etc/GMT+0 + * * `Etc/GMT+1` - Etc/GMT+1 + * * `Etc/GMT+10` - Etc/GMT+10 + * * `Etc/GMT+11` - Etc/GMT+11 + * * `Etc/GMT+12` - Etc/GMT+12 + * * `Etc/GMT+2` - Etc/GMT+2 + * * `Etc/GMT+3` - Etc/GMT+3 + * * `Etc/GMT+4` - Etc/GMT+4 + * * `Etc/GMT+5` - Etc/GMT+5 + * * `Etc/GMT+6` - Etc/GMT+6 + * * `Etc/GMT+7` - Etc/GMT+7 + * * `Etc/GMT+8` - Etc/GMT+8 + * * `Etc/GMT+9` - Etc/GMT+9 + * * `Etc/GMT-0` - Etc/GMT-0 + * * `Etc/GMT-1` - Etc/GMT-1 + * * `Etc/GMT-10` - Etc/GMT-10 + * * `Etc/GMT-11` - Etc/GMT-11 + * * `Etc/GMT-12` - Etc/GMT-12 + * * `Etc/GMT-13` - Etc/GMT-13 + * * `Etc/GMT-14` - Etc/GMT-14 + * * `Etc/GMT-2` - Etc/GMT-2 + * * `Etc/GMT-3` - Etc/GMT-3 + * * `Etc/GMT-4` - Etc/GMT-4 + * * `Etc/GMT-5` - Etc/GMT-5 + * * `Etc/GMT-6` - Etc/GMT-6 + * * `Etc/GMT-7` - Etc/GMT-7 + * * `Etc/GMT-8` - Etc/GMT-8 + * * `Etc/GMT-9` - Etc/GMT-9 + * * `Etc/GMT0` - Etc/GMT0 + * * `Etc/Greenwich` - Etc/Greenwich + * * `Etc/UCT` - Etc/UCT + * * `Etc/UTC` - Etc/UTC + * * `Etc/Universal` - Etc/Universal + * * `Etc/Zulu` - Etc/Zulu + * * `Europe/Amsterdam` - Europe/Amsterdam + * * `Europe/Andorra` - Europe/Andorra + * * `Europe/Astrakhan` - Europe/Astrakhan + * * `Europe/Athens` - Europe/Athens + * * `Europe/Belfast` - Europe/Belfast + * * `Europe/Belgrade` - Europe/Belgrade + * * `Europe/Berlin` - Europe/Berlin + * * `Europe/Bratislava` - Europe/Bratislava + * * `Europe/Brussels` - Europe/Brussels + * * `Europe/Bucharest` - Europe/Bucharest + * * `Europe/Budapest` - Europe/Budapest + * * `Europe/Busingen` - Europe/Busingen + * * `Europe/Chisinau` - Europe/Chisinau + * * `Europe/Copenhagen` - Europe/Copenhagen + * * `Europe/Dublin` - Europe/Dublin + * * `Europe/Gibraltar` - Europe/Gibraltar + * * `Europe/Guernsey` - Europe/Guernsey + * * `Europe/Helsinki` - Europe/Helsinki + * * `Europe/Isle_of_Man` - Europe/Isle_of_Man + * * `Europe/Istanbul` - Europe/Istanbul + * * `Europe/Jersey` - Europe/Jersey + * * `Europe/Kaliningrad` - Europe/Kaliningrad + * * `Europe/Kiev` - Europe/Kiev + * * `Europe/Kirov` - Europe/Kirov + * * `Europe/Kyiv` - Europe/Kyiv + * * `Europe/Lisbon` - Europe/Lisbon + * * `Europe/Ljubljana` - Europe/Ljubljana + * * `Europe/London` - Europe/London + * * `Europe/Luxembourg` - Europe/Luxembourg + * * `Europe/Madrid` - Europe/Madrid + * * `Europe/Malta` - Europe/Malta + * * `Europe/Mariehamn` - Europe/Mariehamn + * * `Europe/Minsk` - Europe/Minsk + * * `Europe/Monaco` - Europe/Monaco + * * `Europe/Moscow` - Europe/Moscow + * * `Europe/Nicosia` - Europe/Nicosia + * * `Europe/Oslo` - Europe/Oslo + * * `Europe/Paris` - Europe/Paris + * * `Europe/Podgorica` - Europe/Podgorica + * * `Europe/Prague` - Europe/Prague + * * `Europe/Riga` - Europe/Riga + * * `Europe/Rome` - Europe/Rome + * * `Europe/Samara` - Europe/Samara + * * `Europe/San_Marino` - Europe/San_Marino + * * `Europe/Sarajevo` - Europe/Sarajevo + * * `Europe/Saratov` - Europe/Saratov + * * `Europe/Simferopol` - Europe/Simferopol + * * `Europe/Skopje` - Europe/Skopje + * * `Europe/Sofia` - Europe/Sofia + * * `Europe/Stockholm` - Europe/Stockholm + * * `Europe/Tallinn` - Europe/Tallinn + * * `Europe/Tirane` - Europe/Tirane + * * `Europe/Tiraspol` - Europe/Tiraspol + * * `Europe/Ulyanovsk` - Europe/Ulyanovsk + * * `Europe/Uzhgorod` - Europe/Uzhgorod + * * `Europe/Vaduz` - Europe/Vaduz + * * `Europe/Vatican` - Europe/Vatican + * * `Europe/Vienna` - Europe/Vienna + * * `Europe/Vilnius` - Europe/Vilnius + * * `Europe/Volgograd` - Europe/Volgograd + * * `Europe/Warsaw` - Europe/Warsaw + * * `Europe/Zagreb` - Europe/Zagreb + * * `Europe/Zaporozhye` - Europe/Zaporozhye + * * `Europe/Zurich` - Europe/Zurich + * * `GB` - GB + * * `GB-Eire` - GB-Eire + * * `GMT` - GMT + * * `GMT+0` - GMT+0 + * * `GMT-0` - GMT-0 + * * `GMT0` - GMT0 + * * `Greenwich` - Greenwich + * * `HST` - HST + * * `Hongkong` - Hongkong + * * `Iceland` - Iceland + * * `Indian/Antananarivo` - Indian/Antananarivo + * * `Indian/Chagos` - Indian/Chagos + * * `Indian/Christmas` - Indian/Christmas + * * `Indian/Cocos` - Indian/Cocos + * * `Indian/Comoro` - Indian/Comoro + * * `Indian/Kerguelen` - Indian/Kerguelen + * * `Indian/Mahe` - Indian/Mahe + * * `Indian/Maldives` - Indian/Maldives + * * `Indian/Mauritius` - Indian/Mauritius + * * `Indian/Mayotte` - Indian/Mayotte + * * `Indian/Reunion` - Indian/Reunion + * * `Iran` - Iran + * * `Israel` - Israel + * * `Jamaica` - Jamaica + * * `Japan` - Japan + * * `Kwajalein` - Kwajalein + * * `Libya` - Libya + * * `MET` - MET + * * `MST` - MST + * * `MST7MDT` - MST7MDT + * * `Mexico/BajaNorte` - Mexico/BajaNorte + * * `Mexico/BajaSur` - Mexico/BajaSur + * * `Mexico/General` - Mexico/General + * * `NZ` - NZ + * * `NZ-CHAT` - NZ-CHAT + * * `Navajo` - Navajo + * * `PRC` - PRC + * * `PST8PDT` - PST8PDT + * * `Pacific/Apia` - Pacific/Apia + * * `Pacific/Auckland` - Pacific/Auckland + * * `Pacific/Bougainville` - Pacific/Bougainville + * * `Pacific/Chatham` - Pacific/Chatham + * * `Pacific/Chuuk` - Pacific/Chuuk + * * `Pacific/Easter` - Pacific/Easter + * * `Pacific/Efate` - Pacific/Efate + * * `Pacific/Enderbury` - Pacific/Enderbury + * * `Pacific/Fakaofo` - Pacific/Fakaofo + * * `Pacific/Fiji` - Pacific/Fiji + * * `Pacific/Funafuti` - Pacific/Funafuti + * * `Pacific/Galapagos` - Pacific/Galapagos + * * `Pacific/Gambier` - Pacific/Gambier + * * `Pacific/Guadalcanal` - Pacific/Guadalcanal + * * `Pacific/Guam` - Pacific/Guam + * * `Pacific/Honolulu` - Pacific/Honolulu + * * `Pacific/Johnston` - Pacific/Johnston + * * `Pacific/Kanton` - Pacific/Kanton + * * `Pacific/Kiritimati` - Pacific/Kiritimati + * * `Pacific/Kosrae` - Pacific/Kosrae + * * `Pacific/Kwajalein` - Pacific/Kwajalein + * * `Pacific/Majuro` - Pacific/Majuro + * * `Pacific/Marquesas` - Pacific/Marquesas + * * `Pacific/Midway` - Pacific/Midway + * * `Pacific/Nauru` - Pacific/Nauru + * * `Pacific/Niue` - Pacific/Niue + * * `Pacific/Norfolk` - Pacific/Norfolk + * * `Pacific/Noumea` - Pacific/Noumea + * * `Pacific/Pago_Pago` - Pacific/Pago_Pago + * * `Pacific/Palau` - Pacific/Palau + * * `Pacific/Pitcairn` - Pacific/Pitcairn + * * `Pacific/Pohnpei` - Pacific/Pohnpei + * * `Pacific/Ponape` - Pacific/Ponape + * * `Pacific/Port_Moresby` - Pacific/Port_Moresby + * * `Pacific/Rarotonga` - Pacific/Rarotonga + * * `Pacific/Saipan` - Pacific/Saipan + * * `Pacific/Samoa` - Pacific/Samoa + * * `Pacific/Tahiti` - Pacific/Tahiti + * * `Pacific/Tarawa` - Pacific/Tarawa + * * `Pacific/Tongatapu` - Pacific/Tongatapu + * * `Pacific/Truk` - Pacific/Truk + * * `Pacific/Wake` - Pacific/Wake + * * `Pacific/Wallis` - Pacific/Wallis + * * `Pacific/Yap` - Pacific/Yap + * * `Poland` - Poland + * * `Portugal` - Portugal + * * `ROC` - ROC + * * `ROK` - ROK + * * `Singapore` - Singapore + * * `Turkey` - Turkey + * * `UCT` - UCT + * * `US/Alaska` - US/Alaska + * * `US/Aleutian` - US/Aleutian + * * `US/Arizona` - US/Arizona + * * `US/Central` - US/Central + * * `US/East-Indiana` - US/East-Indiana + * * `US/Eastern` - US/Eastern + * * `US/Hawaii` - US/Hawaii + * * `US/Indiana-Starke` - US/Indiana-Starke + * * `US/Michigan` - US/Michigan + * * `US/Mountain` - US/Mountain + * * `US/Pacific` - US/Pacific + * * `US/Samoa` - US/Samoa + * * `UTC` - UTC + * * `Universal` - Universal + * * `W-SU` - W-SU + * * `WET` - WET + * * `Zulu` - Zulu + */ + timezone?: components["schemas"]["TimezoneEnum"] | components["schemas"]["NullEnum"]; + /** @description Day-of-week offset for weekly intervals (0=Sunday, 6=Saturday). Only valid when interval is 'week'. */ + offset_day?: number | null; + /** @description Hour-of-day offset (0-23) for daily and weekly intervals. Only valid when interval is 'day' or 'week'. */ + offset_hour?: number | null; + }; + BatchExportBackfill: { + /** Format: uuid */ + readonly id: string; + readonly progress: { + total_runs?: number | null; + finished_runs?: number | null; + progress?: number | null; + } | null; + /** + * Format: date-time + * @description The start of the data interval. + */ + start_at?: string | null; + /** + * Format: date-time + * @description The end of the data interval. + */ + end_at?: string | null; + /** + * @description The status of this backfill. + * + * * `Cancelled` - Cancelled + * * `Completed` - Completed + * * `ContinuedAsNew` - Continued As New + * * `Failed` - Failed + * * `FailedRetryable` - Failed Retryable + * * `Terminated` - Terminated + * * `TimedOut` - Timedout + * * `Running` - Running + * * `Starting` - Starting + */ + status: components["schemas"]["BatchExportBackfillStatusEnum"]; + /** + * Format: date-time + * @description The timestamp at which this BatchExportBackfill was created. + */ + readonly created_at: string; + /** + * Format: date-time + * @description The timestamp at which this BatchExportBackfill finished, successfully or not. + */ + finished_at?: string | null; + /** + * Format: date-time + * @description The timestamp at which this BatchExportBackfill was last updated. + */ + readonly last_updated_at: string; + /** + * Format: int64 + * @description The total number of records to export. Initially estimated, updated with actual count after completion. + */ + total_records_count?: number | null; + /** + * Format: date-time + * @description The actual start time after adjustment for earliest available data. May differ from start_at if user requested a date before data exists. + */ + adjusted_start_at?: string | null; + /** @description The team this belongs to. */ + team: number; + /** + * Format: uuid + * @description The BatchExport this backfill belongs to. + */ + batch_export: string; + }; + /** + * @description * `Cancelled` - Cancelled + * * `Completed` - Completed + * * `ContinuedAsNew` - Continued As New + * * `Failed` - Failed + * * `FailedRetryable` - Failed Retryable + * * `Terminated` - Terminated + * * `TimedOut` - Timedout + * * `Running` - Running + * * `Starting` - Starting + * @enum {string} + */ + BatchExportBackfillStatusEnum: "Cancelled" | "Completed" | "ContinuedAsNew" | "Failed" | "FailedRetryable" | "Terminated" | "TimedOut" | "Running" | "Starting"; + /** + * @description Serializer for an BatchExportDestination model. + * + * The `config` field is polymorphic and typed only for destinations that keep + * credentials in the linked Integration (currently Databricks, AzureBlob, BigQuery). + * Other destination types accept the same JSON shape but without a typed + * OpenAPI schema. Secret fields are stripped from `config` on read. + */ + BatchExportDestination: { + /** + * @description A choice of supported BatchExportDestination types. + * + * * `S3` - S3 + * * `Snowflake` - Snowflake + * * `Postgres` - Postgres + * * `Redshift` - Redshift + * * `BigQuery` - Bigquery + * * `Databricks` - Databricks + * * `AzureBlob` - Azure Blob + * * `Workflows` - Workflows + * * `HTTP` - Http + * * `NoOp` - Noop + * * `FileDownload` - File Download + */ + type: components["schemas"]["BatchExportDestinationTypeEnum"]; + /** @description Destination-specific configuration. Fields depend on `type`. Credentials for integration-backed destinations (Databricks, AzureBlob, BigQuery) are NOT stored here — they live in the linked Integration. Secret fields are stripped from responses. */ + config: Omit; + /** @description The integration for this destination. */ + integration?: number | null; + /** @description ID of a team-scoped Integration providing credentials. Required for Databricks, AzureBlob, and BigQuery destinations; unused for other types. */ + integration_id?: number | null; + }; + BatchExportDestinationConfig: components["schemas"]["DatabricksDestinationConfig"] | components["schemas"]["AzureBlobDestinationConfig"] | components["schemas"]["BigQueryDestinationConfig"]; + BatchExportDestinationRequest: components["schemas"]["DatabricksDestinationRequest"] | components["schemas"]["AzureBlobDestinationRequest"] | components["schemas"]["BigQueryDestinationRequest"]; + /** + * @description * `S3` - S3 + * * `Snowflake` - Snowflake + * * `Postgres` - Postgres + * * `Redshift` - Redshift + * * `BigQuery` - Bigquery + * * `Databricks` - Databricks + * * `AzureBlob` - Azure Blob + * * `Workflows` - Workflows + * * `HTTP` - Http + * * `NoOp` - Noop + * * `FileDownload` - File Download + * @enum {string} + */ + BatchExportDestinationTypeEnum: "S3" | "Snowflake" | "Postgres" | "Redshift" | "BigQuery" | "Databricks" | "AzureBlob" | "Workflows" | "HTTP" | "NoOp" | "FileDownload"; + /** + * @description Request body for create/partial_update on BatchExportViewSet. + * + * Mirrors the writeable fields of `BatchExportSerializer` but uses a polymorphic + * `destination` schema so integration_id is marked required on the types that need + * it. Responses continue to use `BatchExportSerializer`. + */ + BatchExportRequest: { + /** @description Human-readable name for the batch export. */ + name: string; + /** + * @description Which data model to export (events, persons, sessions). + * + * * `events` - Events + * * `persons` - Persons + * * `sessions` - Sessions + */ + model?: components["schemas"]["ModelEnum"]; + /** @description Destination configuration. Required integration_id is enforced per destination type. */ + destination: Omit; + /** + * @description How often the batch export should run. + * + * * `hour` - hour + * * `day` - day + * * `week` - week + * * `every 5 minutes` - every 5 minutes + * * `every 15 minutes` - every 15 minutes + */ + interval: components["schemas"]["IntervalEnum"]; + /** @description Whether the batch export is paused. */ + paused?: boolean; + /** @description Optional HogQL SELECT defining a custom model schema. Only recommended in advanced use cases. */ + hogql_query?: string; + filters?: unknown; + /** @description IANA timezone name (e.g. 'America/New_York', 'Europe/London', 'UTC') controlling daily and weekly interval boundaries. */ + timezone?: string | null; + /** @description Day-of-week offset for weekly intervals (0=Sunday, 6=Saturday). */ + offset_day?: number | null; + /** @description Hour-of-day offset (0-23) for daily and weekly intervals. */ + offset_hour?: number | null; + }; + /** @description Serializer for a BatchExportRun model. */ + BatchExportRun: { + /** Format: uuid */ + readonly id: string; + /** + * @description The status of this run. + * + * * `Cancelled` - Cancelled + * * `Completed` - Completed + * * `ContinuedAsNew` - Continued As New + * * `Failed` - Failed + * * `FailedRetryable` - Failed Retryable + * * `FailedBilling` - Failed Billing + * * `Terminated` - Terminated + * * `TimedOut` - Timedout + * * `Running` - Running + * * `Starting` - Starting + */ + status: components["schemas"]["BatchExportRunStatusEnum"]; + /** @description The number of records that have been exported. */ + records_completed?: number | null; + /** @description The number of records that failed downstream processing (e.g. hog function execution errors). */ + records_failed?: number | null; + /** @description The latest error that occurred during this run. */ + latest_error?: string | null; + /** + * Format: date-time + * @description The start of the data interval. + */ + data_interval_start?: string | null; + /** + * Format: date-time + * @description The end of the data interval. + */ + data_interval_end: string; + /** @description An opaque cursor that may be used to resume. */ + cursor?: string | null; + /** + * Format: date-time + * @description The timestamp at which this BatchExportRun was created. + */ + readonly created_at: string; + /** + * Format: date-time + * @description The timestamp at which this BatchExportRun finished, successfully or not. + */ + finished_at?: string | null; + /** + * Format: date-time + * @description The timestamp at which this BatchExportRun was last updated. + */ + readonly last_updated_at: string; + /** @description The total count of records that should be exported in this BatchExportRun. */ + records_total_count?: number | null; + /** + * Format: int64 + * @description The number of bytes that have been exported in this BatchExportRun. + */ + bytes_exported?: number | null; + /** + * Format: uuid + * @description The BatchExport this run belongs to. + */ + readonly batch_export: string; + /** + * Format: uuid + * @description The backfill this run belongs to. + */ + backfill?: string | null; + }; + /** + * @description * `Cancelled` - Cancelled + * * `Completed` - Completed + * * `ContinuedAsNew` - Continued As New + * * `Failed` - Failed + * * `FailedRetryable` - Failed Retryable + * * `FailedBilling` - Failed Billing + * * `Terminated` - Terminated + * * `TimedOut` - Timedout + * * `Running` - Running + * * `Starting` - Starting + * @enum {string} + */ + BatchExportRunStatusEnum: "Cancelled" | "Completed" | "ContinuedAsNew" | "Failed" | "FailedRetryable" | "FailedBilling" | "Terminated" | "TimedOut" | "Running" | "Starting"; + /** BehavioralFilter */ + BehavioralFilter: { + /** + * Bytecode + * @default null + */ + bytecode: unknown[] | null; + /** + * Bytecode Error + * @default null + */ + bytecode_error: string | null; + /** + * Conditionhash + * @default null + */ + conditionHash: string | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "behavioral"; + /** Key */ + key: string | number; + /** Value */ + value: string; + /** Event Type */ + event_type: string; + /** + * Time Value + * @default null + */ + time_value: number | null; + /** + * Time Interval + * @default null + */ + time_interval: string | null; + /** + * Negation + * @default false + */ + negation: boolean; + /** + * Operator + * @default null + */ + operator: string | null; + /** + * Operator Value + * @default null + */ + operator_value: number | null; + /** + * Seq Time Interval + * @default null + */ + seq_time_interval: string | null; + /** + * Seq Time Value + * @default null + */ + seq_time_value: number | null; + /** + * Seq Event + * @default null + */ + seq_event: string | number | null; + /** + * Seq Event Type + * @default null + */ + seq_event_type: string | null; + /** + * Total Periods + * @default null + */ + total_periods: number | null; + /** + * Min Periods + * @default null + */ + min_periods: number | null; + /** + * Event Filters + * @default null + */ + event_filters: (components["schemas"]["EventPropFilter"] | components["schemas"]["HogQLFilter"])[] | null; + /** + * Explicit Datetime + * @default null + */ + explicit_datetime: string | null; + /** + * Explicit Datetime To + * @default null + */ + explicit_datetime_to: string | null; + }; + /** BiasRisk */ + BiasRisk: { + /** + * Multiple Variant Percentage + * @description Observed share of users assigned to `$multiple`, as a percentage (0-100). + */ + multiple_variant_percentage: number; + }; + /** + * @description Typed configuration for a BigQuery batch-export destination. + * + * Credentials live in the linked Integration, not in this config. Mirrors the + * non-credential fields of `BigQueryBatchExportInputs` in + * `products/batch_exports/backend/service.py`. + */ + BigQueryDestinationConfig: { + /** @description BigQuery dataset ID to write to. */ + dataset_id: string; + /** + * @description BigQuery table ID inside the dataset. + * @default events + */ + table_id: string; + /** + * @description Whether to export 'properties', 'set', and 'set_once' fields as the BigQuery JSON type rather than STRING. Cannot be changed after the export is created. + * @default false + */ + use_json_type: boolean; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "BigQuery"; + }; + /** @description Request shape for creating or updating a BigQuery batch-export destination. */ + BigQueryDestinationRequest: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "BigQuery"; + /** @description ID of a google-cloud-service-account-kind Integration. Use the integrations-list MCP tool to find one. */ + integration_id: number; + config: components["schemas"]["BigQueryDestinationConfig"]; + }; + /** + * @description * `BigQuery` - BigQuery + * @enum {string} + */ + BigQueryDestinationRequestTypeEnum: "BigQuery"; + /** @enum {unknown} */ + BlankEnum: ""; + BlastRadius: { + /** @description Number of users matching the filters */ + affected: number; + /** @description Total number of users */ + total: number; + }; + BlastRadiusRequest: { + /** @description Property filters to apply */ + filters: { + [key: string]: unknown; + }; + /** @description Group type index for group-based targeting */ + group_type_index?: number | null; + }; + BooleanScoreDefinitionConfig: { + /** @description Optional label for a true value. */ + true_label?: string; + /** @description Optional label for a false value. */ + false_label?: string; + }; + /** + * BounceRatePageViewMode + * @enum {string} + */ + BounceRatePageViewMode: "count_pageviews" | "uniq_urls" | "uniq_page_screen_autocaptures"; + /** BoxPlotDatum */ + BoxPlotDatum: { + /** Day */ + day: string; + /** Label */ + label: string; + /** Max */ + max: number; + /** Mean */ + mean: number; + /** Median */ + median: number; + /** Min */ + min: number; + /** P25 */ + p25: number; + /** P75 */ + p75: number; + /** + * Series Index + * @default null + */ + series_index: number | null; + /** + * Series Label + * @default null + */ + series_label: string | null; + }; + /** Breakdown */ + Breakdown: { + /** + * Group Type Index + * @default null + */ + group_type_index: number | null; + /** + * Histogram Bin Count + * @default null + */ + histogram_bin_count: number | null; + /** + * Normalize Url + * @default null + */ + normalize_url: boolean | null; + /** Property */ + property: string | number; + /** @default null */ + type: components["schemas"]["MultipleBreakdownType"] | null; + }; + /** + * BreakdownAttributionType + * @enum {string} + */ + BreakdownAttributionType: "first_touch" | "last_touch" | "all_events" | "step"; + /** BreakdownFilter */ + BreakdownFilter: { + /** + * Breakdown + * @default null + */ + breakdown: string | (string | number)[] | number | null; + /** + * Breakdown Group Type Index + * @default null + */ + breakdown_group_type_index: number | null; + /** + * Breakdown Hide Other Aggregation + * @default null + */ + breakdown_hide_other_aggregation: boolean | null; + /** + * Breakdown Histogram Bin Count + * @default null + */ + breakdown_histogram_bin_count: number | null; + /** + * Breakdown Limit + * @default null + */ + breakdown_limit: number | null; + /** + * Breakdown Normalize Url + * @default null + */ + breakdown_normalize_url: boolean | null; + /** + * Breakdown Path Cleaning + * @default null + */ + breakdown_path_cleaning: boolean | null; + /** @default event */ + breakdown_type: components["schemas"]["BreakdownType"] | null; + /** + * Breakdowns + * @default null + */ + breakdowns: components["schemas"]["Breakdown"][] | null; + }; + /** BreakdownItem */ + BreakdownItem: { + /** Label */ + label: string; + /** Value */ + value: string | number; + }; + BreakdownSimulationResult: { + /** @description Breakdown value label. */ + label: string; + /** @description Data values for each point. */ + data: number[]; + /** @description Date labels for each point. */ + dates: string[]; + /** @description Anomaly score for each point. */ + scores: (number | null)[]; + /** @description Indices of points flagged as anomalies. */ + triggered_indices: number[]; + /** @description Dates of points flagged as anomalies. */ + triggered_dates: string[]; + /** @description Total number of data points analyzed. */ + total_points: number; + /** @description Number of anomalies detected. */ + anomaly_count: number; + /** @description Per-sub-detector scores for ensemble detectors. */ + sub_detector_scores?: { + [key: string]: unknown; + }[]; + }; + /** + * BreakdownType + * @enum {string} + */ + BreakdownType: "cohort" | "person" | "event" | "event_metadata" | "group" | "session" | "hogql" | "data_warehouse" | "data_warehouse_person_property" | "revenue_analytics"; + /** BreakdownValue */ + BreakdownValue: { + /** Count */ + count: number; + /** Value */ + value: string; + }; + /** @description Schema for a single breakpoint hit event */ + BreakpointHit: { + /** + * Format: uuid + * @description Unique identifier for the hit event + */ + id: string; + /** @description Line number where the breakpoint was hit */ + lineNumber: number; + /** @description Name of the function where breakpoint was hit */ + functionName: string; + /** + * Format: date-time + * @description When the breakpoint was hit + */ + timestamp: string; + /** @description Local variables at the time of the hit */ + variables: { + [key: string]: unknown; + }; + /** @description Stack trace at the time of the hit */ + stackTrace: unknown[]; + /** + * Format: uuid + * @description ID of the breakpoint that was hit + */ + breakpoint_id: string; + /** @description Filename where the breakpoint was hit */ + filename: string; + }; + /** @description Response schema for breakpoint hits endpoint */ + BreakpointHitsResponse: { + /** @description List of breakpoint hit events */ + results: components["schemas"]["BreakpointHit"][]; + /** @description Number of results returned */ + count: number; + /** @description Whether there are more results available */ + has_more: boolean; + }; + /** + * @description * `distinct_id` - User ID (default) + * * `device_id` - Device ID + * @enum {string} + */ + BucketingIdentifierEnum: "distinct_id" | "device_id"; + BulkUpdateTagsError: { + id: number; + reason: string; + }; + BulkUpdateTagsItem: { + id: number; + tags: string[]; + }; + BulkUpdateTagsRequest: { + /** @description List of object IDs to update tags on. */ + ids: number[]; + /** + * @description 'add' merges with existing tags, 'remove' deletes specific tags, 'set' replaces all tags. + * + * * `add` - add + * * `remove` - remove + * * `set` - set + */ + action: components["schemas"]["ActionEnum"]; + /** @description Tag names to add, remove, or set. */ + tags: string[]; + }; + BulkUpdateTagsResponse: { + updated: components["schemas"]["BulkUpdateTagsItem"][]; + skipped: components["schemas"]["BulkUpdateTagsError"][]; + }; + /** + * @description * `b2b` - B2B + * * `b2c` - B2C + * * `other` - Other + * @enum {string} + */ + BusinessModelEnum: "b2b" | "b2c" | "other"; + CIMDVerificationToken: { + /** Format: uuid */ + readonly id: string; + label: string; + readonly mask_value: string | null; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly last_used_at: string | null; + }; + /** + * @description Create-response variant that includes the plaintext token. + * + * Only emitted from the create endpoint - storage-side we only persist the + * hash, so subsequent reads use the base serializer. + */ + CIMDVerificationTokenWithValue: { + /** Format: uuid */ + readonly id: string; + label: string; + readonly mask_value: string | null; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly last_used_at: string | null; + /** @description Plaintext token, only returned on creation */ + readonly value: string; + }; + /** COPODDetectorConfig */ + COPODDetectorConfig: { + /** + * @description Preprocessing transforms applied before detection + * @default null + */ + preprocessing: components["schemas"]["PreprocessingConfig"] | null; + /** + * Threshold + * @description Anomaly probability threshold (default: 0.9) + * @default null + */ + threshold: number | null; + /** + * Type + * @default copod + * @constant + */ + type: "copod"; + /** + * Window + * @description Rolling window size — how many historical data points to train on (default: based on calculation interval) + * @default null + */ + window: number | null; + }; + CachedSummary: { + trace_id: string; + title: string; + /** @default true */ + cached: boolean; + }; + /** + * @description * `hourly` - hourly + * * `daily` - daily + * * `weekly` - weekly + * * `monthly` - monthly + * @enum {string} + */ + CalculationIntervalEnum: "hourly" | "daily" | "weekly" | "monthly"; + /** CalendarHeatmapFilter */ + CalendarHeatmapFilter: { + /** + * Dummy + * @default null + */ + dummy: string | null; + }; + /** + * CalendarHeatmapMathType + * @enum {string} + */ + CalendarHeatmapMathType: "total" | "dau"; + /** CalendarHeatmapQuery */ + CalendarHeatmapQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation + * @default null + */ + aggregation_group_type_index: number | null; + /** + * @description Properties specific to the trends insight + * @default null + */ + calendarHeatmapFilter: components["schemas"]["CalendarHeatmapFilter"] | null; + /** + * Conversiongoal + * @description Whether we should be comparing against a specific conversion goal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization + * @default null + */ + dataColorTheme: number | null; + /** + * @description Date range for the query + * @default null + */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Filtertestaccounts + * @description Exclude internal and test users by applying the respective filters + * @default false + */ + filterTestAccounts: boolean | null; + /** + * @description Granularity of the response. Can be one of `hour`, `day`, `week` or `month` + * @default day + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * Kind + * @default CalendarHeatmapQuery + * @constant + */ + kind: "CalendarHeatmapQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Properties + * @description Property filters for all series + * @default [] + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | components["schemas"]["PropertyGroupFilter"] | null; + /** @default null */ + response: components["schemas"]["CalendarHeatmapResponse"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** + * Series + * @description Events and actions to include + */ + series: (components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["DataWarehouseNode"])[]; + /** + * @description Tags that will be added to the Query log comment + * @default null + */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** CalendarHeatmapResponse */ + CalendarHeatmapResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @description Wether more breakdown values are available. + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + results: components["schemas"]["EventsHeatMapStructuredResult"]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + CapabilityState: { + /** + * @description Current state of the capability + * + * * `needs_setup` - needs_setup + * * `detected` - detected + * * `waiting_for_data` - waiting_for_data + * * `ready` - ready + * * `not_applicable` - not_applicable + * * `unknown` - unknown + */ + state: components["schemas"]["CapabilityStateStateEnum"]; + /** @description Whether the state is estimated from static analysis */ + estimated: boolean; + /** @description Human-readable explanation */ + reason: string; + /** @description Supporting evidence */ + evidence?: { + [key: string]: unknown; + }; + }; + /** + * @description * `needs_setup` - needs_setup + * * `detected` - detected + * * `waiting_for_data` - waiting_for_data + * * `ready` - ready + * * `not_applicable` - not_applicable + * * `unknown` - unknown + * @enum {string} + */ + CapabilityStateStateEnum: "needs_setup" | "detected" | "waiting_for_data" | "ready" | "not_applicable" | "unknown"; + CategoricalScoreDefinitionConfig: { + /** @description Ordered categorical options available to the scorer. */ + options: components["schemas"]["CategoricalScoreOption"][]; + /** + * @description Whether reviewers can select one option or multiple options. Defaults to `single`. + * + * * `single` - single + * * `multiple` - multiple + */ + selection_mode?: components["schemas"]["SelectionModeEnum"]; + /** @description Optional minimum number of options that can be selected when `selection_mode` is `multiple`. */ + min_selections?: number | null; + /** @description Optional maximum number of options that can be selected when `selection_mode` is `multiple`. */ + max_selections?: number | null; + }; + CategoricalScoreOption: { + /** @description Stable option key. Use lowercase letters, numbers, underscores, or hyphens. */ + key: string; + /** @description Human-readable option label. */ + label: string; + }; + /** + * @description * `business` - Business Operations + * * `data` - Data & Analytics + * * `design` - Design & Content + * * `dev` - Developer Tools & APIs + * * `infra` - Infrastructure + * * `productivity` - Productivity & Collaboration + * @enum {string} + */ + CategoryEnum: "business" | "data" | "design" | "dev" | "infra" | "productivity"; + /** + * @description * `consolidated` - consolidated + * * `cdc_only` - cdc_only + * * `both` - both + * @enum {string} + */ + CdcTableModeEnum: "consolidated" | "cdc_only" | "both"; + Change: { + readonly type: string; + readonly action: string; + readonly field: string; + readonly before: unknown; + readonly after: unknown; + }; + ChangeRequest: { + /** Format: uuid */ + readonly id: string; + readonly action_key: string; + readonly action_version: number; + readonly resource_type: string; + readonly resource_id: string | null; + readonly intent: unknown; + readonly intent_display: unknown; + readonly policy_snapshot: unknown; + readonly validation_status: components["schemas"]["ValidationStatusEnum"]; + readonly validation_errors: unknown; + /** Format: date-time */ + readonly validated_at: string | null; + readonly state: components["schemas"]["ChangeRequestStateEnum"]; + readonly created_by: components["schemas"]["UserBasic"]; + readonly applied_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + /** Format: date-time */ + readonly expires_at: string; + /** Format: date-time */ + readonly applied_at: string | null; + readonly apply_error: string; + readonly result_data: unknown; + readonly approvals: { + [key: string]: unknown; + }[]; + /** @description Check if current user can approve this change request. */ + readonly can_approve: boolean; + readonly can_cancel: boolean; + /** @description Check if current user is the requester. */ + readonly is_requester: boolean; + /** @description Get the current user's approval decision if they have voted. */ + readonly user_decision: string | null; + }; + /** + * @description * `pending` - Pending + * * `approved` - Approved (awaiting application) + * * `applied` - Applied + * * `rejected` - Rejected + * * `expired` - Expired + * * `failed` - Failed to apply + * @enum {string} + */ + ChangeRequestStateEnum: "pending" | "approved" | "applied" | "rejected" | "expired" | "failed"; + /** + * @description * `slack_channel_message` - Channel message + * * `slack_bot_mention` - Bot mention + * * `slack_emoji_reaction` - Emoji reaction + * * `teams_channel_message` - Teams channel message + * * `teams_bot_mention` - Teams bot mention + * * `widget_embedded` - Widget + * * `widget_api` - API + * * `github_issue` - GitHub issue + * @enum {string} + */ + ChannelDetailEnum: "slack_channel_message" | "slack_bot_mention" | "slack_emoji_reaction" | "teams_channel_message" | "teams_bot_mention" | "widget_embedded" | "widget_api" | "github_issue"; + /** + * @description * `widget` - Widget + * * `email` - Email + * * `slack` - Slack + * * `teams` - Microsoft Teams + * * `github` - GitHub + * @enum {string} + */ + ChannelSourceEnum: "widget" | "email" | "slack" | "teams" | "github"; + /** ChartAxis */ + ChartAxis: { + /** Column */ + column: string; + /** @default null */ + settings: components["schemas"]["Settings"] | null; + }; + /** + * ChartDisplayType + * @enum {string} + */ + ChartDisplayType: "Auto" | "ActionsLineGraph" | "ActionsBar" | "ActionsUnstackedBar" | "ActionsStackedBar" | "ActionsAreaGraph" | "ActionsLineGraphCumulative" | "BoldNumber" | "ActionsPie" | "ActionsBarValue" | "ActionsTable" | "WorldMap" | "CalendarHeatmap" | "TwoDimensionalHeatmap" | "BoxPlot"; + /** ChartSettings */ + ChartSettings: { + /** + * Goallines + * @default null + */ + goalLines: components["schemas"]["GoalLine"][] | null; + /** @default null */ + heatmap: components["schemas"]["HeatmapSettings"] | null; + /** @default null */ + leftYAxisSettings: components["schemas"]["YAxisSettings"] | null; + /** @default null */ + rightYAxisSettings: components["schemas"]["YAxisSettings"] | null; + /** + * Seriesbreakdowncolumn + * @default null + */ + seriesBreakdownColumn: string | null; + /** + * Showlegend + * @default null + */ + showLegend: boolean | null; + /** + * Shownullsaszero + * @default null + */ + showNullsAsZero: boolean | null; + /** + * Showpietotal + * @default null + */ + showPieTotal: boolean | null; + /** + * Showtotalrow + * @default null + */ + showTotalRow: boolean | null; + /** + * Showvaluesonseries + * @default null + */ + showValuesOnSeries: boolean | null; + /** + * Showxaxisborder + * @default null + */ + showXAxisBorder: boolean | null; + /** + * Showxaxisticks + * @default null + */ + showXAxisTicks: boolean | null; + /** + * Showyaxisborder + * @default null + */ + showYAxisBorder: boolean | null; + /** + * Stackbars100 + * @description Whether we fill the bars to 100% in stacked mode + * @default null + */ + stackBars100: boolean | null; + /** @default null */ + xAxis: components["schemas"]["ChartAxis"] | null; + /** + * Xaxislabel + * @default null + */ + xAxisLabel: string | null; + /** + * Yaxis + * @default null + */ + yAxis: components["schemas"]["ChartAxis"][] | null; + /** + * Yaxisatzero + * @description Deprecated: use `[left|right]YAxisSettings`. Whether the Y axis should start at zero + * @default null + */ + yAxisAtZero: boolean | null; + }; + /** ChartSettingsDisplay */ + ChartSettingsDisplay: { + /** + * Color + * @default null + */ + color: string | null; + /** @default null */ + displayType: components["schemas"]["DisplayType"] | null; + /** + * Label + * @default null + */ + label: string | null; + /** + * Trendline + * @default null + */ + trendLine: boolean | null; + /** @default null */ + yAxisPosition: components["schemas"]["YAxisPosition"] | null; + }; + /** ChartSettingsFormatting */ + ChartSettingsFormatting: { + /** + * Decimalplaces + * @default null + */ + decimalPlaces: number | null; + /** + * Prefix + * @default null + */ + prefix: string | null; + /** @default null */ + style: components["schemas"]["Style"] | null; + /** + * Suffix + * @default null + */ + suffix: string | null; + }; + CheckDatabaseNameResponse: { + name: string; + available: boolean; + }; + /** + * @description * `claude` - claude + * @enum {string} + */ + ClaudeRuntimeAdapterEnum: "claude"; + /** @description Request body for creating a new task run */ + ClaudeTaskRunCreateSchema: { + /** + * @description Execution mode: 'interactive' for user-connected runs, 'background' for autonomous runs + * + * * `interactive` - interactive + * * `background` - background + * @default background + */ + mode: components["schemas"]["TaskExecutionModeEnum"]; + /** @description Git branch to checkout in the sandbox */ + branch?: string | null; + /** + * Format: uuid + * @description ID of a previous run to resume from. Must belong to the same task. + */ + resume_from_run_id?: string; + /** @description Initial or follow-up user message to include in the run prompt. */ + pending_user_message?: string; + /** @description Identifiers for staged task artifacts that should be attached to the initial run prompt. */ + pending_user_artifact_ids?: string[]; + /** + * Format: uuid + * @description Optional sandbox environment to apply for this cloud run. + */ + sandbox_environment_id?: string; + /** + * @description Whether pull requests for this run should be authored by the user or the bot. + * + * * `user` - user + * * `bot` - bot + */ + pr_authorship_mode?: components["schemas"]["PrAuthorshipModeEnum"]; + /** + * @description High-level source that triggered this run, used to distinguish manual and signal-based cloud runs. + * + * * `manual` - manual + * * `signal_report` - signal_report + */ + run_source?: components["schemas"]["RunSourceEnum"]; + /** @description Optional signal report identifier when this run was started from Inbox. */ + signal_report_id?: string; + /** + * @description Agent runtime adapter to launch for this run. Must be 'claude' for Claude runtimes. + * + * * `claude` - claude + */ + runtime_adapter: components["schemas"]["ClaudeRuntimeAdapterEnum"]; + /** @description LLM model identifier to run in the Claude runtime. */ + model: string; + /** + * @description Reasoning effort to request for models that expose an effort control. + * + * * `low` - low + * * `medium` - medium + * * `high` - high + * * `xhigh` - xhigh + * * `max` - max + */ + reasoning_effort?: components["schemas"]["ReasoningEffortEnum"]; + /** @description Optional GitHub user token from PostHog Code for user-authored cloud pull requests. Prefer linking GitHub from Settings → Linked accounts so the server can manage tokens; this field remains supported for callers that still manage their own tokens. */ + github_user_token?: string; + /** + * @description Initial permission mode for Claude runtimes. + * + * * `default` - default + * * `acceptEdits` - acceptEdits + * * `plan` - plan + * * `bypassPermissions` - bypassPermissions + * * `auto` - auto + */ + initial_permission_mode?: components["schemas"]["ClaudeTaskRunCreateSchemaInitialPermissionModeEnum"]; + }; + /** + * @description * `default` - default + * * `acceptEdits` - acceptEdits + * * `plan` - plan + * * `bypassPermissions` - bypassPermissions + * * `auto` - auto + * @enum {string} + */ + ClaudeTaskRunCreateSchemaInitialPermissionModeEnum: "default" | "acceptEdits" | "plan" | "bypassPermissions" | "auto"; + ClickhouseEvent: { + readonly id: string; + readonly distinct_id: string; + readonly properties: { + [key: string]: unknown; + }; + readonly event: string; + /** Format: date-time */ + readonly timestamp: string; + readonly person: { + [key: string]: unknown; + } | null; + readonly elements: components["schemas"]["EventElement"][]; + readonly elements_chain: string; + }; + /** ClickhouseQueryProgress */ + ClickhouseQueryProgress: { + /** Active Cpu Time */ + active_cpu_time: number; + /** Bytes Read */ + bytes_read: number; + /** Estimated Rows Total */ + estimated_rows_total: number; + /** Rows Read */ + rows_read: number; + /** Time Elapsed */ + time_elapsed: number; + }; + ClusterSummary: { + items: components["schemas"]["DiffCluster"][]; + total: number; + truncated: boolean; + }; + ClusteringJob: { + /** Format: uuid */ + readonly id: string; + name: string; + analysis_level: components["schemas"]["ClusteringJobAnalysisLevelEnum"]; + event_filters?: unknown; + enabled?: boolean; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + /** + * @description * `trace` - trace + * * `generation` - generation + * * `evaluation` - evaluation + * @enum {string} + */ + ClusteringJobAnalysisLevelEnum: "trace" | "generation" | "evaluation"; + CodeInviteRedeemRequest: { + code: string; + }; + /** + * @description * `codex` - codex + * @enum {string} + */ + CodexRuntimeAdapterEnum: "codex"; + /** @description Request body for creating a new task run */ + CodexTaskRunCreateSchema: { + /** + * @description Execution mode: 'interactive' for user-connected runs, 'background' for autonomous runs + * + * * `interactive` - interactive + * * `background` - background + * @default background + */ + mode: components["schemas"]["TaskExecutionModeEnum"]; + /** @description Git branch to checkout in the sandbox */ + branch?: string | null; + /** + * Format: uuid + * @description ID of a previous run to resume from. Must belong to the same task. + */ + resume_from_run_id?: string; + /** @description Initial or follow-up user message to include in the run prompt. */ + pending_user_message?: string; + /** @description Identifiers for staged task artifacts that should be attached to the initial run prompt. */ + pending_user_artifact_ids?: string[]; + /** + * Format: uuid + * @description Optional sandbox environment to apply for this cloud run. + */ + sandbox_environment_id?: string; + /** + * @description Whether pull requests for this run should be authored by the user or the bot. + * + * * `user` - user + * * `bot` - bot + */ + pr_authorship_mode?: components["schemas"]["PrAuthorshipModeEnum"]; + /** + * @description High-level source that triggered this run, used to distinguish manual and signal-based cloud runs. + * + * * `manual` - manual + * * `signal_report` - signal_report + */ + run_source?: components["schemas"]["RunSourceEnum"]; + /** @description Optional signal report identifier when this run was started from Inbox. */ + signal_report_id?: string; + /** + * @description Agent runtime adapter to launch for this run. Must be 'codex' for Codex runtimes. + * + * * `codex` - codex + */ + runtime_adapter: components["schemas"]["CodexRuntimeAdapterEnum"]; + /** @description LLM model identifier to run in the Codex runtime. */ + model: string; + /** + * @description Reasoning effort to request for models that expose an effort control. + * + * * `low` - low + * * `medium` - medium + * * `high` - high + * * `xhigh` - xhigh + * * `max` - max + */ + reasoning_effort?: components["schemas"]["ReasoningEffortEnum"]; + /** @description Optional GitHub user token from PostHog Code for user-authored cloud pull requests. Prefer linking GitHub from Settings → Linked accounts so the server can manage tokens; this field remains supported for callers that still manage their own tokens. */ + github_user_token?: string; + /** + * @description Initial permission mode for Codex runtimes. + * + * * `auto` - auto + * * `read-only` - read-only + * * `full-access` - full-access + */ + initial_permission_mode?: components["schemas"]["CodexTaskRunCreateSchemaInitialPermissionModeEnum"]; + }; + /** + * @description * `auto` - auto + * * `read-only` - read-only + * * `full-access` - full-access + * @enum {string} + */ + CodexTaskRunCreateSchemaInitialPermissionModeEnum: "auto" | "read-only" | "full-access"; + Cohort: { + readonly id: number; + name?: string | null; + description?: string; + groups?: unknown; + deleted?: boolean; + filters?: components["schemas"]["CohortFilters"] | null; + query?: unknown; + readonly version: number | null; + readonly pending_version: number | null; + readonly is_calculating: boolean; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string | null; + /** Format: date-time */ + readonly last_calculation: string | null; + /** Format: date-time */ + readonly last_backfill_person_properties_at: string | null; + readonly errors_calculating: number; + readonly last_error_message: string | null; + readonly count: number | null; + is_static?: boolean; + /** + * @description Type of cohort based on filter complexity + * + * * `static` - static + * * `person_property` - person_property + * * `behavioral` - behavioral + * * `realtime` - realtime + * * `analytical` - analytical + */ + cohort_type?: components["schemas"]["CohortTypeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + readonly experiment_set: number[]; + /** create in folder */ + _create_in_folder?: string; + /** + * create static person ids + * @default [] + */ + _create_static_person_ids: string[]; + }; + /** CohortFilter */ + CohortFilter: { + /** + * Bytecode + * @default null + */ + bytecode: unknown[] | null; + /** + * Bytecode Error + * @default null + */ + bytecode_error: string | null; + /** + * Conditionhash + * @default null + */ + conditionHash: string | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "cohort"; + /** + * Key + * @constant + */ + key: "id"; + /** Value */ + value: number; + /** + * Negation + * @default false + */ + negation: boolean; + }; + /** + * CohortFilterGroup + * @description AND/OR group containing cohort filters. Named to avoid collision with analytics Group model. + */ + CohortFilterGroup: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "AND" | "OR"; + /** Values */ + values: (components["schemas"]["BehavioralFilter"] | components["schemas"]["CohortFilter"] | components["schemas"]["PersonFilter"] | components["schemas"]["CohortFilterGroup"])[]; + }; + /** CohortFilters */ + CohortFilters: { + properties: components["schemas"]["CohortFilterGroup"]; + }; + CohortPersonResult: { + id: string; + /** Format: uuid */ + uuid: string; + type: components["schemas"]["CohortPersonResultTypeEnum"]; + name: string; + distinct_ids: string[]; + properties: { + [key: string]: unknown; + }; + /** Format: date-time */ + created_at: string | null; + /** Format: date-time */ + last_seen_at: string | null; + is_identified: boolean | null; + matched_recordings: { + [key: string]: unknown; + }[]; + /** Format: double */ + value_at_data_point: number | null; + }; + /** + * @description * `person` - person + * @enum {string} + */ + CohortPersonResultTypeEnum: "person"; + CohortPersonsResponse: { + results: components["schemas"]["CohortPersonResult"][]; + /** Format: uri */ + next: string | null; + /** Format: uri */ + previous: string | null; + }; + /** CohortPropertyFilter */ + CohortPropertyFilter: { + /** + * Cohort Name + * @default null + */ + cohort_name: string | null; + /** + * Key + * @default id + * @constant + */ + key: "id"; + /** + * Label + * @default null + */ + label: string | null; + /** @default in */ + operator: components["schemas"]["PropertyOperator"] | null; + /** + * Type + * @default cohort + * @constant + */ + type: "cohort"; + /** Value */ + value: number; + }; + /** + * @description * `static` - static + * * `person_property` - person_property + * * `behavioral` - behavioral + * * `realtime` - realtime + * * `analytical` - analytical + * @enum {string} + */ + CohortTypeEnum: "static" | "person_property" | "behavioral" | "realtime" | "analytical"; + /** + * ColorMode + * @enum {string} + */ + ColorMode: "light" | "dark"; + Comment: { + /** Format: uuid */ + readonly id: string; + readonly created_by: components["schemas"]["UserBasic"]; + deleted?: boolean | null; + mentions?: number[]; + slug?: string; + /** + * @description Whether this comment is an actionable task that can be marked complete. Tasks render with a checkbox in the UI and can be filtered as a separate kind. Cannot be set on replies (source_comment) or emoji reactions. Immutable after creation. + * @default false + */ + is_task: boolean; + /** @description The user who marked this task complete. Null for open tasks and non-task comments. */ + readonly completed_by: components["schemas"]["UserBasic"] | null; + content?: string | null; + rich_content?: unknown; + readonly version: number; + /** Format: date-time */ + readonly created_at: string; + item_id?: string | null; + item_context?: unknown; + scope: string; + /** + * Format: date-time + * @description ISO timestamp when the task was marked complete. Only meaningful when is_task is true. Read-only — toggled via the /complete and /reopen actions, not via PATCH. + */ + readonly completed_at: string | null; + /** Format: uuid */ + source_comment?: string | null; + }; + /** + * Compare + * @enum {string} + */ + Compare: "current" | "previous"; + /** CompareFilter */ + CompareFilter: { + /** + * Compare + * @description Whether to compare the current date range to a previous date range. + * @default false + */ + compare: boolean | null; + /** + * Compare To + * @description The date range to compare to. The value is a relative date. Examples of relative dates are: `-1y` for 1 year ago, `-14m` for 14 months ago, `-100w` for 100 weeks ago, `-14d` for 14 days ago, `-30h` for 30 hours ago. + * @default null + */ + compare_to: string | null; + }; + /** CompareItem */ + CompareItem: { + /** Label */ + label: string; + /** Value */ + value: string; + }; + /** + * @description * `brotli` - brotli + * * `gzip` - gzip + * * `lz4` - lz4 + * * `snappy` - snappy + * * `zstd` - zstd + * @enum {string} + */ + CompressionEnum: "brotli" | "gzip" | "lz4" | "snappy" | "zstd"; + /** + * @description * `won` - won + * * `lost` - lost + * * `inconclusive` - inconclusive + * * `stopped_early` - stopped_early + * * `invalid` - invalid + * @enum {string} + */ + ConclusionEnum: "won" | "lost" | "inconclusive" | "stopped_early" | "invalid"; + /** ConditionalFormattingRule */ + ConditionalFormattingRule: { + /** Bytecode */ + bytecode: unknown[]; + /** Color */ + color: string; + /** @default null */ + colorMode: components["schemas"]["ColorMode"] | null; + /** Columnname */ + columnName: string; + /** Id */ + id: string; + /** Input */ + input: string; + /** Templateid */ + templateId: string; + }; + /** @description Response containing a JWT token for direct sandbox connection */ + ConnectionTokenResponse: { + /** @description JWT token for authenticating with the sandbox */ + token: string; + }; + /** + * @description * `utf-8` - utf-8 + * * `base64` - base64 + * @enum {string} + */ + ContentEncodingEnum: "utf-8" | "base64"; + Conversation: { + /** Format: uuid */ + readonly id: string; + readonly status: components["schemas"]["ConversationStatus"]; + /** @description Title of the conversation. */ + readonly title: string | null; + readonly user: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string | null; + /** Format: date-time */ + readonly updated_at: string | null; + readonly type: components["schemas"]["ConversationType"]; + /** @description Whether this conversation was created during an impersonated session (e.g., by support agents). Internal conversations are hidden from customers. */ + readonly is_internal: boolean | null; + /** @description Unique key for Slack thread: '{workspace_id}:{channel}:{thread_ts}' */ + readonly slack_thread_key: string | null; + /** @description Slack workspace subdomain (e.g. 'posthog' for posthog.slack.com) */ + readonly slack_workspace_domain: string | null; + readonly messages: { + [key: string]: unknown; + }[]; + readonly has_unsupported_content: boolean; + readonly agent_mode: string | null; + readonly is_sandbox: boolean; + /** + * @description Return pending approval cards as structured data. + * + * Combines metadata from conversation.approval_decisions with payload from checkpoint + * interrupts (single source of truth for payload data). + */ + readonly pending_approvals: { + [key: string]: unknown; + }[]; + }; + ConversationMinimal: { + /** Format: uuid */ + readonly id: string; + readonly status: components["schemas"]["ConversationStatus"]; + /** @description Title of the conversation. */ + readonly title: string | null; + readonly user: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string | null; + /** Format: date-time */ + readonly updated_at: string | null; + readonly type: components["schemas"]["ConversationType"]; + /** @description Whether this conversation was created during an impersonated session (e.g., by support agents). Internal conversations are hidden from customers. */ + readonly is_internal: boolean | null; + /** @description Unique key for Slack thread: '{workspace_id}:{channel}:{thread_ts}' */ + readonly slack_thread_key: string | null; + /** @description Slack workspace subdomain (e.g. 'posthog' for posthog.slack.com) */ + readonly slack_workspace_domain: string | null; + }; + /** + * @description * `idle` - Idle + * * `in_progress` - In progress + * * `canceling` - Canceling + * @enum {string} + */ + ConversationStatus: "idle" | "in_progress" | "canceling"; + /** + * @description * `assistant` - Assistant + * * `tool_call` - Tool call + * * `deep_research` - Deep research + * * `slack` - Slack + * @enum {string} + */ + ConversationType: "assistant" | "tool_call" | "deep_research" | "slack"; + /** ConversionGoalFilter1 */ + ConversionGoalFilter1: { + /** Conversion Goal Id */ + conversion_goal_id: string; + /** Conversion Goal Name */ + conversion_goal_name: string; + /** + * Custom Name + * @default null + */ + custom_name: string | null; + /** + * Event + * @description The event or `null` for all events. + * @default null + */ + event: string | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Kind + * @default EventsNode + * @constant + */ + kind: "EventsNode"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * Math + * @default null + */ + math: components["schemas"]["BaseMathType"] | components["schemas"]["FunnelMathType"] | components["schemas"]["PropertyMathType"] | components["schemas"]["CountPerActorMathType"] | components["schemas"]["ExperimentMetricMathType"] | components["schemas"]["CalendarHeatmapMathType"] | "unique_group" | "hogql" | null; + /** @default null */ + math_group_type_index: components["schemas"]["MathGroupTypeIndex"] | null; + /** + * Math Hogql + * @default null + */ + math_hogql: string | null; + /** + * Math Multiplier + * @default null + */ + math_multiplier: number | null; + /** + * Math Property + * @default null + */ + math_property: string | null; + /** @default null */ + math_property_revenue_currency: components["schemas"]["RevenueCurrencyPropertyConfig"] | null; + /** + * Math Property Type + * @default null + */ + math_property_type: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Optionalinfunnel + * @default null + */ + optionalInFunnel: boolean | null; + /** + * Orderby + * @description Columns to order by + * @default null + */ + orderBy: string[] | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** Schema Map */ + schema_map: { + [key: string]: string | unknown; + }; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ConversionGoalFilter2 */ + ConversionGoalFilter2: { + /** Conversion Goal Id */ + conversion_goal_id: string; + /** Conversion Goal Name */ + conversion_goal_name: string; + /** + * Custom Name + * @default null + */ + custom_name: string | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** Id */ + id: number; + /** + * Kind + * @default ActionsNode + * @constant + */ + kind: "ActionsNode"; + /** + * Math + * @default null + */ + math: components["schemas"]["BaseMathType"] | components["schemas"]["FunnelMathType"] | components["schemas"]["PropertyMathType"] | components["schemas"]["CountPerActorMathType"] | components["schemas"]["ExperimentMetricMathType"] | components["schemas"]["CalendarHeatmapMathType"] | "unique_group" | "hogql" | null; + /** @default null */ + math_group_type_index: components["schemas"]["MathGroupTypeIndex"] | null; + /** + * Math Hogql + * @default null + */ + math_hogql: string | null; + /** + * Math Multiplier + * @default null + */ + math_multiplier: number | null; + /** + * Math Property + * @default null + */ + math_property: string | null; + /** @default null */ + math_property_revenue_currency: components["schemas"]["RevenueCurrencyPropertyConfig"] | null; + /** + * Math Property Type + * @default null + */ + math_property_type: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Optionalinfunnel + * @default null + */ + optionalInFunnel: boolean | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** Schema Map */ + schema_map: { + [key: string]: string | unknown; + }; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ConversionGoalFilter3 */ + ConversionGoalFilter3: { + /** Conversion Goal Id */ + conversion_goal_id: string; + /** Conversion Goal Name */ + conversion_goal_name: string; + /** + * Custom Name + * @default null + */ + custom_name: string | null; + /** Distinct Id Field */ + distinct_id_field: string; + /** + * Dw Source Type + * @default null + */ + dw_source_type: string | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** Id */ + id: string; + /** Id Field */ + id_field: string; + /** + * Kind + * @default DataWarehouseNode + * @constant + */ + kind: "DataWarehouseNode"; + /** + * Math + * @default null + */ + math: components["schemas"]["BaseMathType"] | components["schemas"]["FunnelMathType"] | components["schemas"]["PropertyMathType"] | components["schemas"]["CountPerActorMathType"] | components["schemas"]["ExperimentMetricMathType"] | components["schemas"]["CalendarHeatmapMathType"] | "unique_group" | "hogql" | null; + /** @default null */ + math_group_type_index: components["schemas"]["MathGroupTypeIndex"] | null; + /** + * Math Hogql + * @default null + */ + math_hogql: string | null; + /** + * Math Multiplier + * @default null + */ + math_multiplier: number | null; + /** + * Math Property + * @default null + */ + math_property: string | null; + /** @default null */ + math_property_revenue_currency: components["schemas"]["RevenueCurrencyPropertyConfig"] | null; + /** + * Math Property Type + * @default null + */ + math_property_type: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Optionalinfunnel + * @default null + */ + optionalInFunnel: boolean | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** Schema Map */ + schema_map: { + [key: string]: string | unknown; + }; + /** Table Name */ + table_name: string; + /** Timestamp Field */ + timestamp_field: string; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** + * @description * `0` - Disabled + * * `1` - Stateless + * * `2` - Stateful + * @enum {integer} + */ + CookielessServerHashModeEnum: 0 | 1 | 2; + CopyDashboardTemplate: { + /** + * Format: uuid + * @description UUID of a team-scoped template in the same organization. Global and feature-flag templates cannot be copied with this endpoint. + */ + source_template_id: string; + }; + CopyDashboardTileRequest: { + /** @description Dashboard id the tile currently belongs to. */ + fromDashboardId: number; + /** @description Dashboard tile id to copy. */ + tileId: number; + }; + CopyExperimentToProject: { + /** @description The team ID to copy the experiment to. */ + target_team_id: number; + /** @description Optional feature flag key to use in the destination team. */ + feature_flag_key?: string; + /** @description Optional name for the copied experiment. */ + name?: string; + }; + /** + * CorrelationType + * @enum {string} + */ + CorrelationType: "success" | "failure"; + /** + * CountPerActorMathType + * @enum {string} + */ + CountPerActorMathType: "avg_count_per_actor" | "min_count_per_actor" | "max_count_per_actor" | "median_count_per_actor" | "p75_count_per_actor" | "p90_count_per_actor" | "p95_count_per_actor" | "p99_count_per_actor"; + /** + * @description * `single` - Single page + * * `sitemap` - Sitemap + * * `same_origin` - Same origin crawl + * * `github_repo` - GitHub repository + * @enum {string} + */ + CrawlModeEnum: "single" | "sitemap" | "same_origin" | "github_repo"; + CreateGroup: { + group_type_index: number; + group_key: string; + group_properties?: unknown; + }; + /** + * @description Input serializer for POST. Mirrors the submittable fields on the model plus + * cross-field rules (BAA addon, DPA mode, uniqueness). The view supplies the + * organization and submitting user. + */ + CreateLegalDocument: { + /** + * @description Either 'BAA' or 'DPA'. + * + * * `BAA` - BAA + * * `DPA` - DPA + */ + document_type: components["schemas"]["DocumentTypeEnum"]; + /** @description The customer legal entity entering the agreement (PandaDoc's Client.Company). */ + company_name: string; + /** @description The customer address (PandaDoc's Client.StreetAddress). */ + company_address: string; + /** + * Format: email + * @description Email the signed PandaDoc envelope is sent to (PandaDoc's Client.Email). + */ + representative_email: string; + }; + /** @description Request body for creating a new recording */ + CreateRecordingRequest: { + /** + * @description Meeting platform being recorded + * + * * `zoom` - zoom + * * `teams` - teams + * * `meet` - meet + * * `desktop_audio` - desktop_audio + * * `slack` - slack + * @default desktop_audio + */ + platform: components["schemas"]["CreateRecordingRequestPlatformEnum"]; + }; + /** + * @description * `zoom` - zoom + * * `teams` - teams + * * `meet` - meet + * * `desktop_audio` - desktop_audio + * * `slack` - slack + * @enum {string} + */ + CreateRecordingRequestPlatformEnum: "zoom" | "teams" | "meet" | "desktop_audio" | "slack"; + /** @description Response for creating a new recording (includes upload_token) */ + CreateRecordingResponse: { + /** Format: uuid */ + readonly id: string; + readonly team: number; + readonly created_by: number | null; + /** Format: uuid */ + readonly sdk_upload_id: string; + /** Format: uuid */ + recall_recording_id?: string | null; + platform: components["schemas"]["MeetingPlatformEnum"]; + meeting_title?: string | null; + /** Format: uri */ + meeting_url?: string | null; + duration_seconds?: number | null; + status?: components["schemas"]["DesktopRecordingStatusEnum"]; + notes?: string | null; + error_message?: string | null; + /** Format: uri */ + video_url?: string | null; + /** Format: int64 */ + video_size_bytes?: number | null; + /** @description List of participant names */ + participants?: string[]; + readonly transcript_text: string; + /** @description Transcript segments with timestamps */ + transcript_segments?: components["schemas"]["TranscriptSegment"][]; + summary?: string | null; + /** @description AI-extracted tasks from transcript */ + extracted_tasks?: components["schemas"]["DesktopRecordingTask"][]; + /** Format: date-time */ + tasks_generated_at?: string | null; + /** Format: date-time */ + summary_generated_at?: string | null; + /** Format: date-time */ + started_at?: string; + /** Format: date-time */ + completed_at?: string | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + /** @description Recall.ai upload token for the desktop SDK */ + upload_token: string; + }; + CreateRepoInput: { + repo_full_name: string; + repo_external_id?: number | null; + }; + CreateRunInput: { + /** Format: uuid */ + repo_id: string; + run_type: string; + commit_sha: string; + branch: string; + snapshots: components["schemas"]["SnapshotManifestItem"][]; + pr_number?: number | null; + baseline_hashes?: { + [key: string]: string; + }; + unchanged_count?: number; + removed_identifiers?: string[]; + purpose?: string; + metadata?: { + [key: string]: unknown; + }; + }; + CreateRunResult: { + /** Format: uuid */ + run_id: string; + uploads: components["schemas"]["UploadTarget"][]; + }; + CreateTextSource: { + /** @description Short human label for the source. Shown in the settings list and in agent citations. */ + name: string; + /** @description Raw text to index. Capped at 1 MB; larger payloads should be split into multiple sources or wait for URL/file support in Stage 2/3. */ + text: string; + }; + /** + * @description * `web` - web + * * `api` - api + * * `mcp` - mcp + * @enum {string} + */ + CreatedViaEnum: "web" | "api" | "mcp"; + /** + * @description * `default` - Default + * * `template` - Template + * * `duplicate` - Duplicate + * * `unlisted` - Unlisted (product-embedded) + * @enum {string} + */ + CreationModeEnum: "default" | "template" | "duplicate" | "unlisted"; + /** + * @description * `USR` - user + * * `GIT` - GitHub + * @enum {string} + */ + CreationTypeEnum: "USR" | "GIT"; + Credential: { + /** Format: uuid */ + readonly id: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + access_key: string; + access_secret: string; + }; + /** + * CurrencyCode + * @enum {string} + */ + CurrencyCode: "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BRL" | "BSD" | "BTC" | "BTN" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHF" | "CLP" | "CNY" | "COP" | "CRC" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LTL" | "LVL" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRU" | "MTL" | "MUR" | "MVR" | "MWK" | "MXN" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SRD" | "SSP" | "STN" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "UYU" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XCD" | "XOF" | "XPF" | "YER" | "ZAR" | "ZMW"; + /** CustomChannelCondition */ + CustomChannelCondition: { + /** Id */ + id: string; + key: components["schemas"]["CustomChannelField"]; + op: components["schemas"]["CustomChannelOperator"]; + /** + * Value + * @default null + */ + value: string | string[] | null; + }; + /** + * CustomChannelField + * @enum {string} + */ + CustomChannelField: "utm_source" | "utm_medium" | "utm_campaign" | "referring_domain" | "url" | "pathname" | "hostname"; + /** + * CustomChannelOperator + * @enum {string} + */ + CustomChannelOperator: "exact" | "is_not" | "is_set" | "is_not_set" | "icontains" | "not_icontains" | "regex" | "not_regex"; + /** CustomChannelRule */ + CustomChannelRule: { + /** Channel Type */ + channel_type: string; + combiner: components["schemas"]["FilterLogicalOperator"]; + /** Id */ + id: string; + /** Items */ + items: components["schemas"]["CustomChannelCondition"][]; + }; + /** CustomEventConversionGoal */ + CustomEventConversionGoal: { + /** Customeventname */ + customEventName: string; + }; + CustomerJourney: { + /** Format: uuid */ + readonly id: string; + insight: number; + name: string; + description?: string | null; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: number | null; + /** Format: date-time */ + readonly updated_at: string | null; + }; + CustomerProfileConfig: { + /** Format: uuid */ + readonly id: string; + scope: components["schemas"]["CustomerProfileConfigScopeEnum"]; + content?: unknown; + sidebar?: unknown; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + }; + /** + * @description * `person` - Person + * * `group_0` - Group 0 + * * `group_1` - Group 1 + * * `group_2` - Group 2 + * * `group_3` - Group 3 + * * `group_4` - Group 4 + * @enum {string} + */ + CustomerProfileConfigScopeEnum: "person" | "group_0" | "group_1" | "group_2" | "group_3" | "group_4"; + /** @description Serializer mixin that handles tags for objects. */ + Dashboard: { + readonly id: number; + name?: string | null; + description?: string; + pinned?: boolean; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + last_accessed_at?: string | null; + /** Format: date-time */ + readonly last_viewed_at: string | null; + readonly is_shared: boolean; + deleted?: boolean; + readonly creation_mode: components["schemas"]["CreationModeEnum"]; + readonly filters: { + [key: string]: unknown; + }; + readonly variables: { + [key: string]: unknown; + } | null; + /** @description Custom color mapping for breakdown values. */ + breakdown_colors?: unknown; + /** @description ID of the color theme used for chart visualizations. */ + data_color_theme_id?: number | null; + tags?: unknown[]; + restriction_level?: components["schemas"]["RestrictionLevelEnum"]; + readonly effective_restriction_level: components["schemas"]["EffectivePrivilegeLevelEnum"]; + readonly effective_privilege_level: components["schemas"]["EffectivePrivilegeLevelEnum"]; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + readonly access_control_version: string; + /** Format: date-time */ + last_refresh?: string | null; + readonly persisted_filters: { + [key: string]: unknown; + } | null; + readonly persisted_variables: { + [key: string]: unknown; + } | null; + readonly team_id: number; + /** @description List of quick filter IDs associated with this dashboard */ + quick_filter_ids?: string[] | null; + readonly tiles: { + [key: string]: unknown; + }[] | null; + /** @description Template key to create the dashboard from a predefined template. */ + use_template?: string; + /** @description ID of an existing dashboard to duplicate. */ + use_dashboard?: number | null; + /** + * @description When deleting, also delete insights that are only on this dashboard. + * @default false + */ + delete_insights: boolean; + /** create in folder */ + _create_in_folder?: string; + }; + /** @description Serializer mixin that handles tags for objects. */ + DashboardBasic: { + readonly id: number; + /** @description Name of the dashboard. */ + readonly name: string | null; + /** @description Description of the dashboard. */ + readonly description: string; + /** @description Whether the dashboard is pinned to the top of the list. */ + readonly pinned: boolean; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly last_accessed_at: string | null; + /** Format: date-time */ + readonly last_viewed_at: string | null; + readonly is_shared: boolean; + readonly deleted: boolean; + readonly creation_mode: components["schemas"]["CreationModeEnum"]; + tags?: unknown[]; + /** + * @description Controls who can edit the dashboard. + * + * * `21` - Everyone in the project can edit + * * `37` - Only those invited to this dashboard can edit + */ + readonly restriction_level: components["schemas"]["RestrictionLevelEnum"]; + readonly effective_restriction_level: components["schemas"]["EffectivePrivilegeLevelEnum"]; + readonly effective_privilege_level: components["schemas"]["EffectivePrivilegeLevelEnum"]; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + readonly access_control_version: string; + /** Format: date-time */ + readonly last_refresh: string | null; + readonly team_id: number; + }; + DashboardCollaborator: { + /** Format: uuid */ + readonly id: string; + readonly dashboard_id: number; + readonly user: components["schemas"]["UserBasic"]; + level: components["schemas"]["RestrictionLevelEnum"]; + /** Format: date-time */ + readonly added_at: string; + /** Format: date-time */ + readonly updated_at: string; + /** Format: uuid */ + user_uuid: string; + }; + /** DashboardFilter */ + DashboardFilter: { + /** @default null */ + breakdown_filter: components["schemas"]["BreakdownFilter"] | null; + /** + * Date From + * @default null + */ + date_from: string | null; + /** + * Date To + * @default null + */ + date_to: string | null; + /** + * Explicitdate + * @default null + */ + explicitDate: boolean | null; + /** + * Properties + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + }; + DashboardTemplate: { + /** Format: uuid */ + readonly id: string; + template_name?: string | null; + dashboard_description?: string | null; + dashboard_filters?: unknown; + tags?: string[] | null; + tiles?: unknown; + variables?: unknown; + deleted?: boolean | null; + /** Format: date-time */ + readonly created_at: string | null; + readonly created_by: components["schemas"]["UserBasic"]; + image_url?: string | null; + readonly team_id: number | null; + scope?: components["schemas"]["DashboardTemplateScopeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + availability_contexts?: string[] | null; + /** @description Manually curated; used to highlight templates in the UI. */ + is_featured?: boolean; + }; + /** + * @description * `team` - Only team + * * `global` - Global + * * `feature_flag` - Feature Flag + * @enum {string} + */ + DashboardTemplateScopeEnum: "team" | "global" | "feature_flag"; + DashboardTileBasic: { + readonly id: number; + readonly dashboard_id: number; + deleted?: boolean | null; + }; + /** @description DashboardTileSerializer restricted to tile id + insight result fields. */ + DashboardTileResult: { + id?: number; + insight: components["schemas"]["InsightResult"]; + }; + DataColorTheme: { + readonly id: number; + name: string; + colors?: unknown; + readonly is_global: boolean; + /** Format: date-time */ + readonly created_at: string | null; + readonly created_by: components["schemas"]["UserBasic"]; + }; + /** + * DataColorToken + * @enum {string} + */ + DataColorToken: "preset-1" | "preset-2" | "preset-3" | "preset-4" | "preset-5" | "preset-6" | "preset-7" | "preset-8" | "preset-9" | "preset-10" | "preset-11" | "preset-12" | "preset-13" | "preset-14" | "preset-15"; + DataModelingJob: { + /** Format: uuid */ + readonly id: string; + /** Format: uuid */ + readonly saved_query_id: string | null; + readonly status: components["schemas"]["DataModelingJobStatusEnum"]; + readonly rows_materialized: number; + readonly error: string | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly last_run_at: string; + readonly workflow_id: string | null; + readonly workflow_run_id: string | null; + /** @description Total rows expected to be materialized */ + readonly rows_expected: number | null; + }; + /** + * @description * `Cancelled` - Cancelled + * * `Completed` - Completed + * * `Failed` - Failed + * * `Running` - Running + * @enum {string} + */ + DataModelingJobStatusEnum: "Cancelled" | "Completed" | "Failed" | "Running"; + /** DataTableNode */ + DataTableNode: { + /** + * Allowsorting + * @description Can the user click on column headers to sort the table? (default: true) + * @default null + */ + allowSorting: boolean | null; + /** + * Columns + * @description Columns shown in the table, unless the `source` provides them. + * @default null + */ + columns: string[] | null; + /** + * @description Context for the table, used by components like ColumnConfigurator + * @default null + */ + context: components["schemas"]["DataTableNodeViewPropsContext"] | null; + /** + * Contextkey + * @description Context key for universal column configuration (e.g., "survey:123") + * @default null + */ + contextKey: string | null; + /** + * Defaultcolumns + * @description Default columns to use when resetting column configuration + * @default null + */ + defaultColumns: string[] | null; + /** + * Embedded + * @description Uses the embedded version of LemonTable + * @default null + */ + embedded: boolean | null; + /** + * Expandable + * @description Can expand row to show raw event data (default: true) + * @default null + */ + expandable: boolean | null; + /** + * Full + * @description Show with most visual options enabled. Used in scenes. + * @default null + */ + full: boolean | null; + /** + * Hiddencolumns + * @description Columns that aren't shown in the table, even if in columns or returned data + * @default null + */ + hiddenColumns: string[] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "DataTableNode"; + /** + * Pinnedcolumns + * @description Columns that are sticky when scrolling horizontally + * @default null + */ + pinnedColumns: string[] | null; + /** + * Propertiesviaurl + * @description Link properties via the URL (default: false) + * @default null + */ + propertiesViaUrl: boolean | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | components["schemas"]["Response"] | components["schemas"]["Response1"] | components["schemas"]["Response2"] | components["schemas"]["Response3"] | components["schemas"]["Response4"] | components["schemas"]["Response5"] | components["schemas"]["Response6"] | components["schemas"]["Response8"] | components["schemas"]["Response9"] | components["schemas"]["Response10"] | components["schemas"]["Response11"] | components["schemas"]["Response12"] | components["schemas"]["Response13"] | components["schemas"]["Response14"] | components["schemas"]["Response15"] | components["schemas"]["Response16"] | components["schemas"]["Response18"] | components["schemas"]["Response19"] | components["schemas"]["Response20"] | components["schemas"]["Response21"] | components["schemas"]["Response22"] | components["schemas"]["Response23"] | components["schemas"]["Response24"] | components["schemas"]["Response25"] | components["schemas"]["Response26"] | null; + /** + * Showabsolutetime + * @description Render date-time columns (timestamp, created_at, last_seen, last_seen_at, session_start, session_end) as absolute date+time instead of relative ("X ago"). The toggle is exposed in the column header menu only on EventsQuery / ActorsQuery sources. + * @default null + */ + showAbsoluteTime: boolean | null; + /** + * Showactions + * @description Show the kebab menu at the end of the row + * @default null + */ + showActions: boolean | null; + /** + * Showcolumnconfigurator + * @description Show a button to configure the table's columns if possible + * @default null + */ + showColumnConfigurator: boolean | null; + /** + * Showcount + * @description Show count of total and filtered results + * @default null + */ + showCount: boolean | null; + /** + * Showdaterange + * @description Show date range selector + * @default null + */ + showDateRange: boolean | null; + /** + * Showelapsedtime + * @description Show the time it takes to run a query + * @default null + */ + showElapsedTime: boolean | null; + /** + * Showeventfilter + * @description Include an event filter above the table (EventsNode only) + * @default null + */ + showEventFilter: boolean | null; + /** + * Showeventsfilter + * @description Include an events filter above the table to filter by multiple events (EventsQuery only) + * @default null + */ + showEventsFilter: boolean | null; + /** + * Showexport + * @description Show the export button + * @default null + */ + showExport: boolean | null; + /** + * Showhogqleditor + * @description Include a HogQL query editor above HogQL tables + * @default null + */ + showHogQLEditor: boolean | null; + /** + * Showopeneditorbutton + * @description Show a button to open the current query as a new insight. (default: true) + * @default null + */ + showOpenEditorButton: boolean | null; + /** + * Showpersistentcolumnconfigurator + * @description Show a button to configure and persist the table's default columns if possible + * @default null + */ + showPersistentColumnConfigurator: boolean | null; + /** + * Showpropertyfilter + * @description Include a property filter above the table + * @default null + */ + showPropertyFilter: boolean | components["schemas"]["TaxonomicFilterGroupType"][] | null; + /** + * Showrecordingcolumn + * @description Show a recording column for events with session recordings + * @default null + */ + showRecordingColumn: boolean | null; + /** + * Showreload + * @description Show a reload button + * @default null + */ + showReload: boolean | null; + /** + * Showresultstable + * @description Show a results table + * @default null + */ + showResultsTable: boolean | null; + /** + * Showsavedfilters + * @description Show saved filters feature for this table (requires uniqueKey) + * @default null + */ + showSavedFilters: boolean | null; + /** + * Showsavedqueries + * @description Shows a list of saved queries + * @default null + */ + showSavedQueries: boolean | null; + /** + * Showsearch + * @description Include a free text search field (PersonsNode only) + * @default null + */ + showSearch: boolean | null; + /** + * Showsourcequeryoptions + * @description Show actors query options and back to source + * @default null + */ + showSourceQueryOptions: boolean | null; + /** + * Showtableviews + * @description Show table views feature for this table (requires uniqueKey) + * @default null + */ + showTableViews: boolean | null; + /** + * Showtestaccountfilters + * @description Show filter to exclude test accounts + * @default null + */ + showTestAccountFilters: boolean | null; + /** + * Showtimings + * @description Show a detailed query timing breakdown + * @default null + */ + showTimings: boolean | null; + /** + * Source + * @description Source of the events + */ + source: components["schemas"]["EventsNode"] | components["schemas"]["EventsQuery"] | components["schemas"]["PersonsNode"] | components["schemas"]["ActorsQuery"] | components["schemas"]["GroupsQuery"] | components["schemas"]["HogQLQuery"] | components["schemas"]["WebOverviewQuery"] | components["schemas"]["WebStatsTableQuery"] | components["schemas"]["WebExternalClicksTableQuery"] | components["schemas"]["WebGoalsQuery"] | components["schemas"]["WebVitalsQuery"] | components["schemas"]["WebVitalsPathBreakdownQuery"] | components["schemas"]["SessionAttributionExplorerQuery"] | components["schemas"]["SessionsQuery"] | components["schemas"]["RevenueAnalyticsGrossRevenueQuery"] | components["schemas"]["RevenueAnalyticsMetricsQuery"] | components["schemas"]["RevenueAnalyticsMRRQuery"] | components["schemas"]["RevenueAnalyticsOverviewQuery"] | components["schemas"]["RevenueAnalyticsTopCustomersQuery"] | components["schemas"]["RevenueExampleEventsQuery"] | components["schemas"]["RevenueExampleDataWarehouseTablesQuery"] | components["schemas"]["MarketingAnalyticsTableQuery"] | components["schemas"]["MarketingAnalyticsAggregatedQuery"] | components["schemas"]["NonIntegratedConversionsTableQuery"] | components["schemas"]["ErrorTrackingQuery"] | components["schemas"]["ErrorTrackingIssueCorrelationQuery"] | components["schemas"]["ExperimentFunnelsQuery"] | components["schemas"]["ExperimentTrendsQuery"] | components["schemas"]["TracesQuery"] | components["schemas"]["TraceQuery"] | components["schemas"]["EndpointsUsageTableQuery"]; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** DataTableNodeViewPropsContext */ + DataTableNodeViewPropsContext: { + /** + * Eventdefinitionid + * @default null + */ + eventDefinitionId: string | null; + type: components["schemas"]["DataTableNodeViewPropsContextType"]; + }; + /** + * DataTableNodeViewPropsContextType + * @enum {string} + */ + DataTableNodeViewPropsContextType: "event_definition" | "team_columns"; + /** DataVisualizationNode */ + DataVisualizationNode: { + /** @default null */ + chartSettings: components["schemas"]["ChartSettings"] | null; + /** @default null */ + display: components["schemas"]["ChartDisplayType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "DataVisualizationNode"; + source: components["schemas"]["HogQLQuery"]; + /** @default null */ + tableSettings: components["schemas"]["TableSettings"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** DataWarehouseEventsModifier */ + DataWarehouseEventsModifier: { + /** Distinct Id Field */ + distinct_id_field: string; + /** Id Field */ + id_field: string; + /** Table Name */ + table_name: string; + /** Timestamp Field */ + timestamp_field: string; + }; + DataWarehouseModelPath: { + /** Format: uuid */ + readonly id: string; + readonly path: string[]; + team: number; + /** Format: uuid */ + table?: string | null; + /** Format: uuid */ + saved_query?: string | null; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly updated_at: string | null; + }; + /** DataWarehouseNode */ + DataWarehouseNode: { + /** + * Custom Name + * @default null + */ + custom_name: string | null; + /** Distinct Id Field */ + distinct_id_field: string; + /** + * Dw Source Type + * @default null + */ + dw_source_type: string | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** Id */ + id: string; + /** Id Field */ + id_field: string; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "DataWarehouseNode"; + /** + * Math + * @default null + */ + math: components["schemas"]["BaseMathType"] | components["schemas"]["FunnelMathType"] | components["schemas"]["PropertyMathType"] | components["schemas"]["CountPerActorMathType"] | components["schemas"]["ExperimentMetricMathType"] | components["schemas"]["CalendarHeatmapMathType"] | "unique_group" | "hogql" | null; + /** @default null */ + math_group_type_index: components["schemas"]["MathGroupTypeIndex"] | null; + /** + * Math Hogql + * @default null + */ + math_hogql: string | null; + /** + * Math Multiplier + * @default null + */ + math_multiplier: number | null; + /** + * Math Property + * @default null + */ + math_property: string | null; + /** @default null */ + math_property_revenue_currency: components["schemas"]["RevenueCurrencyPropertyConfig"] | null; + /** + * Math Property Type + * @default null + */ + math_property_type: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Optionalinfunnel + * @default null + */ + optionalInFunnel: boolean | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** Table Name */ + table_name: string; + /** Timestamp Field */ + timestamp_field: string; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** DataWarehousePersonPropertyFilter */ + DataWarehousePersonPropertyFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + /** + * Type + * @default data_warehouse_person_property + * @constant + */ + type: "data_warehouse_person_property"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + /** DataWarehousePropertyFilter */ + DataWarehousePropertyFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + /** + * Type + * @default data_warehouse + * @constant + */ + type: "data_warehouse"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + /** + * @description Shared methods for DataWarehouseSavedQuery serializers. + * + * This mixin is intended to be used with serializers.ModelSerializer subclasses. + */ + DataWarehouseSavedQuery: { + /** Format: uuid */ + readonly id: string; + deleted?: boolean | null; + /** @description Unique name for the view. Used as the table name in HogQL queries and the node name in the data modeling Node. */ + name: string; + /** @description HogQL query definition as a JSON object with a "query" key containing the SQL string and a "kind" key containing the query type. Example: {"query": "SELECT * FROM events LIMIT 100", "kind": "HogQLQuery"} */ + query?: unknown; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + readonly sync_frequency: string | null; + readonly columns: { + [key: string]: unknown; + }[]; + /** + * @description The status of when this SavedQuery last ran. + * + * * `Cancelled` - Cancelled + * * `Modified` - Modified + * * `Completed` - Completed + * * `Failed` - Failed + * * `Running` - Running + */ + readonly status: components["schemas"]["SavedQueryStatusEnum"] | components["schemas"]["NullEnum"]; + /** Format: date-time */ + readonly last_run_at: string | null; + readonly managed_viewset_kind: string | null; + /** + * Format: uuid + * @description Optional folder ID used to organize this view in the SQL editor sidebar. + */ + folder_id?: string | null; + /** @description Folder name used to organize this view in the SQL editor sidebar. */ + readonly folder_name: string | null; + readonly latest_error: string | null; + /** @description Activity log ID from the last known edit. Used for conflict detection. */ + edited_history_id?: string | null; + readonly latest_history_id: number | null; + /** @description If true, skip column inference and validation. For saving drafts. */ + soft_update?: boolean | null; + /** + * Format: uuid + * @description Optional DAG to place this view into + */ + dag_id?: string | null; + readonly is_materialized: boolean | null; + /** + * @description Where this SavedQuery is created. + * + * * `data_warehouse` - Data Warehouse + * * `endpoint` - Endpoint + * * `managed_viewset` - Managed Viewset + */ + readonly origin: components["schemas"]["OriginEnum"] | components["schemas"]["NullEnum"]; + /** @description Whether this view is for testing only and will auto-expire. */ + is_test?: boolean; + /** + * Format: date-time + * @description When this test view should be automatically deleted. + */ + readonly expires_at: string | null; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + }; + /** @description Mixin for serializers to add user access control fields */ + DataWarehouseSavedQueryFolder: { + /** Format: uuid */ + readonly id: string; + /** @description Display name for the folder used to organize saved queries in the SQL editor sidebar. */ + name: string; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + readonly view_count: number; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + }; + /** @description Lightweight serializer for list views - excludes large query field to reduce memory usage. */ + DataWarehouseSavedQueryMinimal: { + /** Format: uuid */ + readonly id: string; + readonly deleted: boolean | null; + readonly name: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + readonly sync_frequency: string | null; + readonly columns: { + [key: string]: unknown; + }[]; + /** + * @description The status of when this SavedQuery last ran. + * + * * `Cancelled` - Cancelled + * * `Modified` - Modified + * * `Completed` - Completed + * * `Failed` - Failed + * * `Running` - Running + */ + readonly status: components["schemas"]["SavedQueryStatusEnum"] | components["schemas"]["NullEnum"]; + /** Format: date-time */ + readonly last_run_at: string | null; + readonly managed_viewset_kind: string | null; + /** Format: uuid */ + readonly folder_id: string | null; + readonly folder_name: string | null; + readonly latest_error: string | null; + readonly is_materialized: boolean | null; + /** + * @description Where this SavedQuery is created. + * + * * `data_warehouse` - Data Warehouse + * * `endpoint` - Endpoint + * * `managed_viewset` - Managed Viewset + */ + readonly origin: components["schemas"]["OriginEnum"] | components["schemas"]["NullEnum"]; + /** @description Whether this view is for testing only and will auto-expire. */ + readonly is_test: boolean; + /** + * Format: date-time + * @description When this test view should be automatically deleted. + */ + readonly expires_at: string | null; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + }; + /** DataWarehouseViewLink */ + DataWarehouseViewLink: { + /** + * Created At + * @default null + */ + created_at: string | null; + /** @default null */ + created_by: components["schemas"]["UserBasicType"] | null; + /** + * Field Name + * @default null + */ + field_name: string | null; + /** Id */ + id: string; + /** + * Joining Table Key + * @default null + */ + joining_table_key: string | null; + /** + * Joining Table Name + * @default null + */ + joining_table_name: string | null; + /** + * Source Table Key + * @default null + */ + source_table_key: string | null; + /** + * Source Table Name + * @default null + */ + source_table_name: string | null; + }; + /** DatabaseSchemaBatchExportTable */ + DatabaseSchemaBatchExportTable: { + /** Fields */ + fields: { + [key: string]: components["schemas"]["DatabaseSchemaField"]; + }; + /** Id */ + id: string; + /** Name */ + name: string; + /** + * Row Count + * @default null + */ + row_count: number | null; + /** + * Type + * @default batch_export + * @constant + */ + type: "batch_export"; + }; + /** DatabaseSchemaDataWarehouseTable */ + DatabaseSchemaDataWarehouseTable: { + /** Fields */ + fields: { + [key: string]: components["schemas"]["DatabaseSchemaField"]; + }; + /** Format */ + format: string; + /** Id */ + id: string; + /** Name */ + name: string; + /** + * Row Count + * @default null + */ + row_count: number | null; + /** @default null */ + schema: components["schemas"]["DatabaseSchemaSchema"] | null; + /** @default null */ + source: components["schemas"]["DatabaseSchemaSource"] | null; + /** + * Type + * @default data_warehouse + * @constant + */ + type: "data_warehouse"; + /** Url Pattern */ + url_pattern: string; + }; + /** DatabaseSchemaEndpointTable */ + DatabaseSchemaEndpointTable: { + /** Fields */ + fields: { + [key: string]: components["schemas"]["DatabaseSchemaField"]; + }; + /** Id */ + id: string; + /** Name */ + name: string; + query: components["schemas"]["HogQLQuery"]; + /** + * Row Count + * @default null + */ + row_count: number | null; + /** + * Status + * @default null + */ + status: string | null; + /** + * Type + * @default endpoint + * @constant + */ + type: "endpoint"; + }; + /** DatabaseSchemaField */ + DatabaseSchemaField: { + /** + * Chain + * @default null + */ + chain: (string | number)[] | null; + /** + * Fields + * @default null + */ + fields: string[] | null; + /** Hogql Value */ + hogql_value: string; + /** + * Id + * @default null + */ + id: string | null; + /** Name */ + name: string; + /** Schema Valid */ + schema_valid: boolean; + /** + * Table + * @default null + */ + table: string | null; + type: components["schemas"]["DatabaseSerializedFieldType"]; + }; + /** DatabaseSchemaManagedViewTable */ + DatabaseSchemaManagedViewTable: { + /** Fields */ + fields: { + [key: string]: components["schemas"]["DatabaseSchemaField"]; + }; + /** Id */ + id: string; + kind: components["schemas"]["DatabaseSchemaManagedViewTableKind"]; + /** Name */ + name: string; + query: components["schemas"]["HogQLQuery"]; + /** + * Row Count + * @default null + */ + row_count: number | null; + /** + * Source Id + * @default null + */ + source_id: string | null; + /** + * Type + * @default managed_view + * @constant + */ + type: "managed_view"; + }; + /** + * DatabaseSchemaManagedViewTableKind + * @enum {string} + */ + DatabaseSchemaManagedViewTableKind: "revenue_analytics_charge" | "revenue_analytics_customer" | "revenue_analytics_mrr" | "revenue_analytics_product" | "revenue_analytics_revenue_item" | "revenue_analytics_subscription"; + /** DatabaseSchemaMaterializedViewTable */ + DatabaseSchemaMaterializedViewTable: { + /** Fields */ + fields: { + [key: string]: components["schemas"]["DatabaseSchemaField"]; + }; + /** Id */ + id: string; + /** + * Last Run At + * @default null + */ + last_run_at: string | null; + /** Name */ + name: string; + query: components["schemas"]["HogQLQuery"]; + /** + * Row Count + * @default null + */ + row_count: number | null; + /** + * Status + * @default null + */ + status: string | null; + /** + * Type + * @default materialized_view + * @constant + */ + type: "materialized_view"; + }; + /** DatabaseSchemaPostHogTable */ + DatabaseSchemaPostHogTable: { + /** Fields */ + fields: { + [key: string]: components["schemas"]["DatabaseSchemaField"]; + }; + /** Id */ + id: string; + /** Name */ + name: string; + /** + * Row Count + * @default null + */ + row_count: number | null; + /** + * Type + * @default posthog + * @constant + */ + type: "posthog"; + }; + /** DatabaseSchemaQuery */ + DatabaseSchemaQuery: { + /** + * Connectionid + * @description Optional direct external data source id for schema introspection + * @default null + */ + connectionId: string | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "DatabaseSchemaQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["DatabaseSchemaQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** DatabaseSchemaQueryResponse */ + DatabaseSchemaQueryResponse: { + /** Joins */ + joins: components["schemas"]["DataWarehouseViewLink"][]; + /** Tables */ + tables: { + [key: string]: components["schemas"]["DatabaseSchemaPostHogTable"] | components["schemas"]["DatabaseSchemaSystemTable"] | components["schemas"]["DatabaseSchemaDataWarehouseTable"] | components["schemas"]["DatabaseSchemaViewTable"] | components["schemas"]["DatabaseSchemaManagedViewTable"] | components["schemas"]["DatabaseSchemaBatchExportTable"] | components["schemas"]["DatabaseSchemaMaterializedViewTable"] | components["schemas"]["DatabaseSchemaEndpointTable"]; + }; + }; + /** + * @description Validate credentials and preview available tables from a remote database. + * + * The request body contains source_type plus flat source-specific credential fields + * (e.g. host, port, database, user, password, schema for Postgres). The credential + * fields vary per source_type and are validated dynamically by the source registry. + */ + DatabaseSchemaRequest: { + /** + * @description The source type to validate against. + * + * * `Ashby` - Ashby + * * `Supabase` - Supabase + * * `CustomerIO` - CustomerIO + * * `Github` - Github + * * `Stripe` - Stripe + * * `Hubspot` - Hubspot + * * `Postgres` - Postgres + * * `Zendesk` - Zendesk + * * `Snowflake` - Snowflake + * * `Salesforce` - Salesforce + * * `MySQL` - MySQL + * * `MongoDB` - MongoDB + * * `MSSQL` - MSSQL + * * `Vitally` - Vitally + * * `BigQuery` - BigQuery + * * `Chargebee` - Chargebee + * * `Clerk` - Clerk + * * `GoogleAds` - GoogleAds + * * `TemporalIO` - TemporalIO + * * `DoIt` - DoIt + * * `GoogleSheets` - GoogleSheets + * * `MetaAds` - MetaAds + * * `Klaviyo` - Klaviyo + * * `Mailchimp` - Mailchimp + * * `Braze` - Braze + * * `Mailjet` - Mailjet + * * `Redshift` - Redshift + * * `Polar` - Polar + * * `RevenueCat` - RevenueCat + * * `LinkedinAds` - LinkedinAds + * * `RedditAds` - RedditAds + * * `TikTokAds` - TikTokAds + * * `BingAds` - BingAds + * * `Shopify` - Shopify + * * `Attio` - Attio + * * `SnapchatAds` - SnapchatAds + * * `Linear` - Linear + * * `Intercom` - Intercom + * * `Amplitude` - Amplitude + * * `Mixpanel` - Mixpanel + * * `Jira` - Jira + * * `ActiveCampaign` - ActiveCampaign + * * `Marketo` - Marketo + * * `Adjust` - Adjust + * * `AppsFlyer` - AppsFlyer + * * `Freshdesk` - Freshdesk + * * `GoogleAnalytics` - GoogleAnalytics + * * `Pipedrive` - Pipedrive + * * `SendGrid` - SendGrid + * * `Slack` - Slack + * * `PagerDuty` - PagerDuty + * * `Asana` - Asana + * * `Notion` - Notion + * * `Airtable` - Airtable + * * `Greenhouse` - Greenhouse + * * `BambooHR` - BambooHR + * * `Lever` - Lever + * * `GitLab` - GitLab + * * `Datadog` - Datadog + * * `Sentry` - Sentry + * * `Pendo` - Pendo + * * `FullStory` - FullStory + * * `AmazonAds` - AmazonAds + * * `PinterestAds` - PinterestAds + * * `AppleSearchAds` - AppleSearchAds + * * `QuickBooks` - QuickBooks + * * `Xero` - Xero + * * `NetSuite` - NetSuite + * * `WooCommerce` - WooCommerce + * * `BigCommerce` - BigCommerce + * * `PayPal` - PayPal + * * `Square` - Square + * * `Zoom` - Zoom + * * `Trello` - Trello + * * `Monday` - Monday + * * `ClickUp` - ClickUp + * * `Confluence` - Confluence + * * `Recurly` - Recurly + * * `SalesLoft` - SalesLoft + * * `Outreach` - Outreach + * * `Gong` - Gong + * * `Calendly` - Calendly + * * `Typeform` - Typeform + * * `Iterable` - Iterable + * * `ZohoCRM` - ZohoCRM + * * `Close` - Close + * * `Oracle` - Oracle + * * `DynamoDB` - DynamoDB + * * `Elasticsearch` - Elasticsearch + * * `Kafka` - Kafka + * * `LaunchDarkly` - LaunchDarkly + * * `Braintree` - Braintree + * * `Recharge` - Recharge + * * `HelpScout` - HelpScout + * * `Gorgias` - Gorgias + * * `Instagram` - Instagram + * * `YouTubeAnalytics` - YouTubeAnalytics + * * `FacebookPages` - FacebookPages + * * `TwitterAds` - TwitterAds + * * `Workday` - Workday + * * `ServiceNow` - ServiceNow + * * `Pardot` - Pardot + * * `Copper` - Copper + * * `Front` - Front + * * `ChartMogul` - ChartMogul + * * `Zuora` - Zuora + * * `Paddle` - Paddle + * * `CircleCI` - CircleCI + * * `CockroachDB` - CockroachDB + * * `Firebase` - Firebase + * * `AzureBlob` - AzureBlob + * * `GoogleDrive` - GoogleDrive + * * `OneDrive` - OneDrive + * * `SharePoint` - SharePoint + * * `Box` - Box + * * `SFTP` - SFTP + * * `MicrosoftTeams` - MicrosoftTeams + * * `Aircall` - Aircall + * * `Webflow` - Webflow + * * `Okta` - Okta + * * `Auth0` - Auth0 + * * `Productboard` - Productboard + * * `Smartsheet` - Smartsheet + * * `Wrike` - Wrike + * * `Plaid` - Plaid + * * `SurveyMonkey` - SurveyMonkey + * * `Eventbrite` - Eventbrite + * * `RingCentral` - RingCentral + * * `Twilio` - Twilio + * * `Freshsales` - Freshsales + * * `Shortcut` - Shortcut + * * `ConvertKit` - ConvertKit + * * `Drip` - Drip + * * `CampaignMonitor` - CampaignMonitor + * * `MailerLite` - MailerLite + * * `Omnisend` - Omnisend + * * `Brevo` - Brevo + * * `Postmark` - Postmark + * * `Granola` - Granola + * * `BuildBetter` - BuildBetter + * * `Convex` - Convex + * * `ClickHouse` - ClickHouse + * * `Plain` - Plain + * * `Resend` - Resend + */ + source_type: components["schemas"]["ExternalDataSourceTypeEnum"]; + }; + /** DatabaseSchemaSchema */ + DatabaseSchemaSchema: { + /** Id */ + id: string; + /** Incremental */ + incremental: boolean; + /** + * Last Synced At + * @default null + */ + last_synced_at: string | null; + /** Name */ + name: string; + /** Should Sync */ + should_sync: boolean; + /** + * Status + * @default null + */ + status: string | null; + }; + /** DatabaseSchemaSource */ + DatabaseSchemaSource: { + /** + * Access Method + * @default null + */ + access_method: string | null; + /** Id */ + id: string; + /** + * Last Synced At + * @default null + */ + last_synced_at: string | null; + /** Prefix */ + prefix: string; + /** Source Type */ + source_type: string; + /** Status */ + status: string; + }; + /** DatabaseSchemaSystemTable */ + DatabaseSchemaSystemTable: { + /** Fields */ + fields: { + [key: string]: components["schemas"]["DatabaseSchemaField"]; + }; + /** Id */ + id: string; + /** Name */ + name: string; + /** + * Row Count + * @default null + */ + row_count: number | null; + /** + * Type + * @default system + * @constant + */ + type: "system"; + }; + /** DatabaseSchemaViewTable */ + DatabaseSchemaViewTable: { + /** Fields */ + fields: { + [key: string]: components["schemas"]["DatabaseSchemaField"]; + }; + /** Id */ + id: string; + /** Name */ + name: string; + query: components["schemas"]["HogQLQuery"]; + /** + * Row Count + * @default null + */ + row_count: number | null; + /** + * Type + * @default view + * @constant + */ + type: "view"; + }; + /** + * DatabaseSerializedFieldType + * @enum {string} + */ + DatabaseSerializedFieldType: "integer" | "float" | "decimal" | "string" | "datetime" | "date" | "boolean" | "array" | "json" | "lazy_table" | "virtual_table" | "field_traverser" | "expression" | "view" | "materialized_view" | "unknown"; + /** + * @description Typed configuration for a Databricks batch-export destination. + * + * Credentials live in the linked Integration, not in this config. Mirrors + * `DatabricksBatchExportInputs` in `products/batch_exports/backend/service.py`. + */ + DatabricksDestinationConfig: { + /** @description Databricks SQL warehouse HTTP path. */ + http_path: string; + /** @description Unity Catalog name. */ + catalog: string; + /** @description Schema (database) name inside the catalog. */ + schema: string; + /** @description Destination table name. */ + table_name: string; + /** + * @description Whether to use the Databricks VARIANT type for JSON-like columns. + * @default true + */ + use_variant_type: boolean; + /** + * @description Whether to let Databricks evolve the destination table schema automatically. + * @default true + */ + use_automatic_schema_evolution: boolean; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "Databricks"; + }; + /** @description Request shape for creating or updating a Databricks batch-export destination. */ + DatabricksDestinationRequest: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "Databricks"; + /** @description ID of a databricks-kind Integration. Use the integrations-list MCP tool to find one. */ + integration_id: number; + config: components["schemas"]["DatabricksDestinationConfig"]; + }; + /** + * @description * `Databricks` - Databricks + * @enum {string} + */ + DatabricksDestinationRequestTypeEnum: "Databricks"; + Dataset: { + /** Format: uuid */ + readonly id: string; + name: string; + description?: string | null; + metadata?: unknown; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + deleted?: boolean | null; + readonly created_by: components["schemas"]["UserBasic"]; + readonly team: number; + }; + DatasetItem: { + /** Format: uuid */ + readonly id: string; + /** Format: uuid */ + dataset: string; + input?: unknown; + output?: unknown; + metadata?: unknown; + ref_trace_id?: string | null; + /** Format: date-time */ + ref_timestamp?: string | null; + ref_source_id?: string | null; + deleted?: boolean | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + readonly created_by: components["schemas"]["UserBasic"]; + readonly team: number; + }; + /** + * @description * `is_date_exact` - is_date_exact + * * `is_date_before` - is_date_before + * * `is_date_after` - is_date_after + * @enum {string} + */ + DateOperatorEnum: "is_date_exact" | "is_date_before" | "is_date_after"; + /** @description Matches date/datetime values with date-specific operators. */ + DatePropertyFilter: { + /** @description Key of the property you're filtering on. For example `email` or `$current_url`. */ + key: string; + /** + * @description Property type (event, person, session, etc.). + * + * * `event` - event + * * `event_metadata` - event_metadata + * * `feature` - feature + * * `person` - person + * * `cohort` - cohort + * * `element` - element + * * `static-cohort` - static-cohort + * * `dynamic-cohort` - dynamic-cohort + * * `precalculated-cohort` - precalculated-cohort + * * `group` - group + * * `recording` - recording + * * `log_entry` - log_entry + * * `behavioral` - behavioral + * * `session` - session + * * `hogql` - hogql + * * `data_warehouse` - data_warehouse + * * `data_warehouse_person_property` - data_warehouse_person_property + * * `error_tracking_issue` - error_tracking_issue + * * `log` - log + * * `log_attribute` - log_attribute + * * `log_resource_attribute` - log_resource_attribute + * * `span` - span + * * `span_attribute` - span_attribute + * * `span_resource_attribute` - span_resource_attribute + * * `revenue_analytics` - revenue_analytics + * * `flag` - flag + * * `workflow_variable` - workflow_variable + * @default event + */ + type: components["schemas"]["PropertyFilterTypeEnum"]; + /** @description Date or datetime string in ISO 8601 format (e.g. '2024-01-15' or '2024-01-15T10:30:00Z'). */ + value: string; + /** + * @description Date comparison operator. + * + * * `is_date_exact` - is_date_exact + * * `is_date_before` - is_date_before + * * `is_date_after` - is_date_after + * @default is_date_exact + */ + operator: components["schemas"]["DateOperatorEnum"]; + }; + /** DateRange */ + DateRange: { + /** + * Date From + * @description Start of the date range. Accepts ISO 8601 timestamps (e.g., 2024-01-15T00:00:00Z) or relative formats: -7d (7 days ago), -2w (2 weeks ago), -1m (1 month ago), + * -1h (1 hour ago), -1mStart (start of last month), -1yStart (start of last year). + * @default null + */ + date_from: string | null; + /** + * Date To + * @description End of the date range. Same format as date_from. Omit or null for "now". + * @default null + */ + date_to: string | null; + /** + * Explicitdate + * @description Whether the date_from and date_to should be used verbatim. Disables rounding to the start and end of period. + * @default false + */ + explicitDate: boolean | null; + }; + /** DayItem */ + DayItem: { + /** Label */ + label: string; + /** Value */ + value: string | number; + }; + /** + * @description * `bayesian` - Bayesian + * * `frequentist` - Frequentist + * @enum {string} + */ + DefaultExperimentStatsMethodEnum: "bayesian" | "frequentist"; + /** + * @description * `pending` - Pending + * * `delivered` - Delivered + * * `partial_failure` - Partial Failure + * * `failed` - Failed + * @enum {string} + */ + DeliveryStatusEnum: "pending" | "delivered" | "partial_failure" | "failed"; + DependentFlag: { + /** @description Feature flag ID */ + id: number; + /** @description Feature flag key */ + key: string; + /** @description Feature flag name */ + name: string; + }; + Deployment: { + /** + * Format: uuid + * @description Unique identifier for the deployment. + */ + readonly id: string; + /** + * @description Current pipeline stage for the deployment. Valid values: queued, initializing, building, ready, error, cancelled. + * + * * `queued` - Queued + * * `initializing` - Initializing + * * `building` - Building + * * `ready` - Ready + * * `error` - Error + * * `cancelled` - Cancelled + */ + status: components["schemas"]["DeploymentStatusEnum"]; + /** + * Format: date-time + * @description Timestamp when the pipeline started building. Null while still queued. + */ + started_at?: string | null; + /** + * Format: date-time + * @description Timestamp when the pipeline finished (regardless of outcome). Null while still running. + */ + finished_at?: string | null; + /** + * Format: date-time + * @description Timestamp when the deployment row was created. + */ + readonly created_at: string; + /** @description Git commit SHA the deployment was built from. Empty for non-git triggers. */ + commit_sha?: string; + /** @description Commit message associated with the commit SHA. */ + commit_message?: string; + /** @description Display name of the commit author. */ + commit_author_name?: string; + /** @description Email address of the commit author. */ + commit_author_email?: string; + /** + * Format: uri + * @description HTTPS URL of the source repository this deployment came from. + */ + repo_url?: string; + /** @description Source branch the deployment was built from. */ + branch?: string; + /** + * Format: uri + * @description Public URL where the built site is served once the deployment is ready. + */ + deployment_url?: string; + /** + * Format: uri + * @description URL of a screenshot capture of the deployed site, used in the list view. + */ + preview_image_url?: string; + /** + * Format: uuid + * @description The deployment this one was triggered from (e.g. for rollbacks/redeploys). + */ + readonly triggered_by_deployment: string | null; + /** + * @description What caused this deployment to start. One of: git, redeploy, rollback, seed. + * + * * `git` - Git + * * `redeploy` - Redeploy + * * `rollback` - Rollback + * * `seed` - Seed + */ + trigger_kind: components["schemas"]["TriggerKindEnum"]; + /** @description Whether this deployment is the team's currently-serving production deployment. */ + readonly is_current: boolean; + /** @description Build duration in seconds (finished_at - started_at). 0 while still running. */ + readonly duration_seconds: number; + }; + /** @description Response shape for the redeploy/rollback/refresh-preview stubs. */ + DeploymentActionResponse: { + /** @description Human-readable explanation of the stub response. */ + detail: string; + }; + /** + * @description * `queued` - Queued + * * `initializing` - Initializing + * * `building` - Building + * * `ready` - Ready + * * `error` - Error + * * `cancelled` - Cancelled + * @enum {string} + */ + DeploymentStatusEnum: "queued" | "initializing" | "building" | "ready" | "error" | "cancelled"; + DeprovisionWarehouseResponse: { + status: string; + team: string; + }; + /** + * @description * `html` - html + * * `text` - text + * @enum {string} + */ + DescriptionContentTypeEnum: "html" | "text"; + DesktopRecording: { + /** Format: uuid */ + readonly id: string; + readonly team: number; + readonly created_by: number | null; + /** Format: uuid */ + readonly sdk_upload_id: string; + /** Format: uuid */ + recall_recording_id?: string | null; + platform: components["schemas"]["MeetingPlatformEnum"]; + meeting_title?: string | null; + /** Format: uri */ + meeting_url?: string | null; + duration_seconds?: number | null; + status?: components["schemas"]["DesktopRecordingStatusEnum"]; + notes?: string | null; + error_message?: string | null; + /** Format: uri */ + video_url?: string | null; + /** Format: int64 */ + video_size_bytes?: number | null; + /** @description List of participant names */ + participants?: string[]; + readonly transcript_text: string; + /** @description Transcript segments with timestamps */ + transcript_segments?: components["schemas"]["TranscriptSegment"][]; + summary?: string | null; + /** @description AI-extracted tasks from transcript */ + extracted_tasks?: components["schemas"]["DesktopRecordingTask"][]; + /** Format: date-time */ + tasks_generated_at?: string | null; + /** Format: date-time */ + summary_generated_at?: string | null; + /** Format: date-time */ + started_at?: string; + /** Format: date-time */ + completed_at?: string | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + /** + * @description * `recording` - Recording + * * `uploading` - Uploading + * * `processing` - Processing + * * `ready` - Ready + * * `error` - Error + * @enum {string} + */ + DesktopRecordingStatusEnum: "recording" | "uploading" | "processing" | "ready" | "error"; + /** @description Serializer for extracted tasks */ + DesktopRecordingTask: { + title: string; + description?: string; + assignee?: string | null; + }; + Detail: { + readonly id: string; + changes?: components["schemas"]["Change"][]; + merge?: components["schemas"]["Merge"]; + trigger?: components["schemas"]["Trigger"]; + readonly name: string; + readonly short_id: string; + readonly type: string; + }; + /** + * @description * `minimal` - minimal + * * `detailed` - detailed + * @enum {string} + */ + DetailModeValueEnum: "minimal" | "detailed"; + /** + * DetailedResultsAggregationType + * @enum {string} + */ + DetailedResultsAggregationType: "total" | "average" | "median"; + /** + * DetectorConfig + * @description Detector configuration types + */ + DetectorConfig: components["schemas"]["EnsembleDetectorConfig"] | components["schemas"]["ZScoreDetectorConfig"] | components["schemas"]["MADDetectorConfig"] | components["schemas"]["IQRDetectorConfig"] | components["schemas"]["ThresholdDetectorConfig"] | components["schemas"]["ECODDetectorConfig"] | components["schemas"]["COPODDetectorConfig"] | components["schemas"]["IsolationForestDetectorConfig"] | components["schemas"]["KNNDetectorConfig"] | components["schemas"]["HBOSDetectorConfig"] | components["schemas"]["LOFDetectorConfig"] | components["schemas"]["OCSVMDetectorConfig"] | components["schemas"]["PCADetectorConfig"]; + /** + * @description * `Desktop` - Desktop + * * `Mobile` - Mobile + * * `Tablet` - Tablet + * @enum {string} + */ + DeviceTypesEnum: "Desktop" | "Mobile" | "Tablet"; + DiagnosticCheckResult: { + /** @description Stable identifier for the check (e.g. cname, cloudflare, caa, http_challenge, live_event, cert_expiry). */ + id: string; + /** @description Human-readable check name. */ + name: string; + /** + * @description passed: ok. warned: degraded but not blocking. failed: blocking. skipped: not run for this state. + * + * * `passed` - passed + * * `warned` - warned + * * `failed` - failed + * * `skipped` - skipped + */ + status: components["schemas"]["DiagnosticCheckResultStatusEnum"]; + /** @description Customer-facing explanation of the check's outcome. */ + detail: string; + /** @description Concrete remediation steps when the check failed; null when there's nothing actionable. */ + remediation?: components["schemas"]["DiagnosticRemediation"] | null; + }; + /** + * @description * `passed` - passed + * * `warned` - warned + * * `failed` - failed + * * `skipped` - skipped + * @enum {string} + */ + DiagnosticCheckResultStatusEnum: "passed" | "warned" | "failed" | "skipped"; + DiagnosticDnsRecord: { + /** @description DNS record name (the hostname the record is set on). */ + name: string; + /** @description DNS record type, e.g. CNAME, CAA, A. */ + type: string; + /** @description DNS record value to set. */ + value: string; + }; + DiagnosticRemediation: { + /** + * @description Category of fix. dns: customer must change DNS records. config: customer must adjust their server config (e.g. allow port 80). wait: no action — the system will resolve on its own. retry: hit Retry. + * + * * `dns` - dns + * * `config` - config + * * `wait` - wait + * * `retry` - retry + */ + type: components["schemas"]["DiagnosticRemediationTypeEnum"]; + /** @description One-line, action-oriented summary of what to do. */ + summary: string; + /** @description DNS records the customer should add (empty when remediation is not DNS-based). */ + records: components["schemas"]["DiagnosticDnsRecord"][]; + }; + /** + * @description * `dns` - dns + * * `config` - config + * * `wait` - wait + * * `retry` - retry + * @enum {string} + */ + DiagnosticRemediationTypeEnum: "dns" | "config" | "wait" | "retry"; + DiagnosticReport: { + /** + * Format: date-time + * @description When this diagnostic report was generated (UTC). + */ + ran_at: string; + /** @description Top-level outcome and recommended next action. */ + summary: components["schemas"]["DiagnosticReportSummary"]; + /** @description Per-check results in execution order. */ + checks: components["schemas"]["DiagnosticCheckResult"][]; + }; + DiagnosticReportSummary: { + /** + * @description Overall outcome: healthy if the proxy is serving requests, warn for non-blocking issues, fail otherwise. + * + * * `healthy` - healthy + * * `warn` - warn + * * `fail` - fail + */ + status: components["schemas"]["DiagnosticReportSummaryStatusEnum"]; + /** @description Check id of the most actionable failure, if any. Null when status is healthy. */ + primary_issue: string | null; + /** @description One-sentence next action the customer should take. Null when nothing's wrong. */ + next_action: string | null; + }; + /** + * @description * `healthy` - healthy + * * `warn` - warn + * * `fail` - fail + * @enum {string} + */ + DiagnosticReportSummaryStatusEnum: "healthy" | "warn" | "fail"; + DiffCluster: { + x: number; + y: number; + width: number; + height: number; + pixel_count: number; + /** Format: double */ + centroid_x: number; + /** Format: double */ + centroid_y: number; + }; + /** + * @description * `Up` - Up + * * `Down` - Down + * @enum {string} + */ + DirectionEnum: "Up" | "Down"; + /** + * DisplayType + * @enum {string} + */ + DisplayType: "auto" | "line" | "bar" | "area"; + /** + * DistanceFunc + * @enum {string} + */ + DistanceFunc: "L1Distance" | "L2Distance" | "cosineDistance"; + DocsSearchRequest: { + /** @description Natural-language description of what to find in the PostHog documentation. Inkeep performs hybrid (semantic + full-text) RAG, so phrase the query the way a user would ask the question. */ + query: string; + }; + DocsSearchResponse: { + /** @description Markdown-formatted documentation results. Each block has a title, URL and excerpt; an empty result set returns guidance to navigate to https://posthog.com/docs. */ + content: string; + }; + /** DocumentSimilarityQuery */ + DocumentSimilarityQuery: { + dateRange: components["schemas"]["DateRange"]; + distance_func: components["schemas"]["DistanceFunc"]; + /** Document Types */ + document_types: string[]; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "DocumentSimilarityQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** Model */ + model: string; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + order_by: components["schemas"]["OrderBy"]; + order_direction: components["schemas"]["OrderDirection1"]; + origin: components["schemas"]["EmbeddedDocument"]; + /** Products */ + products: string[]; + /** Renderings */ + renderings: string[]; + /** @default null */ + response: components["schemas"]["DocumentSimilarityQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Threshold + * @default null + */ + threshold: number | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** DocumentSimilarityQueryResponse */ + DocumentSimilarityQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["EmbeddingDistance"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** + * @description * `BAA` - BAA + * * `DPA` - DPA + * @enum {string} + */ + DocumentTypeEnum: "BAA" | "DPA"; + DraftStatusResponse: { + /** Format: date-time */ + updated_at: string; + has_draft: boolean; + }; + DurationMetric: { + /** @description Human-readable duration, e.g. '2m 34s'. */ + current: string; + /** @description Prior-period duration, e.g. '2m 10s'. */ + previous: string | null; + /** @description Period-over-period change, null when not meaningful. */ + change: components["schemas"]["WoWChange"] | null; + }; + /** + * DurationType + * @enum {string} + */ + DurationType: "duration" | "active_seconds" | "inactive_seconds"; + /** ECODDetectorConfig */ + ECODDetectorConfig: { + /** + * @description Preprocessing transforms applied before detection + * @default null + */ + preprocessing: components["schemas"]["PreprocessingConfig"] | null; + /** + * Threshold + * @description Anomaly probability threshold (default: 0.9) + * @default null + */ + threshold: number | null; + /** + * Type + * @default ecod + * @constant + */ + type: "ecod"; + /** + * Window + * @description Rolling window size — how many historical data points to train on (default: based on calculation interval) + * @default null + */ + window: number | null; + }; + EarlyAccessFeature: { + /** Format: uuid */ + readonly id: string; + readonly feature_flag: components["schemas"]["MinimalFeatureFlag"]; + /** @description The name of the early access feature. */ + name: string; + /** @description A longer description of what this early access feature does, shown to users in the opt-in UI. */ + description?: string; + /** + * @description Lifecycle stage. Valid values: draft, concept, alpha, beta, general-availability, archived. Moving to an active stage (alpha/beta/general-availability) enables the feature flag for opted-in users. + * + * * `draft` - draft + * * `concept` - concept + * * `alpha` - alpha + * * `beta` - beta + * * `general-availability` - general availability + * * `archived` - archived + */ + stage: components["schemas"]["StageEnum"]; + /** + * Format: uri + * @description URL to external documentation for this feature. Shown to users in the opt-in UI. + */ + documentation_url?: string; + /** @description Feature flag payload for this early access feature */ + readonly payload: { + [key: string]: unknown; + }; + /** Format: date-time */ + readonly created_at: string; + }; + EarlyAccessFeatureSerializerCreateOnly: { + /** Format: uuid */ + readonly id: string; + /** @description The name of the early access feature. */ + name: string; + /** @description A longer description of what this early access feature does, shown to users in the opt-in UI. */ + description?: string; + /** + * @description Lifecycle stage. Valid values: draft, concept, alpha, beta, general-availability, archived. Moving to an active stage (alpha/beta/general-availability) enables the feature flag for opted-in users. + * + * * `draft` - draft + * * `concept` - concept + * * `alpha` - alpha + * * `beta` - beta + * * `general-availability` - general availability + * * `archived` - archived + */ + stage: components["schemas"]["StageEnum"]; + /** + * Format: uri + * @description URL to external documentation for this feature. Shown to users in the opt-in UI. + */ + documentation_url?: string; + /** @description Arbitrary JSON metadata associated with this feature. */ + payload?: unknown; + /** Format: date-time */ + readonly created_at: string; + /** @description Optional ID of an existing feature flag to link. If omitted, a new flag is auto-created from the feature name. The flag must not already be linked to another feature, must not be group-based, and must not be multivariate. */ + feature_flag_id?: number; + readonly feature_flag: components["schemas"]["MinimalFeatureFlag"]; + /** create in folder */ + _create_in_folder?: string; + }; + /** @enum {integer} */ + EffectiveMembershipLevelEnum: 1 | 8 | 15; + /** @enum {integer} */ + EffectivePrivilegeLevelEnum: 21 | 37; + Element: { + text?: string | null; + tag_name?: string | null; + attr_class?: string[] | null; + href?: string | null; + attr_id?: string | null; + nth_child?: number | null; + nth_of_type?: number | null; + attributes?: unknown; + order?: number | null; + }; + /** ElementPropertyFilter */ + ElementPropertyFilter: { + key: components["schemas"]["Key10"]; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + /** + * Type + * @default element + * @constant + */ + type: "element"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + /** ElementType */ + ElementType: { + /** + * Attr Class + * @default null + */ + attr_class: string[] | null; + /** + * Attr Id + * @default null + */ + attr_id: string | null; + /** Attributes */ + attributes: { + [key: string]: string; + }; + /** + * Href + * @default null + */ + href: string | null; + /** + * Nth Child + * @default null + */ + nth_child: number | null; + /** + * Nth Of Type + * @default null + */ + nth_of_type: number | null; + /** + * Order + * @default null + */ + order: number | null; + /** Tag Name */ + tag_name: string; + /** + * Text + * @default null + */ + text: string | null; + }; + /** EmbeddedDocument */ + EmbeddedDocument: { + /** Document Id */ + document_id: string; + /** Document Type */ + document_type: string; + /** Product */ + product: string; + /** + * Timestamp + * Format: date-time + */ + timestamp: string; + }; + /** EmbeddingDistance */ + EmbeddingDistance: { + /** Distance */ + distance: number; + /** @default null */ + origin: components["schemas"]["EmbeddingRecord"] | null; + result: components["schemas"]["EmbeddingRecord"]; + }; + /** + * EmbeddingModelName + * @enum {string} + */ + EmbeddingModelName: "text-embedding-3-small-1536" | "text-embedding-3-large-3072"; + /** EmbeddingRecord */ + EmbeddingRecord: { + /** Document Id */ + document_id: string; + /** Document Type */ + document_type: string; + model_name: components["schemas"]["EmbeddingModelName"]; + /** Product */ + product: string; + /** Rendering */ + rendering: string; + /** + * Timestamp + * Format: date-time + */ + timestamp: string; + }; + /** EmptyPropertyFilter */ + EmptyPropertyFilter: { + /** + * Type + * @default empty + * @constant + */ + type: "empty"; + }; + EndExperiment: { + /** + * @description The conclusion of the experiment. + * + * * `won` - won + * * `lost` - lost + * * `inconclusive` - inconclusive + * * `stopped_early` - stopped_early + * * `invalid` - invalid + */ + conclusion?: components["schemas"]["ConclusionEnum"] | components["schemas"]["NullEnum"]; + /** @description Optional comment about the experiment conclusion. */ + conclusion_comment?: string | null; + }; + /** @description A column in the endpoint's query result. */ + EndpointColumn: { + /** @description Column name from the query SELECT clause. */ + name: string; + /** @description Serialized column type: integer, float, string, datetime, date, boolean, array, json, or unknown. */ + type: string; + }; + /** EndpointLastExecutionTimesRequest */ + EndpointLastExecutionTimesRequest: { + /** Names */ + names: string[]; + }; + /** @description Materialization status for an endpoint version. */ + EndpointMaterialization: { + /** @description URL-safe endpoint name. */ + name: string; + /** @description Current materialization status (e.g. 'Completed', 'Running'). */ + status?: string; + /** @description Whether this endpoint query can be materialized. */ + can_materialize: boolean; + /** @description Reason why materialization is not possible (only when can_materialize is false). */ + reason?: string | null; + /** @description ISO 8601 timestamp of the last successful materialization. */ + last_materialized_at?: string | null; + /** @description Last materialization error message, if any. */ + error?: string; + /** + * Format: uuid + * @description UUID of the underlying saved query backing this materialization. Only populated when the version is materialized. + */ + saved_query_id?: string | null; + }; + /** + * EndpointRefreshMode + * @enum {string} + */ + EndpointRefreshMode: "cache" | "force" | "direct"; + /** @description Schema for creating/updating endpoints. OpenAPI docs only — validation uses Pydantic. */ + EndpointRequest: { + /** @description Unique URL-safe name. Must start with a letter, only letters/numbers/hyphens/underscores, max 128 chars. */ + name?: string | null; + /** @description HogQL or insight query this endpoint executes. Changing this auto-creates a new version. */ + query?: unknown; + /** @description Human-readable description of what this endpoint returns. */ + description?: string | null; + /** @description How fresh the data should be, in seconds. Must be one of: 900 (15 min), 1800 (30 min), 3600 (1 h), 21600 (6 h), 43200 (12 h), 86400 (24 h, default), 604800 (7 d). Controls cache TTL and materialization sync frequency. */ + data_freshness_seconds?: number | null; + /** @description Whether this endpoint is available for execution via the API. */ + is_active?: boolean | null; + /** @description Whether query results are materialized to S3. */ + is_materialized?: boolean | null; + /** @description Short ID of the insight this endpoint was derived from. */ + derived_from_insight?: string | null; + /** @description Target a specific version for updates (defaults to current version). */ + version?: number | null; + /** @description Per-column bucket overrides for range variable materialization. Keys are column names, values are bucket keys. */ + bucket_overrides?: { + [key: string]: unknown; + } | null; + /** @description Set to true to soft-delete this endpoint. */ + deleted?: boolean | null; + }; + /** @description Full endpoint representation returned by list/retrieve/create/update. */ + EndpointResponse: { + /** + * Format: uuid + * @description Unique endpoint identifier (UUID). + */ + id: string; + /** @description URL-safe endpoint name, unique per team. */ + name: string; + /** @description Human-readable description of the endpoint. */ + description: string | null; + /** @description The HogQL or insight query definition (JSON object with 'kind' key). */ + query: unknown; + /** @description Whether the endpoint can be executed via the API. */ + is_active: boolean; + /** @description How fresh the data is, in seconds. One of: 900, 1800, 3600, 21600, 43200, 86400, 604800. */ + data_freshness_seconds: number; + /** @description Relative API path to execute this endpoint (e.g. /api/environments/{team_id}/endpoints/{name}/run). */ + endpoint_path: string; + /** @description Absolute URL to execute this endpoint. */ + url: string | null; + /** @description Absolute URL to view this endpoint in the PostHog UI. */ + ui_url: string | null; + /** + * Format: date-time + * @description When the endpoint was created (ISO 8601). + */ + created_at: string; + /** + * Format: date-time + * @description When the endpoint was last updated (ISO 8601). + */ + updated_at: string; + /** @description User who created the endpoint. */ + readonly created_by: components["schemas"]["UserBasic"]; + /** @description Whether the current version's results are pre-computed to S3. */ + is_materialized: boolean; + /** @description Latest version number. */ + current_version: number; + /** + * Format: uuid + * @description UUID of the current EndpointVersion row. + */ + current_version_id?: string | null; + /** @description Total number of versions for this endpoint. */ + versions_count: number; + /** @description Short ID of the source insight, if derived from one. */ + derived_from_insight: string | null; + /** + * Format: date-time + * @description When this endpoint was last executed via the API (ISO 8601), or null if never executed. + */ + last_executed_at: string | null; + /** @description Materialization status and configuration for the current version. */ + materialization: components["schemas"]["EndpointMaterialization"]; + /** @description Per-column bucket overrides for range variable materialization. */ + bucket_overrides: { + [key: string]: unknown; + } | null; + /** @description Column names and types from the query's SELECT clause. */ + columns: components["schemas"]["EndpointColumn"][]; + }; + /** EndpointRunRequest */ + EndpointRunRequest: { + /** + * Client Query Id + * @description Client provided query ID. Can be used to retrieve the status or cancel the query. + * @default null + */ + client_query_id: string | null; + /** + * Debug + * @description Whether to include debug information (such as the executed HogQL) in the response. + * @default false + */ + debug: boolean | null; + /** @default null */ + filters_override: components["schemas"]["DashboardFilter"] | null; + /** + * Limit + * @description Maximum number of results to return. If not provided, returns all results. + * @default null + */ + limit: number | null; + /** + * Offset + * @description Number of results to skip. Must be used together with limit. Only supported for HogQL endpoints. + * @default null + */ + offset: number | null; + /** @default cache */ + refresh: components["schemas"]["EndpointRefreshMode"] | null; + /** + * Variables + * @description Variables to parameterize the endpoint query. The key is the variable name and the value is the variable value. + * + * For HogQL endpoints: Keys must match a variable `code_name` defined in the query (referenced as `{variables.code_name}`). Example: `{"event_name": "$pageview"}` + * + * For non-materialized insight endpoints (e.g. TrendsQuery): - `date_from` and `date_to` are built-in variables that filter the date range. Example: `{"date_from": "2024-01-01", "date_to": "2024-01-31"}` + * + * For materialized insight endpoints: - Use the breakdown property name as the key to filter by breakdown value. Example: `{"$browser": "Chrome"}` - `date_from`/`date_to` are not supported on materialized insight endpoints. + * + * Unknown variable names will return a 400 error. + * @default null + */ + variables: { + [key: string]: unknown; + } | null; + /** + * Version + * @description Specific endpoint version to execute. If not provided, the latest version is used. + * @default null + */ + version: number | null; + }; + /** @description Response from executing an endpoint query. */ + EndpointRunResponse: { + /** @description URL-safe endpoint name that was executed. */ + name: string; + /** @description Query result rows. Each row is a list of values matching the columns order. */ + results?: unknown[]; + /** @description Column names from the query SELECT clause. */ + columns?: string[]; + /** @description Whether more results are available beyond the limit. */ + hasMore?: boolean; + /** @description Version number of the endpoint that was executed. */ + endpoint_version?: number; + }; + /** @description Extended endpoint representation when viewing a specific version. */ + EndpointVersionResponse: { + /** + * Format: uuid + * @description Unique endpoint identifier (UUID). + */ + id: string; + /** @description URL-safe endpoint name, unique per team. */ + name: string; + /** @description Human-readable description of the endpoint. */ + description: string | null; + /** @description The HogQL or insight query definition (JSON object with 'kind' key). */ + query: unknown; + /** @description Whether the endpoint can be executed via the API. */ + is_active: boolean; + /** @description How fresh the data is, in seconds. One of: 900, 1800, 3600, 21600, 43200, 86400, 604800. */ + data_freshness_seconds: number; + /** @description Relative API path to execute this endpoint (e.g. /api/environments/{team_id}/endpoints/{name}/run). */ + endpoint_path: string; + /** @description Absolute URL to execute this endpoint. */ + url: string | null; + /** @description Absolute URL to view this endpoint in the PostHog UI. */ + ui_url: string | null; + /** + * Format: date-time + * @description When the endpoint was created (ISO 8601). + */ + created_at: string; + /** + * Format: date-time + * @description When the endpoint was last updated (ISO 8601). + */ + updated_at: string; + /** @description User who created the endpoint. */ + readonly created_by: components["schemas"]["UserBasic"]; + /** @description Whether the current version's results are pre-computed to S3. */ + is_materialized: boolean; + /** @description Latest version number. */ + current_version: number; + /** + * Format: uuid + * @description UUID of the current EndpointVersion row. + */ + current_version_id?: string | null; + /** @description Total number of versions for this endpoint. */ + versions_count: number; + /** @description Short ID of the source insight, if derived from one. */ + derived_from_insight: string | null; + /** + * Format: date-time + * @description When this endpoint was last executed via the API (ISO 8601), or null if never executed. + */ + last_executed_at: string | null; + /** @description Materialization status and configuration for the current version. */ + materialization: components["schemas"]["EndpointMaterialization"]; + /** @description Per-column bucket overrides for range variable materialization. */ + bucket_overrides: { + [key: string]: unknown; + } | null; + /** @description Column names and types from the query's SELECT clause. */ + columns: components["schemas"]["EndpointColumn"][]; + /** @description Version number. */ + version: number; + /** + * Format: uuid + * @description Version unique identifier (UUID). + */ + version_id: string; + /** @description Whether the parent endpoint is active (distinct from version.is_active). */ + endpoint_is_active: boolean; + /** @description ISO 8601 timestamp when this version was created. */ + version_created_at: string; + /** @description ISO 8601 timestamp when this version was last updated. */ + version_updated_at: string | null; + /** @description User who created this version. */ + readonly version_created_by: components["schemas"]["UserBasic"] | null; + }; + /** + * EndpointsUsageBreakdown + * @enum {string} + */ + EndpointsUsageBreakdown: "Endpoint" | "MaterializationType" | "ApiKey" | "Status"; + /** + * EndpointsUsageOrderByDirection + * @enum {string} + */ + EndpointsUsageOrderByDirection: "ASC" | "DESC"; + /** + * EndpointsUsageOrderByField + * @enum {string} + */ + EndpointsUsageOrderByField: "requests" | "bytes_read" | "cpu_seconds" | "avg_query_duration_ms" | "error_rate"; + /** EndpointsUsageOverviewItem */ + EndpointsUsageOverviewItem: { + /** + * Changefrompreviouspct + * @default null + */ + changeFromPreviousPct: number | null; + key: components["schemas"]["EndpointsUsageOverviewItemKey"]; + /** + * Previous + * @default null + */ + previous: number | null; + /** + * Value + * @default null + */ + value: number | null; + }; + /** + * EndpointsUsageOverviewItemKey + * @enum {string} + */ + EndpointsUsageOverviewItemKey: "total_requests" | "total_bytes_read" | "total_cpu_seconds" | "avg_query_duration_ms" | "p95_query_duration_ms" | "error_rate" | "materialized_requests" | "inline_requests"; + /** EndpointsUsageOverviewQuery */ + EndpointsUsageOverviewQuery: { + /** + * @description Compare to previous period + * @default null + */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Endpointnames + * @description Filter to specific endpoints by name + * @default null + */ + endpointNames: string[] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "EndpointsUsageOverviewQuery"; + /** + * @description Filter by materialization type + * @default null + */ + materializationType: components["schemas"]["MaterializationType"] | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["EndpointsUsageOverviewQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** EndpointsUsageOverviewQueryResponse */ + EndpointsUsageOverviewQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["EndpointsUsageOverviewItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** EndpointsUsageTableQuery */ + EndpointsUsageTableQuery: { + breakdownBy: components["schemas"]["EndpointsUsageBreakdown"]; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Endpointnames + * @description Filter to specific endpoints by name + * @default null + */ + endpointNames: string[] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "EndpointsUsageTableQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Filter by materialization type + * @default null + */ + materializationType: components["schemas"]["MaterializationType"] | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * Orderby + * @default null + */ + orderBy: (components["schemas"]["EndpointsUsageOrderByField"] | components["schemas"]["EndpointsUsageOrderByDirection"])[] | null; + /** @default null */ + response: components["schemas"]["EndpointsUsageTableQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** EndpointsUsageTableQueryResponse */ + EndpointsUsageTableQueryResponse: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** EndpointsUsageTrendsQuery */ + EndpointsUsageTrendsQuery: { + /** + * @description Optional breakdown for stacked charts + * @default null + */ + breakdownBy: components["schemas"]["EndpointsUsageBreakdown"] | null; + /** + * @description Compare to previous period + * @default null + */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Endpointnames + * @description Filter to specific endpoints by name + * @default null + */ + endpointNames: string[] | null; + /** + * @description Time interval + * @default null + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "EndpointsUsageTrendsQuery"; + /** + * @description Filter by materialization type + * @default null + */ + materializationType: components["schemas"]["MaterializationType"] | null; + /** @description Metric to trend */ + metric: components["schemas"]["Metric"]; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["EndpointsUsageTrendsQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** EndpointsUsageTrendsQueryResponse */ + EndpointsUsageTrendsQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: { + [key: string]: unknown; + }[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** + * @description * `allow` - Allow + * * `reject` - Reject + * @enum {string} + */ + EnforcementModeEnum: "allow" | "reject"; + /** + * @description * `duckdb` - duckdb + * * `postgres` - postgres + * @enum {string} + */ + EngineEnum: "duckdb" | "postgres"; + /** EnsembleDetectorConfig */ + EnsembleDetectorConfig: { + /** + * Detectors + * @description Sub-detector configurations (minimum 2) + */ + detectors: (components["schemas"]["ZScoreDetectorConfig"] | components["schemas"]["MADDetectorConfig"] | components["schemas"]["IQRDetectorConfig"] | components["schemas"]["ThresholdDetectorConfig"] | components["schemas"]["ECODDetectorConfig"] | components["schemas"]["COPODDetectorConfig"] | components["schemas"]["IsolationForestDetectorConfig"] | components["schemas"]["KNNDetectorConfig"] | components["schemas"]["HBOSDetectorConfig"] | components["schemas"]["LOFDetectorConfig"] | components["schemas"]["OCSVMDetectorConfig"] | components["schemas"]["PCADetectorConfig"])[]; + /** @description How to combine sub-detector results */ + operator: components["schemas"]["EnsembleOperator"]; + /** + * Type + * @default ensemble + * @constant + */ + type: "ensemble"; + }; + /** + * EnsembleOperator + * @enum {string} + */ + EnsembleOperator: "and" | "or"; + /** @description Serializer mixin that handles tags for objects. */ + EnterpriseEventDefinition: { + /** Format: uuid */ + readonly id: string; + name: string; + owner?: number | null; + description?: string | null; + tags?: unknown[]; + /** Format: date-time */ + readonly created_at: string | null; + /** Format: date-time */ + readonly updated_at: string; + readonly updated_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly last_seen_at: string | null; + /** Format: date-time */ + readonly last_updated_at: string; + verified?: boolean; + /** Format: date-time */ + readonly verified_at: string | null; + readonly verified_by: components["schemas"]["UserBasic"]; + hidden?: boolean | null; + enforcement_mode?: components["schemas"]["EnforcementModeEnum"]; + /** @description Name of a single property on this event that PostHog UIs should display alongside the event (for example `$pathname` on `$pageview`). When set, surfaces like the session replay inspector show the property's value next to the event name without the user having to open the event. */ + primary_property?: string | null; + readonly is_action: boolean; + readonly action_id: number; + readonly is_calculating: boolean; + /** Format: date-time */ + readonly last_calculated_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** @default false */ + post_to_slack: boolean; + default_columns?: string[]; + readonly media_preview_urls: string[]; + }; + /** @description Serializer mixin that handles tags for objects. */ + EnterprisePropertyDefinition: { + /** Format: uuid */ + readonly id: string; + readonly name: string; + description?: string | null; + tags?: unknown[]; + readonly is_numerical: boolean; + /** Format: date-time */ + readonly updated_at: string; + readonly updated_by: components["schemas"]["UserBasic"]; + readonly is_seen_on_filtered_events: boolean | null; + property_type?: components["schemas"]["PropertyDefinitionTypeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + verified?: boolean; + /** Format: date-time */ + readonly verified_at: string | null; + readonly verified_by: components["schemas"]["UserBasic"]; + hidden?: boolean | null; + }; + /** + * EntityType + * @enum {string} + */ + EntityType: "actions" | "events" | "data_warehouse" | "new_entity" | "groups"; + ErrorResponse: { + /** @description Error message */ + error: string; + }; + ErrorTrackingAggregations: { + /** + * Format: double + * @description Exception occurrence count. + */ + occurrences?: number; + /** + * Format: double + * @description Unique user count. + */ + users?: number; + /** + * Format: double + * @description Unique session count. + */ + sessions?: number; + /** @description Occurrence counts per volume bucket. */ + volumeRange?: number[]; + /** @description Labeled volume buckets. */ + volume_buckets?: components["schemas"]["ErrorTrackingVolumeBucket"][]; + }; + ErrorTrackingAssignee: { + /** @description User ID or role UUID to filter by. */ + id: string | number | null; + /** + * @description Assignee target type: user or role. + * + * * `user` - user + * * `role` - role + */ + type: components["schemas"]["AssigneeTypeEnum"]; + }; + ErrorTrackingAssigneeResponse: { + /** @description Assignee user ID or role UUID. */ + id?: string | number | null; + /** @description Assignee type. */ + type?: string | null; + }; + ErrorTrackingAssignmentRule: { + /** Format: uuid */ + readonly id: string; + filters: unknown; + readonly assignee: { + /** @enum {string} */ + type?: "user" | "role"; + id?: number | string; + } | null; + order_key: number; + disabled_data?: unknown; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + ErrorTrackingAssignmentRuleAssigneeRequest: { + /** + * @description Assignee type. Use `user` for a user ID or `role` for a role UUID. + * + * * `user` - user + * * `role` - role + */ + type: components["schemas"]["AssigneeTypeEnum"]; + /** @description User ID when `type` is `user`, or role UUID when `type` is `role`. */ + id: number | string; + }; + ErrorTrackingAssignmentRuleCreateRequest: { + /** @description Property-group filters that define when this rule matches incoming error events. */ + filters: components["schemas"]["PropertyGroupFilterValue"]; + /** @description User or role to assign matching issues to. */ + assignee: components["schemas"]["ErrorTrackingAssignmentRuleAssigneeRequest"]; + }; + ErrorTrackingAssignmentRuleUpdateRequest: { + /** @description Property-group filters that define when this rule matches incoming error events. */ + filters?: components["schemas"]["PropertyGroupFilterValue"] | null; + /** @description User or role to assign matching issues to. */ + assignee?: components["schemas"]["ErrorTrackingAssignmentRuleAssigneeRequest"] | null; + }; + /** ErrorTrackingBreakdownsQuery */ + ErrorTrackingBreakdownsQuery: { + /** Breakdownproperties */ + breakdownProperties: string[]; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** Issueid */ + issueId: string; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "ErrorTrackingBreakdownsQuery"; + /** + * Maxvaluesperproperty + * @default null + */ + maxValuesPerProperty: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["ErrorTrackingBreakdownsQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ErrorTrackingBreakdownsQueryResponse */ + ErrorTrackingBreakdownsQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: { + [key: string]: components["schemas"]["Results"]; + }; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** ErrorTrackingCorrelatedIssue */ + ErrorTrackingCorrelatedIssue: { + /** @default null */ + assignee: components["schemas"]["ErrorTrackingIssueAssignee"] | null; + /** @default null */ + cohort: components["schemas"]["ErrorTrackingIssueCohort"] | null; + /** + * Description + * @default null + */ + description: string | null; + /** Event */ + event: string; + /** + * External Issues + * @default null + */ + external_issues: components["schemas"]["ErrorTrackingExternalReference"][] | null; + /** + * First Seen + * Format: date-time + */ + first_seen: string; + /** Id */ + id: string; + /** + * Last Seen + * Format: date-time + */ + last_seen: string; + /** + * Library + * @default null + */ + library: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** Odds Ratio */ + odds_ratio: number; + population: components["schemas"]["Population"]; + status: components["schemas"]["ErrorTrackingIssueStatus"]; + }; + ErrorTrackingDateRange: { + /** @description Start of the date range as an ISO timestamp or relative date such as -7d. Defaults to -7d. */ + date_from?: string; + /** @description End of the date range as an ISO timestamp or relative date. Defaults to now when omitted. */ + date_to?: string | null; + }; + ErrorTrackingEvent: { + /** @description Event UUID. */ + uuid?: string; + /** @description Event distinct ID. */ + distinct_id?: string; + /** + * Format: date-time + * @description Event timestamp. + */ + timestamp?: string; + /** @description Normalized sampled exception event properties. */ + properties?: { + [key: string]: unknown; + }; + }; + /** ErrorTrackingExternalReference */ + ErrorTrackingExternalReference: { + /** External Url */ + external_url: string; + /** Id */ + id: string; + integration: components["schemas"]["ErrorTrackingExternalReferenceIntegration"]; + }; + /** ErrorTrackingExternalReferenceIntegration */ + ErrorTrackingExternalReferenceIntegration: { + /** Display Name */ + display_name: string; + /** Id */ + id: number; + kind: components["schemas"]["IntegrationKind"]; + }; + ErrorTrackingExternalReferenceIntegrationResult: { + readonly id: number; + readonly kind: string; + readonly display_name: string; + }; + ErrorTrackingExternalReferenceResult: { + /** Format: uuid */ + readonly id: string; + readonly integration: components["schemas"]["ErrorTrackingExternalReferenceIntegrationResult"]; + integration_id: number; + config: unknown; + /** Format: uuid */ + issue: string; + readonly external_url: string; + }; + ErrorTrackingFingerprint: { + /** Format: uuid */ + readonly id: string; + readonly fingerprint: string; + /** Format: uuid */ + readonly issue_id: string; + /** Format: date-time */ + readonly created_at: string; + }; + ErrorTrackingGroupingRule: { + /** Format: uuid */ + readonly id: string; + filters: unknown; + readonly assignee: { + /** @enum {string} */ + type?: "user" | "role"; + id?: number | string; + } | null; + description?: string | null; + /** @description Issue linked to this rule */ + readonly issue: { + [key: string]: string; + } | null; + order_key: number; + disabled_data?: unknown; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + ErrorTrackingGroupingRuleAssigneeRequest: { + /** + * @description Assignee type. Use `user` for a user ID or `role` for a role UUID. + * + * * `user` - user + * * `role` - role + */ + type: components["schemas"]["AssigneeTypeEnum"]; + /** @description User ID when `type` is `user`, or role UUID when `type` is `role`. */ + id: number | string; + }; + ErrorTrackingGroupingRuleCreateRequest: { + /** @description Property-group filters that define which exceptions should be grouped into the same issue. */ + filters: components["schemas"]["PropertyGroupFilterValue"]; + /** @description Optional user or role to assign to issues created by this grouping rule. */ + assignee?: components["schemas"]["ErrorTrackingGroupingRuleAssigneeRequest"] | null; + /** @description Optional human-readable description of what this grouping rule is for. */ + description?: string | null; + }; + ErrorTrackingGroupingRuleListResponse: { + results: components["schemas"]["ErrorTrackingGroupingRule"][]; + }; + ErrorTrackingImpact: { + /** + * Format: double + * @description Exception occurrence count. + */ + occurrences?: number; + /** + * Format: double + * @description Unique user count. + */ + users?: number; + /** + * Format: double + * @description Unique session count. + */ + sessions?: number; + }; + /** ErrorTrackingIssue */ + ErrorTrackingIssue: { + /** @default null */ + aggregations: components["schemas"]["ErrorTrackingIssueAggregations"] | null; + /** @default null */ + assignee: components["schemas"]["ErrorTrackingIssueAssignee"] | null; + /** @default null */ + cohort: components["schemas"]["ErrorTrackingIssueCohort"] | null; + /** + * Description + * @default null + */ + description: string | null; + /** + * External Issues + * @default null + */ + external_issues: components["schemas"]["ErrorTrackingExternalReference"][] | null; + /** @default null */ + first_event: components["schemas"]["FirstEvent"] | null; + /** + * First Seen + * Format: date-time + */ + first_seen: string; + /** + * Function + * @default null + */ + function: string | null; + /** Id */ + id: string; + /** @default null */ + last_event: components["schemas"]["LastEvent"] | null; + /** + * Last Seen + * Format: date-time + */ + last_seen: string; + /** + * Library + * @default null + */ + library: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Source + * @default null + */ + source: string | null; + status: components["schemas"]["ErrorTrackingIssueStatus"]; + }; + /** ErrorTrackingIssueAggregations */ + ErrorTrackingIssueAggregations: { + /** Occurrences */ + occurrences: number; + /** Sessions */ + sessions: number; + /** Users */ + users: number; + /** + * Volumerange + * @default null + */ + volumeRange: number[] | null; + /** Volume Buckets */ + volume_buckets: components["schemas"]["VolumeBucket"][]; + }; + /** ErrorTrackingIssueAssignee */ + ErrorTrackingIssueAssignee: { + /** Id */ + id: string | number; + type: components["schemas"]["ErrorTrackingIssueAssigneeType"]; + }; + /** + * ErrorTrackingIssueAssigneeType + * @enum {string} + */ + ErrorTrackingIssueAssigneeType: "user" | "role"; + ErrorTrackingIssueAssignment: { + readonly id: number | string | null; + readonly type: string; + }; + /** ErrorTrackingIssueCohort */ + ErrorTrackingIssueCohort: { + /** Id */ + id: number; + /** Name */ + name: string; + }; + /** ErrorTrackingIssueCorrelationQuery */ + ErrorTrackingIssueCorrelationQuery: { + /** Events */ + events: string[]; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "ErrorTrackingIssueCorrelationQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["ErrorTrackingIssueCorrelationQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ErrorTrackingIssueCorrelationQueryResponse */ + ErrorTrackingIssueCorrelationQueryResponse: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["ErrorTrackingCorrelatedIssue"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + ErrorTrackingIssueDetail: { + /** + * Format: uuid + * @description Error tracking issue ID. + */ + id: string; + /** @description Issue name. */ + name?: string | null; + /** @description Issue description. */ + description?: string | null; + /** @description Issue status. */ + status?: string; + /** + * Format: date-time + * @description First seen timestamp. + */ + first_seen?: string | null; + /** + * Format: date-time + * @description Last seen timestamp. + */ + last_seen?: string | null; + /** @description SDK/library associated with the issue. */ + library?: string | null; + /** @description Top source/file associated with the issue. */ + source?: string | null; + /** @description Issue assignee. */ + assignee?: components["schemas"]["ErrorTrackingAssigneeResponse"] | null; + /** @description Aggregate counts. */ + aggregations?: components["schemas"]["ErrorTrackingAggregations"] | null; + /** @description Top function associated with the issue. */ + function?: string | null; + /** @description Top in_app application frame. */ + top_in_app_frame?: components["schemas"]["ErrorTrackingTopFrame"]; + /** @description Latest release metadata. */ + latest_release?: components["schemas"]["ErrorTrackingLatestRelease"]; + /** @description Compact impact counts. */ + impact?: components["schemas"]["ErrorTrackingImpact"]; + /** @description Optional compact occurrence sparkline. */ + sparkline?: number[]; + }; + ErrorTrackingIssueEventsQueryRequest: { + /** + * Format: uuid + * @description Error tracking issue ID. + */ + issueId: string; + /** @description Date range for sampled exception events. Defaults to the last 7 days. */ + dateRange?: components["schemas"]["ErrorTrackingDateRange"]; + /** + * @description When true, exclude internal/test account data from results. Defaults to true. + * @default true + */ + filterTestAccounts: boolean; + /** @description Advanced flat AND property filters applied to sampled events. HogQL filters are rejected. */ + filterGroup?: components["schemas"]["PropertyItem"][]; + /** @description Search exception types, exception values, and current URL among sampled events. */ + searchQuery?: string; + /** + * @description Timestamp sort direction. Defaults to DESC. + * + * * `ASC` - ASC + * * `DESC` - DESC + * @default DESC + */ + orderDirection: components["schemas"]["OrderDirectionEnum"]; + /** + * @description Page size. + * @default 1 + */ + limit: number; + /** + * @description Pagination offset. + * @default 0 + */ + offset: number; + /** + * @description Controls exception detail size: summary, stack, or raw. Defaults to summary. + * + * * `summary` - summary + * * `stack` - stack + * * `raw` - raw + * @default summary + */ + verbosity: components["schemas"]["VerbosityEnum"]; + /** + * @description When true, include only stack frames marked in_app. Defaults to true. + * @default true + */ + onlyAppFrames: boolean; + }; + ErrorTrackingIssueEventsResponse: { + /** @description Sampled exception events. */ + results: components["schemas"]["ErrorTrackingEvent"][]; + /** @description Whether more results are available. */ + hasMore: boolean; + /** @description Page size. */ + limit: number; + /** @description Current offset. */ + offset: number; + /** @description Offset to fetch the next page when hasMore is true. */ + nextOffset?: number; + }; + /** ErrorTrackingIssueFilter */ + ErrorTrackingIssueFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + /** + * Type + * @default error_tracking_issue + * @constant + */ + type: "error_tracking_issue"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + ErrorTrackingIssueFull: { + /** Format: uuid */ + readonly id: string; + status?: components["schemas"]["ErrorTrackingIssueFullStatusEnum"]; + name?: string | null; + description?: string | null; + /** Format: date-time */ + first_seen: string; + assignee: components["schemas"]["ErrorTrackingIssueAssignment"]; + external_issues: components["schemas"]["ErrorTrackingExternalReferenceResult"][]; + readonly cohort: { + id?: number; + name?: string; + } | null; + }; + /** + * @description * `archived` - Archived + * * `active` - Active + * * `resolved` - Resolved + * * `pending_release` - Pending release + * * `suppressed` - Suppressed + * @enum {string} + */ + ErrorTrackingIssueFullStatusEnum: "archived" | "active" | "resolved" | "pending_release" | "suppressed"; + ErrorTrackingIssueListItem: { + /** + * Format: uuid + * @description Error tracking issue ID. + */ + id: string; + /** @description Issue name. */ + name?: string | null; + /** @description Issue description. */ + description?: string | null; + /** @description Issue status. */ + status?: string; + /** + * Format: date-time + * @description First seen timestamp. + */ + first_seen?: string | null; + /** + * Format: date-time + * @description Last seen timestamp. + */ + last_seen?: string | null; + /** @description SDK/library associated with the issue. */ + library?: string | null; + /** @description Top source/file associated with the issue. */ + source?: string | null; + /** @description Issue assignee. */ + assignee?: components["schemas"]["ErrorTrackingAssigneeResponse"] | null; + /** @description Aggregate counts. */ + aggregations?: components["schemas"]["ErrorTrackingAggregations"] | null; + }; + ErrorTrackingIssueMergeRequest: { + /** @description IDs of the issues to merge into the current issue. */ + ids: string[]; + }; + ErrorTrackingIssueMergeResponse: { + /** @description Whether the merge completed successfully. */ + success: boolean; + }; + /** + * @description * `last_seen` - last_seen + * * `first_seen` - first_seen + * * `occurrences` - occurrences + * * `users` - users + * * `sessions` - sessions + * @enum {string} + */ + ErrorTrackingIssueOrderByEnum: "last_seen" | "first_seen" | "occurrences" | "users" | "sessions"; + ErrorTrackingIssueQueryRequest: { + /** + * Format: uuid + * @description Error tracking issue ID. + */ + issueId: string; + /** @description Date range for issue impact and latest-event metadata. Defaults to the last 7 days. */ + dateRange?: components["schemas"]["ErrorTrackingDateRange"]; + /** + * @description When true, exclude internal/test account data from results. Defaults to true. + * @default true + */ + filterTestAccounts: boolean; + /** + * @description Volume buckets. Maximum 200. + * @default 0 + */ + volumeResolution: number; + /** + * @description Set true to include a compact numeric occurrence sparkline. Defaults to false. + * @default false + */ + includeSparkline: boolean; + }; + ErrorTrackingIssueSplitFingerprint: { + /** @description Fingerprint to split into a new issue. */ + fingerprint: string; + /** @description Optional name for the new issue created from this fingerprint. */ + name?: string; + /** @description Optional description for the new issue created from this fingerprint. */ + description?: string; + }; + ErrorTrackingIssueSplitRequest: { + /** @description Fingerprints to split into new issues. Each fingerprint becomes its own new issue. */ + fingerprints?: components["schemas"]["ErrorTrackingIssueSplitFingerprint"][]; + }; + ErrorTrackingIssueSplitResponse: { + /** @description Whether the split completed successfully. */ + success: boolean; + /** @description IDs of the new issues created by the split. */ + new_issue_ids: string[]; + }; + /** + * ErrorTrackingIssueStatus + * @enum {string} + */ + ErrorTrackingIssueStatus: "archived" | "active" | "resolved" | "pending_release" | "suppressed"; + ErrorTrackingIssuesListQueryRequest: { + /** @description Date range for issue aggregates. Defaults to the last 7 days. */ + dateRange?: components["schemas"]["ErrorTrackingDateRange"]; + /** + * @description Filter by issue status. Defaults to active. + * + * * `archived` - archived + * * `active` - active + * * `resolved` - resolved + * * `pending_release` - pending_release + * * `suppressed` - suppressed + * * `all` - all + * @default active + */ + status: components["schemas"]["ErrorTrackingIssuesListQueryRequestStatusEnum"]; + /** @description Filter by issue assignee. Omit to include all assignees. */ + assignee?: components["schemas"]["ErrorTrackingAssignee"] | null; + /** + * @description When true, exclude internal/test account data from results. Defaults to true. + * @default true + */ + filterTestAccounts: boolean; + /** @description Free-text search across exception types, values, stack frames, and email fields. */ + searchQuery?: string; + /** @description Advanced flat AND property filters. Prefer typed shortcut fields when they fit. HogQL filters are rejected. */ + filterGroup?: components["schemas"]["PropertyItem"][]; + /** + * @description Field used to sort issues. Defaults to occurrences. + * + * * `last_seen` - last_seen + * * `first_seen` - first_seen + * * `occurrences` - occurrences + * * `users` - users + * * `sessions` - sessions + * @default occurrences + */ + orderBy: components["schemas"]["ErrorTrackingIssueOrderByEnum"]; + /** + * @description Sort direction. Defaults to DESC. + * + * * `ASC` - ASC + * * `DESC` - DESC + * @default DESC + */ + orderDirection: components["schemas"]["OrderDirectionEnum"]; + /** + * @description Page size. + * @default 25 + */ + limit: number; + /** + * @description Pagination offset. + * @default 0 + */ + offset: number; + /** + * @description Number of volume buckets. Defaults to 0 for compact aggregate counts. + * @default 0 + */ + volumeResolution: number; + /** @description Filter by SDK/library value from event $lib, for example posthog-js. */ + library?: string | string[]; + /** @description Filter by exact release ID, version, or git commit ID captured in $exception_releases. */ + release?: string; + /** @description Filter by exact exception fingerprint hash, not fuzzy search. */ + fingerprint?: string | string[]; + /** @description Search user/email text. */ + user?: string; + /** + * Format: uuid + * @description Filter by exact PostHog person UUID. + */ + personId?: string; + /** @description Filter by current URL substring. */ + url?: string; + /** @description Search stack-frame source/file path text. */ + filePath?: string; + }; + /** + * @description * `archived` - archived + * * `active` - active + * * `resolved` - resolved + * * `pending_release` - pending_release + * * `suppressed` - suppressed + * * `all` - all + * @enum {string} + */ + ErrorTrackingIssuesListQueryRequestStatusEnum: "archived" | "active" | "resolved" | "pending_release" | "suppressed" | "all"; + ErrorTrackingIssuesListResponse: { + /** @description Issue rows. */ + results: components["schemas"]["ErrorTrackingIssueListItem"][]; + /** @description Whether more results are available. */ + hasMore: boolean; + /** @description Page size. */ + limit: number; + /** @description Current offset. */ + offset: number; + /** @description Offset to fetch the next page when hasMore is true. */ + nextOffset?: number; + }; + ErrorTrackingLatestRelease: { + /** @description Release version. */ + version?: string; + /** @description Release project/library. */ + project?: string; + /** @description Release timestamp. */ + timestamp?: string; + /** @description Git commit ID. */ + commit_id?: string; + /** @description Git branch. */ + branch?: string; + /** @description Git repository name. */ + repo_name?: string; + }; + /** + * ErrorTrackingOrderBy + * @enum {string} + */ + ErrorTrackingOrderBy: "last_seen" | "first_seen" | "occurrences" | "users" | "sessions"; + /** ErrorTrackingPendingFingerprintIssueStateUpdate */ + ErrorTrackingPendingFingerprintIssueStateUpdate: { + /** + * Assigned Role Id + * @default null + */ + assigned_role_id: string | null; + /** + * Assigned User Id + * @default null + */ + assigned_user_id: number | null; + /** Fingerprint */ + fingerprint: string; + /** + * First Seen + * @description ISO 8601 datetime string. + */ + first_seen: string; + /** Is Deleted */ + is_deleted: number; + /** + * Issue Description + * @default null + */ + issue_description: string | null; + /** Issue Id */ + issue_id: string; + /** + * Issue Name + * @default null + */ + issue_name: string | null; + /** Issue Status */ + issue_status: string; + /** + * Version + * @description Client-stamped monotonic version (`Date.now()` ms at mutation success). + */ + version: number; + }; + /** ErrorTrackingQuery */ + ErrorTrackingQuery: { + /** @default null */ + assignee: components["schemas"]["ErrorTrackingIssueAssignee"] | null; + /** @description Date range to filter results. */ + dateRange: components["schemas"]["DateRange"]; + /** @default null */ + filterGroup: components["schemas"]["PropertyGroupFilter"] | null; + /** + * Filtertestaccounts + * @description Whether to filter out test accounts. + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Groupkey + * @default null + */ + groupKey: string | null; + /** + * Grouptypeindex + * @default null + */ + groupTypeIndex: number | null; + /** + * Issueid + * @description Filter to a specific error tracking issue by ID. + * @default null + */ + issueId: string | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "ErrorTrackingQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** @description Field to sort results by. */ + orderBy: components["schemas"]["ErrorTrackingOrderBy"]; + /** + * @description Sort direction. + * @default null + */ + orderDirection: components["schemas"]["OrderDirection2"] | null; + /** + * Pendingfingerprintissuestateupdates + * @description Pending fingerprint issue state updates UNIONed into the fingerprint issue state subquery (V3 only). The backend caps the list at 50 entries; extras are dropped silently. + * @default null + */ + pendingFingerprintIssueStateUpdates: components["schemas"]["ErrorTrackingPendingFingerprintIssueStateUpdate"][] | null; + /** + * Personid + * @default null + */ + personId: string | null; + /** @default null */ + response: components["schemas"]["ErrorTrackingQueryResponse"] | null; + /** + * Searchquery + * @description Free-text search across exception type, message, and stack frames. + * @default null + */ + searchQuery: string | null; + /** + * ErrorTrackingQueryStatus + * @description Filter by issue status. + * @default null + */ + status: components["schemas"]["ErrorTrackingIssueStatus"] | string | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Usequeryv2 + * @description Use V2 query path (ClickHouse postgres connector join instead of separate Postgres queries) + * @default null + */ + useQueryV2: boolean | null; + /** + * Usequeryv3 + * @description Use V3 query path (denormalized ClickHouse table, no Postgres joins) + * @default null + */ + useQueryV3: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + /** Volumeresolution */ + volumeResolution: number; + /** + * Withaggregations + * @default null + */ + withAggregations: boolean | null; + /** + * Withfirstevent + * @default null + */ + withFirstEvent: boolean | null; + /** + * Withlastevent + * @default null + */ + withLastEvent: boolean | null; + }; + /** ErrorTrackingQueryResponse */ + ErrorTrackingQueryResponse: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["ErrorTrackingIssue"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + ErrorTrackingRecommendation: { + /** + * Format: uuid + * @description Recommendation UUID. + */ + readonly id: string; + /** @description Recommendation type identifier (e.g. 'alerts'). */ + readonly type: string; + /** @description Recommendation payload, shape depends on type. */ + readonly meta: { + [key: string]: unknown; + }; + /** @description Whether the recommendation's recommended action has been satisfied. */ + readonly completed: boolean; + /** + * @description 'ready' if meta is fresh, 'computing' if a refresh is in progress. + * + * * `ready` - Ready + * * `computing` - Computing + */ + readonly status: components["schemas"]["ErrorTrackingRecommendationStatusEnum"]; + /** + * Format: date-time + * @description Timestamp meta was last successfully computed. + */ + readonly computed_at: string | null; + /** + * Format: date-time + * @description Timestamp the user dismissed this recommendation, if any. + */ + readonly dismissed_at: string | null; + /** + * Format: date-time + * @description Timestamp the recommendation row was first created. + */ + readonly created_at: string; + /** + * Format: date-time + * @description Timestamp the recommendation row was last updated. + */ + readonly updated_at: string; + }; + /** + * @description * `ready` - Ready + * * `computing` - Computing + * @enum {string} + */ + ErrorTrackingRecommendationStatusEnum: "ready" | "computing"; + ErrorTrackingRelease: { + /** Format: uuid */ + readonly id: string; + hash_id: string; + readonly team_id: number; + /** Format: date-time */ + readonly created_at: string; + metadata?: unknown; + version: string; + project: string; + }; + ErrorTrackingSettings: { + /** @description Maximum number of exception events ingested per bucket for the entire project. Null removes the limit. */ + project_rate_limit_value?: number | null; + /** @description Bucket window over which the project-wide rate limit applies, in minutes. */ + project_rate_limit_bucket_size_minutes?: number | null; + /** @description Maximum number of exception events ingested per bucket for each individual issue. Null removes the limit. */ + per_issue_rate_limit_value?: number | null; + /** @description Bucket window over which the per-issue rate limit applies, in minutes. */ + per_issue_rate_limit_bucket_size_minutes?: number | null; + }; + /** ErrorTrackingSimilarIssuesQuery */ + ErrorTrackingSimilarIssuesQuery: { + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** Issueid */ + issueId: string; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "ErrorTrackingSimilarIssuesQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * Maxdistance + * @default null + */ + maxDistance: number | null; + /** @default null */ + modelName: components["schemas"]["EmbeddingModelName"] | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * Rendering + * @default null + */ + rendering: string | null; + /** @default null */ + response: components["schemas"]["ErrorTrackingSimilarIssuesQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ErrorTrackingSimilarIssuesQueryResponse */ + ErrorTrackingSimilarIssuesQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["SimilarIssue"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + ErrorTrackingSpikeDetectionConfig: { + /** @description Time to wait before alerting again for the same issue after a spike is detected. */ + snooze_duration_minutes: number; + /** @description The factor by which the current exception count must exceed the baseline to be considered a spike. */ + multiplier: number; + /** @description The minimum number of exceptions required in a 5-minute window before a spike can be detected. */ + threshold: number; + }; + ErrorTrackingSpikeEvent: { + /** Format: uuid */ + readonly id: string; + readonly issue: components["schemas"]["ErrorTrackingSpikeEventIssue"]; + /** Format: date-time */ + readonly detected_at: string; + /** Format: double */ + readonly computed_baseline: number; + readonly current_bucket_value: number; + }; + ErrorTrackingSpikeEventIssue: { + /** Format: uuid */ + readonly id: string; + readonly name: string | null; + readonly description: string | null; + }; + ErrorTrackingStackFrame: { + /** Format: uuid */ + readonly id: string; + /** @description Raw frame ID in 'hash/part' format */ + readonly raw_id: string; + /** Format: date-time */ + readonly created_at: string; + contents: unknown; + resolved: boolean; + context?: unknown; + symbol_set_ref?: string; + readonly release: components["schemas"]["ErrorTrackingRelease"]; + }; + ErrorTrackingSuppressionRule: { + /** Format: uuid */ + readonly id: string; + filters: unknown; + order_key: number; + disabled_data?: unknown; + /** Format: double */ + sampling_rate?: number; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + ErrorTrackingSuppressionRuleCreateRequest: { + /** @description Optional property-group filters that define which incoming error events should be suppressed. Omit this field or provide an empty `values` array to create a match-all suppression rule. */ + filters?: components["schemas"]["PropertyGroupFilterValue"]; + /** + * Format: double + * @description Fraction of matching events to suppress. Use `1.0` to suppress all matching events. + * @default 1 + */ + sampling_rate: number; + }; + ErrorTrackingSymbolSet: { + /** + * Format: uuid + * @description Unique symbol set ID. + */ + readonly id: string; + /** @description Reference used to match stack frames to this symbol set. */ + readonly ref: string; + /** @description Project/team ID that owns this symbol set. */ + readonly team_id: number; + /** + * Format: date-time + * @description When this symbol set row was created. + */ + readonly created_at: string; + /** + * Format: date-time + * @description When this symbol set was last used to resolve a stack frame. + */ + readonly last_used: string | null; + /** @description Reason symbol lookup failed, if the source map is missing or invalid. */ + readonly failure_reason: string | null; + /** @description Whether this symbol set has an uploaded source map file available to download. */ + readonly has_uploaded_file: boolean; + /** @description Release associated with this symbol set, if any. */ + readonly release: { + [key: string]: unknown; + } | null; + }; + ErrorTrackingSymbolSetBulkDelete: { + /** @description Symbol set IDs to delete. */ + ids: string[]; + }; + ErrorTrackingSymbolSetBulkFinishUpload: { + /** @description Map of symbol set ID to uploaded content hash. */ + content_hashes: { + [key: string]: string; + }; + }; + ErrorTrackingSymbolSetBulkStartUpload: { + /** @description Legacy list of symbol set references to upload, all associated with `release_id`. */ + chunk_ids?: string[]; + /** @description Optional error tracking release ID used with `chunk_ids`. */ + release_id?: string | null; + /** @description Symbol sets to upload with per-symbol release IDs and content hashes. */ + symbol_sets?: components["schemas"]["ErrorTrackingSymbolSetUpload"][]; + /** + * @description Whether to overwrite uploaded symbol sets whose content hash changed. + * @default false + */ + force: boolean; + }; + ErrorTrackingSymbolSetFinishUpload: { + /** @description Hash of the uploaded symbol set content. */ + content_hash: string; + }; + ErrorTrackingSymbolSetUpload: { + /** @description Symbol set reference to upload. */ + chunk_id: string; + /** @description Optional error tracking release ID associated with this symbol set. */ + release_id?: string | null; + /** @description Optional hash of the symbol set content, used to skip unchanged uploads. */ + content_hash?: string | null; + }; + ErrorTrackingTopFrame: { + /** @description Frame function name. */ + function?: string; + /** @description Frame source, filename, or module. */ + source?: string; + /** @description Line number. */ + line?: number; + /** @description Column number. */ + column?: number; + /** @description Whether the frame is an application frame. */ + in_app?: boolean; + }; + ErrorTrackingVolumeBucket: { + /** @description Bucket timestamp label. */ + label: string; + /** + * Format: double + * @description Occurrence count for the bucket. + */ + value?: number | null; + }; + Evaluation: { + /** Format: uuid */ + readonly id: string; + /** @description Name of the evaluation. */ + name: string; + /** @description Optional description of what this evaluation checks. */ + description?: string; + /** @description Whether the evaluation runs automatically on new $ai_generation events. */ + enabled?: boolean; + readonly status: components["schemas"]["EvaluationStatusEnum"]; + readonly status_reason: components["schemas"]["StatusReasonEnum"] | components["schemas"]["NullEnum"]; + /** + * @description 'llm_judge' uses an LLM to score outputs against a prompt; 'hog' runs deterministic Hog code. + * + * * `llm_judge` - LLM as a judge + * * `hog` - Hog + */ + evaluation_type: components["schemas"]["EvaluationTypeEnum"]; + /** @description Configuration dict. For 'llm_judge': {prompt}. For 'hog': {source}. */ + evaluation_config?: { + /** @description Evaluation criteria for the LLM judge. Describe what makes a good vs bad response. */ + prompt: string; + } | { + /** @description Hog source code. Must return true (pass), false (fail), or null for N/A. */ + source: string; + }; + /** + * @description Output format. Currently only 'boolean' is supported. + * + * * `boolean` - Boolean (Pass/Fail) + */ + output_type: components["schemas"]["OutputTypeEnum"]; + /** @description Output config. For 'boolean' output_type: {allows_na} to permit N/A results. */ + output_config?: { + /** + * @description Whether the evaluation can return N/A for non-applicable generations. + * @default false + */ + allows_na: boolean; + }; + /** @description Optional trigger conditions to filter which events are evaluated. OR between condition sets, AND within each. */ + conditions?: unknown; + model_configuration?: components["schemas"]["ModelConfiguration"] | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** @description Set to true to soft-delete the evaluation. */ + deleted?: boolean; + }; + EvaluationConfig: { + /** @description Maximum number of llm_judge runs the team may execute on PostHog trial credits. */ + readonly trial_eval_limit: number; + /** @description Number of llm_judge runs already consumed against the trial credit pool. */ + readonly trial_evals_used: number; + /** @description Number of trial evaluation runs remaining before the team must supply its own provider key. */ + readonly trial_evals_remaining: number; + /** @description Provider key currently used to run llm_judge evaluations. Null when the team is on trial credits. */ + readonly active_provider_key: components["schemas"]["LLMProviderKey"] | null; + /** + * Format: date-time + * @description Timestamp when the evaluation config row was created. + */ + readonly created_at: string; + /** + * Format: date-time + * @description Timestamp when the evaluation config row was last modified. + */ + readonly updated_at: string; + }; + EvaluationConfigSetActiveKeyRequest: { + /** + * Format: uuid + * @description UUID of an existing LLM provider key (state must be 'ok') to mark as the active key for running llm_judge evaluations team-wide. + */ + key_id: string; + }; + EvaluationPattern: { + title: string; + description: string; + frequency: string; + example_generation_ids: string[]; + }; + EvaluationReport: { + /** Format: uuid */ + readonly id: string; + /** + * Format: uuid + * @description UUID of the evaluation this report config belongs to. + */ + evaluation: string; + /** + * @description How report generation is triggered. 'every_n' fires once N new evaluation results have accumulated (subject to cooldown_minutes and daily_run_cap). 'scheduled' fires on the cadence defined by rrule + starts_at + timezone_name. + * + * * `scheduled` - Scheduled + * * `every_n` - Every N + */ + frequency?: components["schemas"]["EvaluationReportFrequencyEnum"]; + /** @description RFC 5545 recurrence rule string (e.g. 'FREQ=WEEKLY;BYDAY=MO'). Must not contain DTSTART — the anchor is set via starts_at. Required when frequency is 'scheduled'; ignored otherwise. */ + rrule?: string; + /** + * Format: date-time + * @description Anchor datetime for the rrule (ISO 8601, UTC — must end in 'Z'). Local-time interpretation is controlled by timezone_name. Required when frequency is 'scheduled'; ignored otherwise. + */ + starts_at?: string | null; + /** @description IANA timezone name used to expand the rrule in local time so e.g. '9am' stays at 9am across DST transitions (e.g. 'America/New_York'). Defaults to 'UTC'. */ + timezone_name?: string; + /** Format: date-time */ + readonly next_delivery_date: string | null; + /** @description List of delivery targets. Each entry is either {type: 'email', value: 'user@example.com'} or {type: 'slack', integration_id: , channel: ''}. Slack integration_id must belong to this team. */ + delivery_targets?: unknown; + /** @description Maximum number of evaluation runs included in each report. Defaults to 200. */ + max_sample_size?: number; + /** @description Whether report delivery is active. Disabled configs do not fire. */ + enabled?: boolean; + /** @description Set to true to soft-delete this report config. */ + deleted?: boolean; + /** Format: date-time */ + readonly last_delivered_at: string | null; + /** @description Optional custom instructions appended to the AI report prompt to steer focus, scope, or section choices without modifying the base prompt. */ + report_prompt_guidance?: string; + /** @description Number of new evaluation results that triggers a report (every_n mode only). Min 10, max 10000. Defaults to 100. Required when frequency is 'every_n'. */ + trigger_threshold?: number | null; + /** @description Minimum minutes between count-triggered reports to prevent spam (every_n mode only). Min 60, max 1440 (24 hours). Defaults to 60. */ + cooldown_minutes?: number; + /** @description Maximum count-triggered report runs per calendar day (UTC). Min 1, max 24 (one per cooldown window). Defaults to 10. */ + daily_run_cap?: number; + readonly created_by: number | null; + /** Format: date-time */ + readonly created_at: string; + }; + /** + * @description * `scheduled` - Scheduled + * * `every_n` - Every N + * @enum {string} + */ + EvaluationReportFrequencyEnum: "scheduled" | "every_n"; + EvaluationReportRun: { + /** + * Format: uuid + * @description UUID of this report run. + */ + readonly id: string; + /** + * Format: uuid + * @description UUID of the report config that generated this run. + */ + readonly report: string; + /** @description Generated report content (markdown or structured text). */ + readonly content: unknown; + /** @description Run metadata including model used, token counts, and generation stats. */ + readonly metadata: unknown; + /** + * Format: date-time + * @description Start of the evaluation window covered by this report. + */ + readonly period_start: string; + /** + * Format: date-time + * @description End of the evaluation window covered by this report. + */ + readonly period_end: string; + /** + * @description 'pending', 'delivered', or 'failed'. + * + * * `pending` - Pending + * * `delivered` - Delivered + * * `partial_failure` - Partial Failure + * * `failed` - Failed + */ + readonly delivery_status: components["schemas"]["DeliveryStatusEnum"]; + /** @description List of delivery error messages if delivery failed. */ + readonly delivery_errors: unknown; + /** Format: date-time */ + readonly created_at: string; + }; + EvaluationRunRequest: { + /** + * Format: uuid + * @description UUID of the evaluation to run. + */ + evaluation_id: string; + /** + * Format: uuid + * @description UUID of the $ai_generation event to evaluate. + */ + target_event_id: string; + /** + * Format: date-time + * @description ISO 8601 timestamp of the target event (needed for efficient ClickHouse lookup). + */ + timestamp: string; + /** + * @description Event name. Defaults to '$ai_generation'. + * @default $ai_generation + */ + event: string; + /** @description Distinct ID of the event (optional, improves lookup performance). */ + distinct_id?: string | null; + }; + /** + * @description * `server` - Server + * * `client` - Client + * * `all` - All + * @enum {string} + */ + EvaluationRuntimeEnum: "server" | "client" | "all"; + /** + * @description * `active` - Active + * * `paused` - Paused + * * `error` - Error + * @enum {string} + */ + EvaluationStatusEnum: "active" | "paused" | "error"; + /** @description Request serializer for evaluation summary - accepts IDs only, fetches data server-side. */ + EvaluationSummaryRequest: { + /** + * Format: uuid + * @description UUID of the evaluation config to summarize + */ + evaluation_id: string; + /** + * @description Filter type to apply ('all', 'pass', 'fail', or 'na') + * + * * `all` - all + * * `pass` - pass + * * `fail` - fail + * * `na` - na + * @default all + */ + filter: components["schemas"]["FilterEnum"]; + /** @description Optional: specific generation IDs to include in summary (max 250) */ + generation_ids?: string[]; + /** + * @description If true, bypass cache and generate a fresh summary + * @default false + */ + force_refresh: boolean; + }; + EvaluationSummaryResponse: { + overall_assessment: string; + pass_patterns: components["schemas"]["EvaluationPattern"][]; + fail_patterns: components["schemas"]["EvaluationPattern"][]; + na_patterns: components["schemas"]["EvaluationPattern"][]; + recommendations: string[]; + statistics: components["schemas"]["EvaluationSummaryStatistics"]; + }; + EvaluationSummaryStatistics: { + total_analyzed: number; + pass_count: number; + fail_count: number; + na_count: number; + }; + /** + * @description * `llm_judge` - LLM as a judge + * * `hog` - Hog + * @enum {string} + */ + EvaluationTypeEnum: "llm_judge" | "hog"; + /** EventDefinition */ + EventDefinition: { + /** Elements */ + elements: unknown[]; + /** Event */ + event: string; + /** Properties */ + properties: { + [key: string]: unknown; + }; + }; + EventDefinitionBasic: { + /** Format: uuid */ + id: string; + name: string; + }; + /** @description Serializer mixin that handles tags for objects. */ + EventDefinitionRecord: { + /** Format: uuid */ + readonly id: string; + name: string; + /** Format: date-time */ + created_at?: string | null; + /** Format: date-time */ + last_seen_at?: string | null; + /** Format: date-time */ + readonly last_updated_at: string; + tags?: unknown[]; + enforcement_mode?: components["schemas"]["EnforcementModeEnum"]; + /** @description Name of a single property on this event that PostHog UIs should display alongside the event (for example `$pathname` on `$pageview`). When set, surfaces like the session replay inspector show the property's value next to the event name without the user having to open the event. */ + primary_property?: string | null; + readonly is_action: boolean; + readonly action_id: number; + readonly is_calculating: boolean; + /** Format: date-time */ + readonly last_calculated_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** @default false */ + post_to_slack: boolean; + }; + EventElement: { + event: string; + text?: string | null; + tag_name?: string | null; + attr_class?: string[] | null; + href?: string | null; + attr_id?: string | null; + nth_child?: number | null; + nth_of_type?: number | null; + attributes?: unknown; + order?: number | null; + }; + EventFilterConfig: { + /** Format: uuid */ + readonly id: string; + mode?: components["schemas"]["EventFilterConfigModeEnum"]; + /** @description Boolean expression tree. Nodes: {"type": "and"|"or", "children": [...]}, {"type": "not", "child": {...}}, {"type": "condition", "field": "event_name"|"distinct_id", "operator": "exact"|"contains", "value": ""} */ + filter_tree?: unknown; + /** @description Test events to validate the filter. Each: {"event_name": "...", "distinct_id": "...", "expected_result": "drop"|"ingest"} */ + test_cases?: unknown; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + /** + * @description * `disabled` - Disabled + * * `dry_run` - Dry Run + * * `live` - Live + * @enum {string} + */ + EventFilterConfigModeEnum: "disabled" | "dry_run" | "live"; + /** EventMetadataPropertyFilter */ + EventMetadataPropertyFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + /** + * Type + * @default event_metadata + * @constant + */ + type: "event_metadata"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + /** EventOddsRatioSerialized */ + EventOddsRatioSerialized: { + correlation_type: components["schemas"]["CorrelationType"]; + event: components["schemas"]["EventDefinition"]; + /** Failure Count */ + failure_count: number; + /** Odds Ratio */ + odds_ratio: number; + /** Success Count */ + success_count: number; + }; + /** EventPropFilter */ + EventPropFilter: { + /** Type */ + type: components["schemas"]["EventPropFilterTypeEnum"]; + /** Key */ + key: string; + /** Value */ + value: unknown; + /** + * Operator + * @default null + */ + operator: string | null; + }; + /** @enum {string} */ + EventPropFilterTypeEnum: "event" | "element"; + /** EventPropertyFilter */ + EventPropertyFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + /** @default exact */ + operator: components["schemas"]["PropertyOperator"] | null; + /** + * Type + * @description Event properties + * @default event + * @constant + */ + type: "event"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + EventSchema: { + /** Format: uuid */ + readonly id: string; + /** Format: uuid */ + event_definition: string; + readonly property_group: components["schemas"]["SchemaPropertyGroup"]; + /** Format: uuid */ + property_group_id: string; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + /** EventTaxonomyItem */ + EventTaxonomyItem: { + /** Property */ + property: string; + /** Sample Count */ + sample_count: number; + /** Sample Values */ + sample_values: string[]; + }; + /** EventTaxonomyQuery */ + EventTaxonomyQuery: { + /** + * Actionid + * @default null + */ + actionId: number | null; + /** + * Event + * @default null + */ + event: string | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "EventTaxonomyQuery"; + /** + * Limit + * @description Number of rows to return + * @default null + */ + limit: number | null; + /** + * Maxpropertyvalues + * @default null + */ + maxPropertyValues: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @description Number of rows to skip before returning rows + * @default null + */ + offset: number | null; + /** + * Properties + * @default null + */ + properties: string[] | null; + /** @default null */ + response: components["schemas"]["EventTaxonomyQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** EventTaxonomyQueryResponse */ + EventTaxonomyQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["EventTaxonomyItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** EventType */ + EventType: { + /** Distinct Id */ + distinct_id: string; + /** Elements */ + elements: components["schemas"]["ElementType"][]; + /** + * Elements Chain + * @default null + */ + elements_chain: string | null; + /** Event */ + event: string; + /** Id */ + id: string; + /** @default null */ + person: components["schemas"]["Person"] | null; + /** + * Person Id + * @default null + */ + person_id: string | null; + /** + * Person Mode + * @default null + */ + person_mode: string | null; + /** Properties */ + properties: { + [key: string]: unknown; + }; + /** Timestamp */ + timestamp: string; + /** + * Uuid + * @default null + */ + uuid: string | null; + }; + /** + * @description * `$ai_generation` - $ai_generation + * * `$ai_span` - $ai_span + * * `$ai_embedding` - $ai_embedding + * * `$ai_trace` - $ai_trace + * @enum {string} + */ + EventTypeEnum: "$ai_generation" | "$ai_span" | "$ai_embedding" | "$ai_trace"; + /** EventsHeatMapColumnAggregationResult */ + EventsHeatMapColumnAggregationResult: { + /** Column */ + column: number; + /** Value */ + value: number; + }; + /** EventsHeatMapDataResult */ + EventsHeatMapDataResult: { + /** Column */ + column: number; + /** Row */ + row: number; + /** Value */ + value: number; + }; + /** EventsHeatMapRowAggregationResult */ + EventsHeatMapRowAggregationResult: { + /** Row */ + row: number; + /** Value */ + value: number; + }; + /** EventsHeatMapStructuredResult */ + EventsHeatMapStructuredResult: { + /** Allaggregations */ + allAggregations: number; + /** Columnaggregations */ + columnAggregations: components["schemas"]["EventsHeatMapColumnAggregationResult"][]; + /** Data */ + data: components["schemas"]["EventsHeatMapDataResult"][]; + /** Rowaggregations */ + rowAggregations: components["schemas"]["EventsHeatMapRowAggregationResult"][]; + }; + /** EventsNode */ + EventsNode: { + /** + * Custom Name + * @default null + */ + custom_name: string | null; + /** + * Event + * @description The event or `null` for all events. + * @default null + */ + event: string | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "EventsNode"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * Math + * @default null + */ + math: components["schemas"]["BaseMathType"] | components["schemas"]["FunnelMathType"] | components["schemas"]["PropertyMathType"] | components["schemas"]["CountPerActorMathType"] | components["schemas"]["ExperimentMetricMathType"] | components["schemas"]["CalendarHeatmapMathType"] | "unique_group" | "hogql" | null; + /** @default null */ + math_group_type_index: components["schemas"]["MathGroupTypeIndex"] | null; + /** + * Math Hogql + * @default null + */ + math_hogql: string | null; + /** + * Math Multiplier + * @default null + */ + math_multiplier: number | null; + /** + * Math Property + * @default null + */ + math_property: string | null; + /** @default null */ + math_property_revenue_currency: components["schemas"]["RevenueCurrencyPropertyConfig"] | null; + /** + * Math Property Type + * @default null + */ + math_property_type: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Optionalinfunnel + * @default null + */ + optionalInFunnel: boolean | null; + /** + * Orderby + * @description Columns to order by + * @default null + */ + orderBy: string[] | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** EventsQuery */ + EventsQuery: { + /** + * Actionid + * @description Show events matching a given action + * @default null + */ + actionId: number | null; + /** + * Actionsteps + * @description Show events matching action steps directly, used when no actionId is provided (e.g. previewing unsaved actions). Ignored if actionId is set. + * @default null + */ + actionSteps: components["schemas"]["EventsQueryActionStep"][] | null; + /** + * After + * @description Only fetch events that happened after this timestamp + * @default null + */ + after: string | null; + /** + * Before + * @description Only fetch events that happened before this timestamp + * @default null + */ + before: string | null; + /** + * Event + * @description Limit to events matching this string + * @default null + */ + event: string | null; + /** + * Events + * @description Filter to events matching any of these event names + * @default null + */ + events: string[] | null; + /** + * Filtertestaccounts + * @description Filter test accounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["PropertyGroupFilter"] | components["schemas"]["PropertyGroupFilterValue"] | components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "EventsQuery"; + /** + * Limit + * @description Number of rows to return + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @description Number of rows to skip before returning rows + * @default null + */ + offset: number | null; + /** + * Orderby + * @description Columns to order by + * @default null + */ + orderBy: string[] | null; + /** + * Personid + * @description Show events for a given person + * @default null + */ + personId: string | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** @default null */ + response: components["schemas"]["EventsQueryResponse"] | null; + /** + * Select + * @description Return a limited set of data. Required. + */ + select: string[]; + /** + * @description source for querying events for insights + * @default null + */ + source: components["schemas"]["InsightActorsQuery"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + /** + * Where + * @description HogQL filters to apply on returned data + * @default null + */ + where: string[] | null; + }; + /** EventsQueryActionStep */ + EventsQueryActionStep: { + /** + * Event + * @default null + */ + event: string | null; + /** + * Href + * @default null + */ + href: string | null; + /** @default null */ + href_matching: components["schemas"]["HrefMatching"] | null; + /** + * Properties + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Selector + * @default null + */ + selector: string | null; + /** + * Tag Name + * @default null + */ + tag_name: string | null; + /** + * Text + * @default null + */ + text: string | null; + /** @default null */ + text_matching: components["schemas"]["TextMatching"] | null; + /** + * Url + * @default null + */ + url: string | null; + /** @default null */ + url_matching: components["schemas"]["UrlMatching"] | null; + }; + /** EventsQueryResponse */ + EventsQueryResponse: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Nextcursor + * @description Cursor for fetching the next page of results + * @default null + */ + nextCursor: string | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** Types */ + types: string[]; + }; + /** + * @description * `is_set` - is_set + * * `is_not_set` - is_not_set + * @enum {string} + */ + ExistenceOperatorEnum: "is_set" | "is_not_set"; + /** @description Checks whether a property is set or not, without comparing values. */ + ExistencePropertyFilter: { + /** @description Key of the property you're filtering on. For example `email` or `$current_url`. */ + key: string; + /** + * @description Property type (event, person, session, etc.). + * + * * `event` - event + * * `event_metadata` - event_metadata + * * `feature` - feature + * * `person` - person + * * `cohort` - cohort + * * `element` - element + * * `static-cohort` - static-cohort + * * `dynamic-cohort` - dynamic-cohort + * * `precalculated-cohort` - precalculated-cohort + * * `group` - group + * * `recording` - recording + * * `log_entry` - log_entry + * * `behavioral` - behavioral + * * `session` - session + * * `hogql` - hogql + * * `data_warehouse` - data_warehouse + * * `data_warehouse_person_property` - data_warehouse_person_property + * * `error_tracking_issue` - error_tracking_issue + * * `log` - log + * * `log_attribute` - log_attribute + * * `log_resource_attribute` - log_resource_attribute + * * `span` - span + * * `span_attribute` - span_attribute + * * `span_resource_attribute` - span_resource_attribute + * * `revenue_analytics` - revenue_analytics + * * `flag` - flag + * * `workflow_variable` - workflow_variable + * @default event + */ + type: components["schemas"]["PropertyFilterTypeEnum"]; + /** + * @description Existence check operator. + * + * * `is_set` - is_set + * * `is_not_set` - is_not_set + */ + operator: components["schemas"]["ExistenceOperatorEnum"]; + }; + /** + * @description * `exit_on_conversion` - Conversion + * * `exit_on_trigger_not_matched` - Trigger Not Matched + * * `exit_on_trigger_not_matched_or_conversion` - Trigger Not Matched Or Conversion + * * `exit_only_at_end` - Only At End + * @enum {string} + */ + ExitConditionEnum: "exit_on_conversion" | "exit_on_trigger_not_matched" | "exit_on_trigger_not_matched_or_conversion" | "exit_only_at_end"; + /** @description Mixin for serializers to add user access control fields */ + Experiment: { + readonly id: number; + /** @description Name of the experiment. */ + name: string; + /** @description Description of the experiment hypothesis and expected outcomes. */ + description?: string | null; + /** Format: date-time */ + start_date?: string | null; + /** Format: date-time */ + end_date?: string | null; + /** @description Unique key for the experiment's feature flag. Letters, numbers, hyphens, and underscores only. Search existing flags with the feature-flags-get-all tool first — reuse an existing flag when possible. */ + feature_flag_key: string; + readonly feature_flag: { + [key: string]: unknown; + }; + readonly holdout: components["schemas"]["ExperimentHoldout"]; + /** @description ID of a holdout group to exclude from the experiment. */ + holdout_id?: number | null; + readonly exposure_cohort: number | null; + /** @description Variant definitions and rollout configuration. Set feature_flag_variants to customize the split (default: 50/50 control/test). Each variant needs a key and split_percent (the variant's share of traffic); percentages must sum to 100. Set rollout_percentage (0-100, default 100) to limit what fraction of users enter the experiment. Set minimum_detectable_effect (percentage, suggest 20-30) to control statistical power. */ + parameters?: components["schemas"]["ExperimentParameters"] | null; + secondary_metrics?: unknown; + readonly saved_metrics: components["schemas"]["ExperimentToSavedMetric"][]; + /** @description IDs of shared saved metrics to attach to this experiment. Each item has 'id' (saved metric ID) and 'metadata' with 'type' (primary or secondary). */ + saved_metrics_ids?: unknown[] | null; + filters?: unknown; + /** + * @description Whether the experiment is archived. + * @default false + */ + archived: boolean; + deleted?: boolean | null; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + /** + * @description Experiment type: web for frontend UI changes, product for backend/API changes. + * + * * `web` - web + * * `product` - product + */ + type?: components["schemas"]["ExperimentTypeEnum"] | components["schemas"]["NullEnum"]; + /** @description Exposure configuration including filter test accounts and custom exposure events. */ + exposure_criteria?: components["schemas"]["ExperimentApiExposureCriteria"] | null; + /** @description Primary experiment metrics. Each metric must have kind='ExperimentMetric' and a metric_type: 'mean' (set source to an EventsNode with an event name), 'funnel' (set series to an array of EventsNode steps), 'ratio' (set numerator and denominator EventsNode entries), or 'retention' (set start_event and completion_event). Use the event-definitions-list tool to find available events in the project. */ + metrics?: components["schemas"]["_ExperimentApiMetricsList"] | null; + /** @description Secondary metrics for additional measurements. Same format as primary metrics. */ + metrics_secondary?: components["schemas"]["_ExperimentApiMetricsList"] | null; + stats_config?: unknown; + scheduling_config?: unknown; + /** + * @description Suppresses the validation that rejects metrics referencing events not yet ingested by this project. REQUIRES explicit user confirmation before being set to true — never flip this silently to retry a failed call. The default validation catches typo'd event names and missing instrumentation. Set this to true only when the user has confirmed the event is intentional (e.g. they are about to instrument it). + * @default false + */ + allow_unknown_events: boolean; + /** create in folder */ + _create_in_folder?: string; + /** + * @description Experiment conclusion: won, lost, inconclusive, stopped_early, or invalid. + * + * * `won` - won + * * `lost` - lost + * * `inconclusive` - inconclusive + * * `stopped_early` - stopped_early + * * `invalid` - invalid + */ + conclusion?: components["schemas"]["ConclusionEnum"] | components["schemas"]["NullEnum"]; + /** @description Comment about the experiment conclusion. */ + conclusion_comment?: string | null; + primary_metrics_ordered_uuids?: unknown; + secondary_metrics_ordered_uuids?: unknown; + only_count_matured_users?: boolean; + /** + * @description When true, sync feature flag configuration from parameters to the linked feature flag. Draft experiments always sync regardless of update_feature_flag_params, so only required for non-drafts. + * @default false + */ + update_feature_flag_params: boolean; + /** @description Experiment lifecycle state: 'draft' (not yet launched), 'running' (launched with active feature flag), 'paused' (running with feature flag deactivated — virtual state derived from feature_flag.active, not stored), 'stopped' (ended). */ + readonly status: components["schemas"]["ExperimentStatusEnum"]; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + }; + /** ExperimentActorsQuery */ + ExperimentActorsQuery: { + /** + * Exposureconfig + * @description Exposure configuration for filtering events. Defines when users were first exposed to the experiment. + * @default null + */ + exposureConfig: components["schemas"]["ExperimentEventExposureConfig"] | components["schemas"]["ActionsNode"] | null; + /** + * Featureflagkey + * @description Feature flag key for breakdown filtering. + * @default null + */ + featureFlagKey: string | null; + /** + * Funnelstep + * @description Index of the step for which we want to get actors for, per experiment variant. Positive for converted persons, negative for dropped off persons. + * @default null + */ + funnelStep: number | null; + /** + * Funnelstepbreakdown + * @description The variant key for filtering actors. For experiments, this filters by feature flag variant (e.g., 'control', 'test'). + * @default null + */ + funnelStepBreakdown: number | string | (number | string)[] | null; + /** + * Includerecordings + * @default null + */ + includeRecordings: boolean | null; + /** + * Kind + * @default ExperimentActorsQuery + * @constant + */ + kind: "ExperimentActorsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description How to handle users with multiple variant exposures. + * @default null + */ + multipleVariantHandling: components["schemas"]["MultipleVariantHandling"] | null; + /** @default null */ + response: components["schemas"]["ActorsQueryResponse"] | null; + source: components["schemas"]["ExperimentQuery"]; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ExperimentApiEventSource */ + ExperimentApiEventSource: { + /** + * Event + * @description Event name, e.g. '$pageview'. Required for EventsNode. + * @default null + */ + event: string | null; + /** + * Id + * @description Action ID. Required for ActionsNode. + * @default null + */ + id: number | null; + kind: components["schemas"]["Kind"]; + /** + * Properties + * @description Event property filters to narrow which events are counted. + * @default null + */ + properties: components["schemas"]["EventPropertyFilter"][] | null; + }; + /** ExperimentApiExposureConfig */ + ExperimentApiExposureConfig: { + /** + * Event + * @description Custom exposure event name. + */ + event: string; + /** + * Kind + * @default ExperimentEventExposureConfig + * @constant + */ + kind: "ExperimentEventExposureConfig"; + /** + * Properties + * @description Event property filters. Pass an empty array if no filters needed. + */ + properties: components["schemas"]["EventPropertyFilter"][]; + }; + /** ExperimentApiExposureCriteria */ + ExperimentApiExposureCriteria: { + /** @default null */ + exposure_config: components["schemas"]["ExperimentApiExposureConfig"] | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + }; + /** ExperimentApiMetric */ + ExperimentApiMetric: { + /** + * @description For retention metrics: completion event. + * @default null + */ + completion_event: components["schemas"]["ExperimentApiEventSource"] | null; + /** + * Conversion Window + * @description Conversion window duration. + * @default null + */ + conversion_window: number | null; + /** + * @description For ratio metrics: denominator source. + * @default null + */ + denominator: components["schemas"]["ExperimentApiEventSource"] | null; + /** + * @description Whether higher or lower values indicate success. + * @default null + */ + goal: components["schemas"]["ExperimentMetricGoal"] | null; + /** + * Kind + * @default ExperimentMetric + * @constant + */ + kind: "ExperimentMetric"; + metric_type: components["schemas"]["ExperimentMetricType"]; + /** + * Name + * @description Human-readable metric name. + * @default null + */ + name: string | null; + /** + * @description For ratio metrics: numerator source. + * @default null + */ + numerator: components["schemas"]["ExperimentApiEventSource"] | null; + /** + * Retention Window End + * @default null + */ + retention_window_end: number | null; + /** + * Retention Window Start + * @default null + */ + retention_window_start: number | null; + /** @default null */ + retention_window_unit: components["schemas"]["FunnelConversionWindowTimeUnit"] | null; + /** + * Series + * @description For funnel metrics: array of EventsNode/ActionsNode steps. + * @default null + */ + series: components["schemas"]["ExperimentApiEventSource"][] | null; + /** + * @description For mean metrics: event source. + * @default null + */ + source: components["schemas"]["ExperimentApiEventSource"] | null; + /** + * @description For retention metrics: start event. + * @default null + */ + start_event: components["schemas"]["ExperimentApiEventSource"] | null; + /** @default null */ + start_handling: components["schemas"]["StartHandling"] | null; + /** + * Uuid + * @description Unique identifier. Auto-generated if omitted. + * @default null + */ + uuid: string | null; + }; + /** ExperimentBreakdownResult */ + ExperimentBreakdownResult: { + /** @description Control variant stats for this breakdown */ + baseline: components["schemas"]["ExperimentStatsBaseValidated"]; + /** + * Breakdown Value + * @description The breakdown values as an array (e.g., ["MacOS", "Chrome"] for multi-breakdown, ["Chrome"] for single) Although `BreakdownKeyType` could be an array, we only use the array form for the breakdown_value. The way `BreakdownKeyType` is defined is problematic. It should be treated as a primitive and allow for the types using it to define if it's and array or an optional value. + */ + breakdown_value: (string | number)[]; + /** + * Variants + * @description Test variant results with statistical comparisons for this breakdown + */ + variants: components["schemas"]["ExperimentVariantResultFrequentist"][] | components["schemas"]["ExperimentVariantResultBayesian"][]; + }; + /** ExperimentDataWarehouseNode */ + ExperimentDataWarehouseNode: { + /** + * Custom Name + * @default null + */ + custom_name: string | null; + /** Data Warehouse Join Key */ + data_warehouse_join_key: string; + /** Events Join Key */ + events_join_key: string; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Kind + * @default ExperimentDataWarehouseNode + * @constant + */ + kind: "ExperimentDataWarehouseNode"; + /** + * Math + * @default null + */ + math: components["schemas"]["BaseMathType"] | components["schemas"]["FunnelMathType"] | components["schemas"]["PropertyMathType"] | components["schemas"]["CountPerActorMathType"] | components["schemas"]["ExperimentMetricMathType"] | components["schemas"]["CalendarHeatmapMathType"] | "unique_group" | "hogql" | null; + /** @default null */ + math_group_type_index: components["schemas"]["MathGroupTypeIndex"] | null; + /** + * Math Hogql + * @default null + */ + math_hogql: string | null; + /** + * Math Multiplier + * @default null + */ + math_multiplier: number | null; + /** + * Math Property + * @default null + */ + math_property: string | null; + /** @default null */ + math_property_revenue_currency: components["schemas"]["RevenueCurrencyPropertyConfig"] | null; + /** + * Math Property Type + * @default null + */ + math_property_type: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Optionalinfunnel + * @default null + */ + optionalInFunnel: boolean | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** Table Name */ + table_name: string; + /** Timestamp Field */ + timestamp_field: string; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ExperimentEventExposureConfig */ + ExperimentEventExposureConfig: { + /** Event */ + event: string; + /** + * Kind + * @default ExperimentEventExposureConfig + * @constant + */ + kind: "ExperimentEventExposureConfig"; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[]; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ExperimentExposureCriteria */ + ExperimentExposureCriteria: { + /** + * Exposure Config + * @default null + */ + exposure_config: components["schemas"]["ExperimentEventExposureConfig"] | components["schemas"]["ActionsNode"] | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** @default null */ + multiple_variant_handling: components["schemas"]["MultipleVariantHandling"] | null; + }; + /** ExperimentExposureQuery */ + ExperimentExposureQuery: { + /** + * End Date + * @default null + */ + end_date: string | null; + /** + * Experiment Id + * @default null + */ + experiment_id: number | null; + /** Experiment Name */ + experiment_name: string; + /** @default null */ + exposure_criteria: components["schemas"]["ExperimentExposureCriteria"] | null; + /** Feature Flag */ + feature_flag: { + [key: string]: unknown; + }; + /** @default null */ + holdout: components["schemas"]["ExperimentHoldoutType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "ExperimentExposureQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["ExperimentExposureQueryResponse"] | null; + /** + * Start Date + * @default null + */ + start_date: string | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ExperimentExposureQueryResponse */ + ExperimentExposureQueryResponse: { + /** @default null */ + bias_risk: components["schemas"]["BiasRisk"] | null; + date_range: components["schemas"]["DateRange"]; + /** + * Kind + * @default ExperimentExposureQuery + * @constant + */ + kind: "ExperimentExposureQuery"; + /** @default null */ + sample_ratio_mismatch: components["schemas"]["SampleRatioMismatch"] | null; + /** Timeseries */ + timeseries: components["schemas"]["ExperimentExposureTimeSeries"][]; + /** Total Exposures */ + total_exposures: { + [key: string]: number; + }; + }; + /** ExperimentExposureTimeSeries */ + ExperimentExposureTimeSeries: { + /** Days */ + days: string[]; + /** Exposure Counts */ + exposure_counts: number[]; + /** Variant */ + variant: string; + }; + /** ExperimentFunnelMetric */ + ExperimentFunnelMetric: { + /** @default null */ + breakdownFilter: components["schemas"]["BreakdownFilter"] | null; + /** + * Conversion Window + * @default null + */ + conversion_window: number | null; + /** @default null */ + conversion_window_unit: components["schemas"]["FunnelConversionWindowTimeUnit"] | null; + /** + * Fingerprint + * @default null + */ + fingerprint: string | null; + /** @default null */ + funnel_order_type: components["schemas"]["StepOrderValue"] | null; + /** @default null */ + goal: components["schemas"]["ExperimentMetricGoal"] | null; + /** + * Issharedmetric + * @default null + */ + isSharedMetric: boolean | null; + /** + * Kind + * @default ExperimentMetric + * @constant + */ + kind: "ExperimentMetric"; + /** + * Metric Type + * @default funnel + * @constant + */ + metric_type: "funnel"; + /** + * Name + * @default null + */ + name: string | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** Series */ + series: (components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["ExperimentDataWarehouseNode"])[]; + /** + * Sharedmetricid + * @default null + */ + sharedMetricId: number | null; + /** + * Uuid + * @default null + */ + uuid: string | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ExperimentFunnelsQuery */ + ExperimentFunnelsQuery: { + /** + * Experiment Id + * @default null + */ + experiment_id: number | null; + /** + * Fingerprint + * @default null + */ + fingerprint: string | null; + funnels_query: components["schemas"]["FunnelsQuery"]; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "ExperimentFunnelsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Name + * @default null + */ + name: string | null; + /** @default null */ + response: components["schemas"]["ExperimentFunnelsQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Uuid + * @default null + */ + uuid: string | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ExperimentFunnelsQueryResponse */ + ExperimentFunnelsQueryResponse: { + /** Credible Intervals */ + credible_intervals: { + [key: string]: number[]; + }; + /** Expected Loss */ + expected_loss: number; + /** @default null */ + funnels_query: components["schemas"]["FunnelsQuery"] | null; + /** Insight */ + insight: { + [key: string]: unknown; + }[][]; + /** + * Kind + * @default ExperimentFunnelsQuery + * @constant + */ + kind: "ExperimentFunnelsQuery"; + /** Probability */ + probability: { + [key: string]: number; + }; + significance_code: components["schemas"]["ExperimentSignificanceCode"]; + /** Significant */ + significant: boolean; + /** + * Stats Version + * @default null + */ + stats_version: number | null; + /** Variants */ + variants: components["schemas"]["ExperimentVariantFunnelsBaseStats"][]; + }; + ExperimentHoldout: { + readonly id: number; + name: string; + description?: string | null; + filters?: unknown; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + /** ExperimentHoldoutType */ + ExperimentHoldoutType: { + /** + * Created At + * @default null + */ + created_at: string | null; + /** @default null */ + created_by: components["schemas"]["UserBasicType"] | null; + /** + * Description + * @default null + */ + description: string | null; + /** Filters */ + filters: components["schemas"]["FeatureFlagGroupType"][]; + /** + * Id + * @default null + */ + id: number | null; + /** Name */ + name: string; + /** + * Updated At + * @default null + */ + updated_at: string | null; + }; + /** ExperimentMeanMetric */ + ExperimentMeanMetric: { + /** @default null */ + breakdownFilter: components["schemas"]["BreakdownFilter"] | null; + /** + * Conversion Window + * @default null + */ + conversion_window: number | null; + /** @default null */ + conversion_window_unit: components["schemas"]["FunnelConversionWindowTimeUnit"] | null; + /** + * Fingerprint + * @default null + */ + fingerprint: string | null; + /** @default null */ + goal: components["schemas"]["ExperimentMetricGoal"] | null; + /** + * Ignore Zeros + * @default null + */ + ignore_zeros: boolean | null; + /** + * Issharedmetric + * @default null + */ + isSharedMetric: boolean | null; + /** + * Kind + * @default ExperimentMetric + * @constant + */ + kind: "ExperimentMetric"; + /** + * Lower Bound Percentile + * @default null + */ + lower_bound_percentile: number | null; + /** + * Metric Type + * @default mean + * @constant + */ + metric_type: "mean"; + /** + * Name + * @default null + */ + name: string | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** + * Sharedmetricid + * @default null + */ + sharedMetricId: number | null; + /** Source */ + source: components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["ExperimentDataWarehouseNode"]; + /** + * Upper Bound Percentile + * @default null + */ + upper_bound_percentile: number | null; + /** + * Uuid + * @default null + */ + uuid: string | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** + * ExperimentMetricGoal + * @enum {string} + */ + ExperimentMetricGoal: "increase" | "decrease"; + /** + * @description * `categorical` - categorical + * * `numeric` - numeric + * * `boolean` - boolean + * @enum {string} + */ + ExperimentMetricKindEnum: "categorical" | "numeric" | "boolean"; + /** + * ExperimentMetricMathType + * @enum {string} + */ + ExperimentMetricMathType: "total" | "sum" | "unique_session" | "min" | "max" | "avg" | "dau" | "unique_group" | "hogql"; + /** + * ExperimentMetricType + * @enum {string} + */ + ExperimentMetricType: "funnel" | "mean" | "ratio" | "retention"; + /** ExperimentParameters */ + ExperimentParameters: { + /** + * Feature Flag Variants + * @description Experiment variants. If specified, must include a variant with key 'control' (lowercase). Defaults to a 50/50 control/test split when omitted. Minimum 2, maximum 20. + * @default null + */ + feature_flag_variants: components["schemas"]["ExperimentVariant"][] | null; + /** + * Minimum Detectable Effect + * @description Minimum detectable effect as a percentage. Lower values need more users but catch smaller changes. Suggest 20–30% for most experiments. + * @default null + */ + minimum_detectable_effect: number | null; + /** + * Rollout Percentage + * @description Overall rollout percentage (0-100). Controls what fraction of all users enter the experiment. Users outside the rollout never see any variant and are excluded from analysis. Default: 100. + * @default null + */ + rollout_percentage: number | null; + }; + /** ExperimentQuery */ + ExperimentQuery: { + /** + * Experiment Id + * @default null + */ + experiment_id: number | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "ExperimentQuery"; + /** Metric */ + metric: components["schemas"]["ExperimentMeanMetric"] | components["schemas"]["ExperimentFunnelMetric"] | components["schemas"]["ExperimentRatioMetric"] | components["schemas"]["ExperimentRetentionMetric"]; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Name + * @default null + */ + name: string | null; + /** @default null */ + precomputation_mode: components["schemas"]["PrecomputationMode"] | null; + /** @default null */ + response: components["schemas"]["ExperimentQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ExperimentQueryResponse */ + ExperimentQueryResponse: { + /** @default null */ + baseline: components["schemas"]["ExperimentStatsBaseValidated"] | null; + /** + * Breakdown Results + * @description Results grouped by breakdown value. When present, baseline and variant_results contain aggregated data. + * @default null + */ + breakdown_results: components["schemas"]["ExperimentBreakdownResult"][] | null; + /** + * Clickhouse Sql + * @default null + */ + clickhouse_sql: string | null; + /** + * Credible Intervals + * @default null + */ + credible_intervals: { + [key: string]: number[]; + } | null; + /** + * Hogql + * @default null + */ + hogql: string | null; + /** + * Insight + * @default null + */ + insight: { + [key: string]: unknown; + }[] | null; + /** + * Is Precomputed + * @description Whether exposures were served from the precomputation system + * @default null + */ + is_precomputed: boolean | null; + /** + * Kind + * @default ExperimentQuery + * @constant + */ + kind: "ExperimentQuery"; + /** + * Metric + * @default null + */ + metric: components["schemas"]["ExperimentMeanMetric"] | components["schemas"]["ExperimentFunnelMetric"] | components["schemas"]["ExperimentRatioMetric"] | components["schemas"]["ExperimentRetentionMetric"] | null; + /** + * P Value + * @default null + */ + p_value: number | null; + /** + * Probability + * @default null + */ + probability: { + [key: string]: number; + } | null; + /** @default null */ + significance_code: components["schemas"]["ExperimentSignificanceCode"] | null; + /** + * Significant + * @default null + */ + significant: boolean | null; + /** + * Stats Version + * @default null + */ + stats_version: number | null; + /** + * Variant Results + * @default null + */ + variant_results: components["schemas"]["ExperimentVariantResultFrequentist"][] | components["schemas"]["ExperimentVariantResultBayesian"][] | null; + /** + * Variants + * @default null + */ + variants: components["schemas"]["ExperimentVariantTrendsBaseStats"][] | components["schemas"]["ExperimentVariantFunnelsBaseStats"][] | null; + }; + /** ExperimentRatioMetric */ + ExperimentRatioMetric: { + /** @default null */ + breakdownFilter: components["schemas"]["BreakdownFilter"] | null; + /** + * Conversion Window + * @default null + */ + conversion_window: number | null; + /** @default null */ + conversion_window_unit: components["schemas"]["FunnelConversionWindowTimeUnit"] | null; + /** Denominator */ + denominator: components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["ExperimentDataWarehouseNode"]; + /** + * Fingerprint + * @default null + */ + fingerprint: string | null; + /** @default null */ + goal: components["schemas"]["ExperimentMetricGoal"] | null; + /** + * Issharedmetric + * @default null + */ + isSharedMetric: boolean | null; + /** + * Kind + * @default ExperimentMetric + * @constant + */ + kind: "ExperimentMetric"; + /** + * Metric Type + * @default ratio + * @constant + */ + metric_type: "ratio"; + /** + * Name + * @default null + */ + name: string | null; + /** Numerator */ + numerator: components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["ExperimentDataWarehouseNode"]; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** + * Sharedmetricid + * @default null + */ + sharedMetricId: number | null; + /** + * Uuid + * @default null + */ + uuid: string | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ExperimentRetentionMetric */ + ExperimentRetentionMetric: { + /** @default null */ + breakdownFilter: components["schemas"]["BreakdownFilter"] | null; + /** Completion Event */ + completion_event: components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["ExperimentDataWarehouseNode"]; + /** + * Conversion Window + * @default null + */ + conversion_window: number | null; + /** @default null */ + conversion_window_unit: components["schemas"]["FunnelConversionWindowTimeUnit"] | null; + /** + * Fingerprint + * @default null + */ + fingerprint: string | null; + /** @default null */ + goal: components["schemas"]["ExperimentMetricGoal"] | null; + /** + * Issharedmetric + * @default null + */ + isSharedMetric: boolean | null; + /** + * Kind + * @default ExperimentMetric + * @constant + */ + kind: "ExperimentMetric"; + /** + * Metric Type + * @default retention + * @constant + */ + metric_type: "retention"; + /** + * Name + * @default null + */ + name: string | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** Retention Window End */ + retention_window_end: number; + /** Retention Window Start */ + retention_window_start: number; + retention_window_unit: components["schemas"]["FunnelConversionWindowTimeUnit"]; + /** + * Sharedmetricid + * @default null + */ + sharedMetricId: number | null; + /** Start Event */ + start_event: components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["ExperimentDataWarehouseNode"]; + start_handling: components["schemas"]["StartHandling"]; + /** + * Uuid + * @default null + */ + uuid: string | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** @description Mixin for serializers to add user access control fields */ + ExperimentSavedMetric: { + readonly id: number; + name: string; + description?: string | null; + query: unknown; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + tags?: unknown[]; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + }; + /** + * ExperimentSignificanceCode + * @enum {string} + */ + ExperimentSignificanceCode: "significant" | "not_enough_exposure" | "low_win_probability" | "high_loss" | "high_p_value"; + /** ExperimentStatsBaseValidated */ + ExperimentStatsBaseValidated: { + /** + * Covariate Sum + * @default null + */ + covariate_sum: number | null; + /** + * Covariate Sum Product + * @default null + */ + covariate_sum_product: number | null; + /** + * Covariate Sum Squares + * @default null + */ + covariate_sum_squares: number | null; + /** + * Denominator Sum + * @default null + */ + denominator_sum: number | null; + /** + * Denominator Sum Squares + * @default null + */ + denominator_sum_squares: number | null; + /** Key */ + key: string; + /** Number Of Samples */ + number_of_samples: number; + /** + * Numerator Denominator Sum Product + * @default null + */ + numerator_denominator_sum_product: number | null; + /** + * Step Counts + * @default null + */ + step_counts: number[] | null; + /** + * Step Sessions + * @default null + */ + step_sessions: components["schemas"]["SessionData"][][] | null; + /** Sum */ + sum: number; + /** Sum Squares */ + sum_squares: number; + /** + * Validation Failures + * @default null + */ + validation_failures: components["schemas"]["ExperimentStatsValidationFailure"][] | null; + }; + /** + * ExperimentStatsValidationFailure + * @enum {string} + */ + ExperimentStatsValidationFailure: "not-enough-exposures" | "baseline-mean-is-zero" | "not-enough-metric-data"; + /** @enum {string} */ + ExperimentStatusEnum: "draft" | "running" | "paused" | "stopped"; + ExperimentToSavedMetric: { + readonly id: number; + experiment: number; + saved_metric: number; + metadata?: unknown; + /** Format: date-time */ + readonly created_at: string; + readonly query: unknown; + readonly name: string; + }; + /** ExperimentTrendsQuery */ + ExperimentTrendsQuery: { + count_query: components["schemas"]["TrendsQuery"]; + /** + * Experiment Id + * @default null + */ + experiment_id: number | null; + /** @default null */ + exposure_query: components["schemas"]["TrendsQuery"] | null; + /** + * Fingerprint + * @default null + */ + fingerprint: string | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "ExperimentTrendsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Name + * @default null + */ + name: string | null; + /** @default null */ + response: components["schemas"]["ExperimentTrendsQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Uuid + * @default null + */ + uuid: string | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** ExperimentTrendsQueryResponse */ + ExperimentTrendsQueryResponse: { + /** @default null */ + count_query: components["schemas"]["TrendsQuery"] | null; + /** Credible Intervals */ + credible_intervals: { + [key: string]: number[]; + }; + /** @default null */ + exposure_query: components["schemas"]["TrendsQuery"] | null; + /** Insight */ + insight: { + [key: string]: unknown; + }[]; + /** + * Kind + * @default ExperimentTrendsQuery + * @constant + */ + kind: "ExperimentTrendsQuery"; + /** P Value */ + p_value: number; + /** Probability */ + probability: { + [key: string]: number; + }; + significance_code: components["schemas"]["ExperimentSignificanceCode"]; + /** Significant */ + significant: boolean; + /** + * Stats Version + * @default null + */ + stats_version: number | null; + /** Variants */ + variants: components["schemas"]["ExperimentVariantTrendsBaseStats"][]; + }; + /** + * @description * `web` - web + * * `product` - product + * @enum {string} + */ + ExperimentTypeEnum: "web" | "product"; + /** ExperimentVariant */ + ExperimentVariant: { + /** + * Key + * @description Variant key. Exactly one variant in feature_flag_variants must use key 'control' (lowercase, exactly) — that is the baseline used for analysis and the special key the experiment runtime expects. Other variants use keys like 'test', 'variant_a', 'variant_b'. Map natural-language names ('original', 'A', 'baseline') to 'control'. + */ + key: string; + /** + * Name + * @description Human-readable variant name. + * @default null + */ + name: string | null; + /** + * Rollout Percentage + * @default null + */ + rollout_percentage: number | null; + /** + * Split Percent + * @description Percentage of users assigned to this variant (0–100). All variants must sum to 100. One of split_percent (recommended) or rollout_percentage must be provided. + * @default null + */ + split_percent: number | null; + }; + /** ExperimentVariantFunnelsBaseStats */ + ExperimentVariantFunnelsBaseStats: { + /** Failure Count */ + failure_count: number; + /** Key */ + key: string; + /** Success Count */ + success_count: number; + }; + /** ExperimentVariantResultBayesian */ + ExperimentVariantResultBayesian: { + /** + * Chance To Win + * @default null + */ + chance_to_win: number | null; + /** + * Covariate Sum + * @default null + */ + covariate_sum: number | null; + /** + * Covariate Sum Product + * @default null + */ + covariate_sum_product: number | null; + /** + * Covariate Sum Squares + * @default null + */ + covariate_sum_squares: number | null; + /** + * Credible Interval + * @default null + */ + credible_interval: number[] | null; + /** + * Denominator Sum + * @default null + */ + denominator_sum: number | null; + /** + * Denominator Sum Squares + * @default null + */ + denominator_sum_squares: number | null; + /** Key */ + key: string; + /** + * Method + * @default bayesian + * @constant + */ + method: "bayesian"; + /** Number Of Samples */ + number_of_samples: number; + /** + * Numerator Denominator Sum Product + * @default null + */ + numerator_denominator_sum_product: number | null; + /** + * Significant + * @default null + */ + significant: boolean | null; + /** + * Step Counts + * @default null + */ + step_counts: number[] | null; + /** + * Step Sessions + * @default null + */ + step_sessions: components["schemas"]["SessionData"][][] | null; + /** Sum */ + sum: number; + /** Sum Squares */ + sum_squares: number; + /** + * Validation Failures + * @default null + */ + validation_failures: components["schemas"]["ExperimentStatsValidationFailure"][] | null; + }; + /** ExperimentVariantResultFrequentist */ + ExperimentVariantResultFrequentist: { + /** + * Confidence Interval + * @default null + */ + confidence_interval: number[] | null; + /** + * Covariate Sum + * @default null + */ + covariate_sum: number | null; + /** + * Covariate Sum Product + * @default null + */ + covariate_sum_product: number | null; + /** + * Covariate Sum Squares + * @default null + */ + covariate_sum_squares: number | null; + /** + * Denominator Sum + * @default null + */ + denominator_sum: number | null; + /** + * Denominator Sum Squares + * @default null + */ + denominator_sum_squares: number | null; + /** Key */ + key: string; + /** + * Method + * @default frequentist + * @constant + */ + method: "frequentist"; + /** Number Of Samples */ + number_of_samples: number; + /** + * Numerator Denominator Sum Product + * @default null + */ + numerator_denominator_sum_product: number | null; + /** + * P Value + * @default null + */ + p_value: number | null; + /** + * Significant + * @default null + */ + significant: boolean | null; + /** + * Step Counts + * @default null + */ + step_counts: number[] | null; + /** + * Step Sessions + * @default null + */ + step_sessions: components["schemas"]["SessionData"][][] | null; + /** Sum */ + sum: number; + /** Sum Squares */ + sum_squares: number; + /** + * Validation Failures + * @default null + */ + validation_failures: components["schemas"]["ExperimentStatsValidationFailure"][] | null; + }; + /** ExperimentVariantTrendsBaseStats */ + ExperimentVariantTrendsBaseStats: { + /** Absolute Exposure */ + absolute_exposure: number; + /** Count */ + count: number; + /** Exposure */ + exposure: number; + /** Key */ + key: string; + }; + ExplainRequest: { + /** @description UUID of the log entry to explain */ + uuid: string; + /** + * Format: date-time + * @description Timestamp of the log entry (used for efficient lookup) + */ + timestamp: string; + /** + * @description Force regenerate explanation, bypassing cache + * @default false + */ + force_refresh: boolean; + }; + /** + * @description * `image/png` - image/png + * * `application/pdf` - application/pdf + * * `text/csv` - text/csv + * * `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + * * `video/webm` - video/webm + * * `video/mp4` - video/mp4 + * * `image/gif` - image/gif + * * `application/json` - application/json + * @enum {string} + */ + ExportFormatEnum: "image/png" | "application/pdf" | "text/csv" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "video/webm" | "video/mp4" | "image/gif" | "application/json"; + /** @description Standard ExportedAsset serializer that doesn't return content. */ + ExportedAsset: { + readonly id: number; + dashboard?: number | null; + insight?: number | null; + export_format: components["schemas"]["ExportFormatEnum"]; + /** Format: date-time */ + readonly created_at: string; + readonly has_content: boolean; + export_context?: unknown; + readonly filename: string; + /** Format: date-time */ + readonly expires_after: string | null; + readonly exception: string | null; + }; + ExternalDataSchema: { + /** Format: uuid */ + readonly id: string; + readonly name: string; + readonly label: string | null; + readonly table: { + [key: string]: unknown; + } | null; + should_sync?: boolean; + /** Format: date-time */ + readonly last_synced_at: string | null; + /** @description The latest error that occurred when syncing this schema. */ + readonly latest_error: string | null; + readonly incremental: boolean; + readonly status: string | null; + /** + * @description Sync strategy: incremental, full_refresh, append, or cdc. + * + * * `full_refresh` - full_refresh + * * `incremental` - incremental + * * `append` - append + * * `webhook` - webhook + * * `cdc` - cdc + */ + sync_type?: components["schemas"]["SyncTypeEnum"] | components["schemas"]["NullEnum"]; + /** @description Column name used to track sync progress. */ + incremental_field?: string | null; + /** + * @description Data type of the incremental field. + * + * * `integer` - integer + * * `numeric` - numeric + * * `datetime` - datetime + * * `date` - date + * * `timestamp` - timestamp + * * `objectid` - objectid + */ + incremental_field_type?: components["schemas"]["IncrementalFieldTypeEnum"] | components["schemas"]["NullEnum"]; + /** + * @description How often to sync. + * + * * `never` - never + * * `1min` - 1min + * * `5min` - 5min + * * `15min` - 15min + * * `30min` - 30min + * * `1hour` - 1hour + * * `6hour` - 6hour + * * `12hour` - 12hour + * * `24hour` - 24hour + * * `7day` - 7day + * * `30day` - 30day + */ + sync_frequency?: components["schemas"]["SyncFrequencyEnum"] | components["schemas"]["NullEnum"]; + /** + * Format: time + * @description UTC time of day to run the sync (HH:MM:SS). + */ + sync_time_of_day?: string | null; + readonly description: string | null; + /** @description Column names for primary key deduplication. */ + primary_key_columns?: string[] | null; + /** + * @description For CDC syncs: consolidated, cdc_only, or both. + * + * * `consolidated` - consolidated + * * `cdc_only` - cdc_only + * * `both` - both + */ + cdc_table_mode?: components["schemas"]["CdcTableModeEnum"] | components["schemas"]["NullEnum"]; + }; + ExternalDataSourceBulkUpdateSchema: { + /** + * Format: uuid + * @description Schema identifier to update. + */ + id: string; + /** @description Whether the schema should be queryable/synced. */ + should_sync?: boolean; + /** + * @description Requested sync mode for the schema. + * + * * `full_refresh` - full_refresh + * * `incremental` - incremental + * * `append` - append + * * `webhook` - webhook + * * `cdc` - cdc + */ + sync_type?: components["schemas"]["SyncTypeEnum"] | components["schemas"]["NullEnum"]; + /** @description Incremental cursor field for incremental or append syncs. */ + incremental_field?: string | null; + /** @description Type of the incremental cursor field. */ + incremental_field_type?: string | null; + /** @description Human-readable sync frequency value. */ + sync_frequency?: string | null; + /** + * Format: time + * @description UTC anchor time for scheduled syncs. + */ + sync_time_of_day?: string | null; + /** + * @description How CDC-backed tables should be exposed. + * + * * `consolidated` - consolidated + * * `cdc_only` - cdc_only + * * `both` - both + */ + cdc_table_mode?: components["schemas"]["CdcTableModeEnum"] | components["schemas"]["NullEnum"]; + }; + ExternalDataSourceConnectionOption: { + /** Format: uuid */ + readonly id: string; + readonly prefix: string | null; + /** + * @description Backend engine detected for the direct connection. + * + * * `duckdb` - duckdb + * * `postgres` - postgres + */ + readonly engine: components["schemas"]["EngineEnum"] | components["schemas"]["NullEnum"]; + }; + ExternalDataSourceCreate: { + /** + * @description The source type (e.g. 'Postgres', 'Stripe'). + * + * * `Ashby` - Ashby + * * `Supabase` - Supabase + * * `CustomerIO` - CustomerIO + * * `Github` - Github + * * `Stripe` - Stripe + * * `Hubspot` - Hubspot + * * `Postgres` - Postgres + * * `Zendesk` - Zendesk + * * `Snowflake` - Snowflake + * * `Salesforce` - Salesforce + * * `MySQL` - MySQL + * * `MongoDB` - MongoDB + * * `MSSQL` - MSSQL + * * `Vitally` - Vitally + * * `BigQuery` - BigQuery + * * `Chargebee` - Chargebee + * * `Clerk` - Clerk + * * `GoogleAds` - GoogleAds + * * `TemporalIO` - TemporalIO + * * `DoIt` - DoIt + * * `GoogleSheets` - GoogleSheets + * * `MetaAds` - MetaAds + * * `Klaviyo` - Klaviyo + * * `Mailchimp` - Mailchimp + * * `Braze` - Braze + * * `Mailjet` - Mailjet + * * `Redshift` - Redshift + * * `Polar` - Polar + * * `RevenueCat` - RevenueCat + * * `LinkedinAds` - LinkedinAds + * * `RedditAds` - RedditAds + * * `TikTokAds` - TikTokAds + * * `BingAds` - BingAds + * * `Shopify` - Shopify + * * `Attio` - Attio + * * `SnapchatAds` - SnapchatAds + * * `Linear` - Linear + * * `Intercom` - Intercom + * * `Amplitude` - Amplitude + * * `Mixpanel` - Mixpanel + * * `Jira` - Jira + * * `ActiveCampaign` - ActiveCampaign + * * `Marketo` - Marketo + * * `Adjust` - Adjust + * * `AppsFlyer` - AppsFlyer + * * `Freshdesk` - Freshdesk + * * `GoogleAnalytics` - GoogleAnalytics + * * `Pipedrive` - Pipedrive + * * `SendGrid` - SendGrid + * * `Slack` - Slack + * * `PagerDuty` - PagerDuty + * * `Asana` - Asana + * * `Notion` - Notion + * * `Airtable` - Airtable + * * `Greenhouse` - Greenhouse + * * `BambooHR` - BambooHR + * * `Lever` - Lever + * * `GitLab` - GitLab + * * `Datadog` - Datadog + * * `Sentry` - Sentry + * * `Pendo` - Pendo + * * `FullStory` - FullStory + * * `AmazonAds` - AmazonAds + * * `PinterestAds` - PinterestAds + * * `AppleSearchAds` - AppleSearchAds + * * `QuickBooks` - QuickBooks + * * `Xero` - Xero + * * `NetSuite` - NetSuite + * * `WooCommerce` - WooCommerce + * * `BigCommerce` - BigCommerce + * * `PayPal` - PayPal + * * `Square` - Square + * * `Zoom` - Zoom + * * `Trello` - Trello + * * `Monday` - Monday + * * `ClickUp` - ClickUp + * * `Confluence` - Confluence + * * `Recurly` - Recurly + * * `SalesLoft` - SalesLoft + * * `Outreach` - Outreach + * * `Gong` - Gong + * * `Calendly` - Calendly + * * `Typeform` - Typeform + * * `Iterable` - Iterable + * * `ZohoCRM` - ZohoCRM + * * `Close` - Close + * * `Oracle` - Oracle + * * `DynamoDB` - DynamoDB + * * `Elasticsearch` - Elasticsearch + * * `Kafka` - Kafka + * * `LaunchDarkly` - LaunchDarkly + * * `Braintree` - Braintree + * * `Recharge` - Recharge + * * `HelpScout` - HelpScout + * * `Gorgias` - Gorgias + * * `Instagram` - Instagram + * * `YouTubeAnalytics` - YouTubeAnalytics + * * `FacebookPages` - FacebookPages + * * `TwitterAds` - TwitterAds + * * `Workday` - Workday + * * `ServiceNow` - ServiceNow + * * `Pardot` - Pardot + * * `Copper` - Copper + * * `Front` - Front + * * `ChartMogul` - ChartMogul + * * `Zuora` - Zuora + * * `Paddle` - Paddle + * * `CircleCI` - CircleCI + * * `CockroachDB` - CockroachDB + * * `Firebase` - Firebase + * * `AzureBlob` - AzureBlob + * * `GoogleDrive` - GoogleDrive + * * `OneDrive` - OneDrive + * * `SharePoint` - SharePoint + * * `Box` - Box + * * `SFTP` - SFTP + * * `MicrosoftTeams` - MicrosoftTeams + * * `Aircall` - Aircall + * * `Webflow` - Webflow + * * `Okta` - Okta + * * `Auth0` - Auth0 + * * `Productboard` - Productboard + * * `Smartsheet` - Smartsheet + * * `Wrike` - Wrike + * * `Plaid` - Plaid + * * `SurveyMonkey` - SurveyMonkey + * * `Eventbrite` - Eventbrite + * * `RingCentral` - RingCentral + * * `Twilio` - Twilio + * * `Freshsales` - Freshsales + * * `Shortcut` - Shortcut + * * `ConvertKit` - ConvertKit + * * `Drip` - Drip + * * `CampaignMonitor` - CampaignMonitor + * * `MailerLite` - MailerLite + * * `Omnisend` - Omnisend + * * `Brevo` - Brevo + * * `Postmark` - Postmark + * * `Granola` - Granola + * * `BuildBetter` - BuildBetter + * * `Convex` - Convex + * * `ClickHouse` - ClickHouse + * * `Plain` - Plain + * * `Resend` - Resend + */ + source_type: components["schemas"]["ExternalDataSourceTypeEnum"]; + /** @description Connection credentials and a 'schemas' array. Keys depend on source_type. */ + payload: { + [key: string]: unknown; + }; + /** @description Table name prefix in HogQL. */ + prefix?: string | null; + /** @description Human-readable description. */ + description?: string | null; + /** + * @description Connection mode: 'warehouse' (import) or 'direct' (live query). + * + * * `warehouse` - warehouse + * * `direct` - direct + * @default warehouse + */ + access_method: components["schemas"]["AccessMethodEnum"]; + /** + * @description Where the request came from + * + * * `web` - web + * * `api` - api + * * `mcp` - mcp + * @default api + */ + created_via: components["schemas"]["CreatedViaEnum"]; + }; + ExternalDataSourceRevenueAnalyticsConfig: { + enabled?: boolean; + include_invoiceless_charges?: boolean; + }; + /** @description Mixin for serializers to add user access control fields */ + ExternalDataSourceSerializers: { + /** Format: uuid */ + readonly id: string; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: string | null; + /** + * @description How this source was created. Defaults to `api` on create when omitted. `web` for the in-app UI, `api` for direct API callers, `mcp` for agent/MCP tool calls. Ignored on update. + * + * * `web` - web + * * `api` - api + * * `mcp` - mcp + */ + created_via?: components["schemas"]["CreatedViaEnum"]; + readonly status: string; + client_secret: string; + account_id: string; + readonly source_type: components["schemas"]["ExternalDataSourceTypeEnum"]; + readonly latest_error: string | null; + prefix?: string | null; + description?: string | null; + readonly access_method: components["schemas"]["AccessMethodEnum"]; + /** + * @description Backend engine detected for the direct connection. + * + * * `duckdb` - duckdb + * * `postgres` - postgres + */ + readonly engine: components["schemas"]["EngineEnum"] | components["schemas"]["NullEnum"]; + readonly last_run_at: string | null; + readonly schemas: { + [key: string]: unknown; + }[]; + job_inputs?: unknown; + readonly revenue_analytics_config: components["schemas"]["ExternalDataSourceRevenueAnalyticsConfig"]; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + readonly supports_webhooks: boolean; + }; + /** + * @description * `Ashby` - Ashby + * * `Supabase` - Supabase + * * `CustomerIO` - CustomerIO + * * `Github` - Github + * * `Stripe` - Stripe + * * `Hubspot` - Hubspot + * * `Postgres` - Postgres + * * `Zendesk` - Zendesk + * * `Snowflake` - Snowflake + * * `Salesforce` - Salesforce + * * `MySQL` - MySQL + * * `MongoDB` - MongoDB + * * `MSSQL` - MSSQL + * * `Vitally` - Vitally + * * `BigQuery` - BigQuery + * * `Chargebee` - Chargebee + * * `Clerk` - Clerk + * * `GoogleAds` - GoogleAds + * * `TemporalIO` - TemporalIO + * * `DoIt` - DoIt + * * `GoogleSheets` - GoogleSheets + * * `MetaAds` - MetaAds + * * `Klaviyo` - Klaviyo + * * `Mailchimp` - Mailchimp + * * `Braze` - Braze + * * `Mailjet` - Mailjet + * * `Redshift` - Redshift + * * `Polar` - Polar + * * `RevenueCat` - RevenueCat + * * `LinkedinAds` - LinkedinAds + * * `RedditAds` - RedditAds + * * `TikTokAds` - TikTokAds + * * `BingAds` - BingAds + * * `Shopify` - Shopify + * * `Attio` - Attio + * * `SnapchatAds` - SnapchatAds + * * `Linear` - Linear + * * `Intercom` - Intercom + * * `Amplitude` - Amplitude + * * `Mixpanel` - Mixpanel + * * `Jira` - Jira + * * `ActiveCampaign` - ActiveCampaign + * * `Marketo` - Marketo + * * `Adjust` - Adjust + * * `AppsFlyer` - AppsFlyer + * * `Freshdesk` - Freshdesk + * * `GoogleAnalytics` - GoogleAnalytics + * * `Pipedrive` - Pipedrive + * * `SendGrid` - SendGrid + * * `Slack` - Slack + * * `PagerDuty` - PagerDuty + * * `Asana` - Asana + * * `Notion` - Notion + * * `Airtable` - Airtable + * * `Greenhouse` - Greenhouse + * * `BambooHR` - BambooHR + * * `Lever` - Lever + * * `GitLab` - GitLab + * * `Datadog` - Datadog + * * `Sentry` - Sentry + * * `Pendo` - Pendo + * * `FullStory` - FullStory + * * `AmazonAds` - AmazonAds + * * `PinterestAds` - PinterestAds + * * `AppleSearchAds` - AppleSearchAds + * * `QuickBooks` - QuickBooks + * * `Xero` - Xero + * * `NetSuite` - NetSuite + * * `WooCommerce` - WooCommerce + * * `BigCommerce` - BigCommerce + * * `PayPal` - PayPal + * * `Square` - Square + * * `Zoom` - Zoom + * * `Trello` - Trello + * * `Monday` - Monday + * * `ClickUp` - ClickUp + * * `Confluence` - Confluence + * * `Recurly` - Recurly + * * `SalesLoft` - SalesLoft + * * `Outreach` - Outreach + * * `Gong` - Gong + * * `Calendly` - Calendly + * * `Typeform` - Typeform + * * `Iterable` - Iterable + * * `ZohoCRM` - ZohoCRM + * * `Close` - Close + * * `Oracle` - Oracle + * * `DynamoDB` - DynamoDB + * * `Elasticsearch` - Elasticsearch + * * `Kafka` - Kafka + * * `LaunchDarkly` - LaunchDarkly + * * `Braintree` - Braintree + * * `Recharge` - Recharge + * * `HelpScout` - HelpScout + * * `Gorgias` - Gorgias + * * `Instagram` - Instagram + * * `YouTubeAnalytics` - YouTubeAnalytics + * * `FacebookPages` - FacebookPages + * * `TwitterAds` - TwitterAds + * * `Workday` - Workday + * * `ServiceNow` - ServiceNow + * * `Pardot` - Pardot + * * `Copper` - Copper + * * `Front` - Front + * * `ChartMogul` - ChartMogul + * * `Zuora` - Zuora + * * `Paddle` - Paddle + * * `CircleCI` - CircleCI + * * `CockroachDB` - CockroachDB + * * `Firebase` - Firebase + * * `AzureBlob` - AzureBlob + * * `GoogleDrive` - GoogleDrive + * * `OneDrive` - OneDrive + * * `SharePoint` - SharePoint + * * `Box` - Box + * * `SFTP` - SFTP + * * `MicrosoftTeams` - MicrosoftTeams + * * `Aircall` - Aircall + * * `Webflow` - Webflow + * * `Okta` - Okta + * * `Auth0` - Auth0 + * * `Productboard` - Productboard + * * `Smartsheet` - Smartsheet + * * `Wrike` - Wrike + * * `Plaid` - Plaid + * * `SurveyMonkey` - SurveyMonkey + * * `Eventbrite` - Eventbrite + * * `RingCentral` - RingCentral + * * `Twilio` - Twilio + * * `Freshsales` - Freshsales + * * `Shortcut` - Shortcut + * * `ConvertKit` - ConvertKit + * * `Drip` - Drip + * * `CampaignMonitor` - CampaignMonitor + * * `MailerLite` - MailerLite + * * `Omnisend` - Omnisend + * * `Brevo` - Brevo + * * `Postmark` - Postmark + * * `Granola` - Granola + * * `BuildBetter` - BuildBetter + * * `Convex` - Convex + * * `ClickHouse` - ClickHouse + * * `Plain` - Plain + * * `Resend` - Resend + * @enum {string} + */ + ExternalDataSourceTypeEnum: "Ashby" | "Supabase" | "CustomerIO" | "Github" | "Stripe" | "Hubspot" | "Postgres" | "Zendesk" | "Snowflake" | "Salesforce" | "MySQL" | "MongoDB" | "MSSQL" | "Vitally" | "BigQuery" | "Chargebee" | "Clerk" | "GoogleAds" | "TemporalIO" | "DoIt" | "GoogleSheets" | "MetaAds" | "Klaviyo" | "Mailchimp" | "Braze" | "Mailjet" | "Redshift" | "Polar" | "RevenueCat" | "LinkedinAds" | "RedditAds" | "TikTokAds" | "BingAds" | "Shopify" | "Attio" | "SnapchatAds" | "Linear" | "Intercom" | "Amplitude" | "Mixpanel" | "Jira" | "ActiveCampaign" | "Marketo" | "Adjust" | "AppsFlyer" | "Freshdesk" | "GoogleAnalytics" | "Pipedrive" | "SendGrid" | "Slack" | "PagerDuty" | "Asana" | "Notion" | "Airtable" | "Greenhouse" | "BambooHR" | "Lever" | "GitLab" | "Datadog" | "Sentry" | "Pendo" | "FullStory" | "AmazonAds" | "PinterestAds" | "AppleSearchAds" | "QuickBooks" | "Xero" | "NetSuite" | "WooCommerce" | "BigCommerce" | "PayPal" | "Square" | "Zoom" | "Trello" | "Monday" | "ClickUp" | "Confluence" | "Recurly" | "SalesLoft" | "Outreach" | "Gong" | "Calendly" | "Typeform" | "Iterable" | "ZohoCRM" | "Close" | "Oracle" | "DynamoDB" | "Elasticsearch" | "Kafka" | "LaunchDarkly" | "Braintree" | "Recharge" | "HelpScout" | "Gorgias" | "Instagram" | "YouTubeAnalytics" | "FacebookPages" | "TwitterAds" | "Workday" | "ServiceNow" | "Pardot" | "Copper" | "Front" | "ChartMogul" | "Zuora" | "Paddle" | "CircleCI" | "CockroachDB" | "Firebase" | "AzureBlob" | "GoogleDrive" | "OneDrive" | "SharePoint" | "Box" | "SFTP" | "MicrosoftTeams" | "Aircall" | "Webflow" | "Okta" | "Auth0" | "Productboard" | "Smartsheet" | "Wrike" | "Plaid" | "SurveyMonkey" | "Eventbrite" | "RingCentral" | "Twilio" | "Freshsales" | "Shortcut" | "ConvertKit" | "Drip" | "CampaignMonitor" | "MailerLite" | "Omnisend" | "Brevo" | "Postmark" | "Granola" | "BuildBetter" | "Convex" | "ClickHouse" | "Plain" | "Resend"; + /** ExternalQueryError */ + ExternalQueryError: { + code: components["schemas"]["ExternalQueryErrorCode"]; + /** Detail */ + detail: string; + }; + /** + * ExternalQueryErrorCode + * @enum {string} + */ + ExternalQueryErrorCode: "platform_access_required" | "query_execution_failed"; + /** + * ExternalQueryStatus + * @enum {string} + */ + ExternalQueryStatus: "success" | "error"; + /** @description Serializer mixin that handles tags for objects. */ + FeatureFlag: { + readonly id: number; + /** @description contains the description for the flag (field name `name` is kept for backwards-compatibility) */ + name?: string; + key: string; + filters?: { + [key: string]: unknown; + }; + deleted?: boolean; + active?: boolean; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + readonly updated_at: string | null; + /** @default 0 */ + version: number; + readonly last_modified_by: components["schemas"]["UserBasic"]; + ensure_experience_continuity?: boolean | null; + readonly experiment_set: number[]; + readonly experiment_set_metadata: { + [key: string]: unknown; + }[]; + readonly surveys: { + [key: string]: unknown; + }; + readonly features: { + [key: string]: unknown; + }; + rollback_conditions?: unknown; + performed_rollback?: boolean | null; + readonly can_edit: boolean; + tags?: unknown[]; + evaluation_contexts?: unknown[]; + readonly usage_dashboard: number; + analytics_dashboards?: number[]; + has_enriched_analytics?: boolean | null; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + /** + * @description Indicates the origin product of the feature flag. Choices: 'feature_flags', 'experiments', 'surveys', 'early_access_features', 'web_experiments', 'product_tours'. + * + * * `feature_flags` - feature_flags + * * `experiments` - experiments + * * `surveys` - surveys + * * `early_access_features` - early_access_features + * * `web_experiments` - web_experiments + * * `product_tours` - product_tours + */ + creation_context?: components["schemas"]["FeatureFlagCreationContextEnum"]; + is_remote_configuration?: boolean | null; + has_encrypted_payloads?: boolean | null; + readonly status: string; + /** + * @description Specifies where this feature flag should be evaluated + * + * * `server` - Server + * * `client` - Client + * * `all` - All + */ + evaluation_runtime?: components["schemas"]["EvaluationRuntimeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + /** + * @description Identifier used for bucketing users into rollout and variants + * + * * `distinct_id` - User ID (default) + * * `device_id` - Device ID + */ + bucketing_identifier?: components["schemas"]["BucketingIdentifierEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + /** + * Format: date-time + * @description Last time this feature flag was called (from $feature_flag_called events) + */ + last_called_at?: string | null; + /** create in folder */ + _create_in_folder?: string; + /** + * should create usage dashboard + * @default true + */ + _should_create_usage_dashboard: boolean; + /** @description Check if this feature flag is used in any team's session recording linked flag setting. */ + readonly is_used_in_replay_settings: boolean; + }; + FeatureFlagConditionAnalysis: { + /** @description Index of this condition in the feature flag */ + index: number; + /** @description True when this condition was the one that determined the flag's outcome. Use this to find the winning condition — at most one condition per flag is True. */ + matched: boolean; + /** @description True when every property in this condition evaluated to true, regardless of whether this condition was the eventual winner. */ + properties_matched?: boolean; + /** @description Human-readable explanation of why this condition matched/didn't match */ + explanation: string; + /** + * Format: double + * @description Rollout percentage for this condition (0.0-100.0) + */ + rollout_percentage: number; + /** @description Whether this condition matched properties but was excluded due to rollout */ + rollout_excluded: boolean; + /** @description Variant associated with this condition */ + variant: string | null; + /** @description Analysis of each property in this condition */ + properties: components["schemas"]["FeatureFlagConditionPropertyAnalysis"][]; + }; + FeatureFlagConditionGroupSchema: { + /** @description Property conditions for this release condition group. */ + properties?: components["schemas"]["FeatureFlagFilterPropertySchema"][]; + /** + * Format: double + * @description Rollout percentage for this release condition group. + */ + rollout_percentage?: number; + /** @description Variant key override for multivariate flags. */ + variant?: string | null; + /** @description Group type index for this condition set. None means person-level aggregation. */ + aggregation_group_type_index?: number | null; + }; + FeatureFlagConditionPropertyAnalysis: { + /** @description Property key */ + key: string; + /** @description Comparison operator */ + operator: string; + /** @description Expected property value */ + value: unknown; + /** @description Property type (person, group, etc.) */ + type: string; + /** @description Actual property value from user */ + actual_value: unknown; + /** @description Whether this property condition matched */ + matched: boolean; + /** @description Human-readable explanation of the match result */ + explanation: string; + }; + FeatureFlagCreateRequestSchema: { + /** @description Feature flag key. */ + key?: string; + /** @description Feature flag description (stored in the `name` field for backwards compatibility). */ + name?: string; + /** @description Feature flag targeting configuration. */ + filters?: components["schemas"]["FeatureFlagFiltersSchema"]; + /** @description Whether the feature flag is active. */ + active?: boolean; + /** @description Organizational tags for this feature flag. */ + tags?: string[]; + /** @description Evaluation contexts that control where this flag evaluates at runtime. */ + evaluation_contexts?: string[]; + }; + /** + * @description * `feature_flags` - feature_flags + * * `experiments` - experiments + * * `surveys` - surveys + * * `early_access_features` - early_access_features + * * `web_experiments` - web_experiments + * * `product_tours` - product_tours + * @enum {string} + */ + FeatureFlagCreationContextEnum: "feature_flags" | "experiments" | "surveys" | "early_access_features" | "web_experiments" | "product_tours"; + FeatureFlagFilterPropertyCohortInSchema: { + /** @description Property key used in this feature flag condition. */ + key: string; + /** + * @description Cohort property type required for in/not_in operators. + * + * * `cohort` - cohort + */ + type: components["schemas"]["FeatureFlagFilterPropertyCohortInSchemaTypeEnum"]; + /** @description Resolved cohort name for cohort-type filters. */ + cohort_name?: string | null; + /** @description Group type index when using group-based filters. */ + group_type_index?: number | null; + /** + * @description Membership operator for cohort properties. + * + * * `in` - in + * * `not_in` - not_in + */ + operator: components["schemas"]["FeatureFlagFilterPropertyCohortInSchemaOperatorEnum"]; + /** @description Cohort comparison value (single or list, depending on usage). */ + value: unknown; + }; + /** + * @description * `in` - in + * * `not_in` - not_in + * @enum {string} + */ + FeatureFlagFilterPropertyCohortInSchemaOperatorEnum: "in" | "not_in"; + /** + * @description * `cohort` - cohort + * @enum {string} + */ + FeatureFlagFilterPropertyCohortInSchemaTypeEnum: "cohort"; + FeatureFlagFilterPropertyDateSchema: { + /** @description Property key used in this feature flag condition. */ + key: string; + /** + * @description Property filter type. Common values are 'person' and 'cohort'. + * + * * `cohort` - cohort + * * `person` - person + * * `group` - group + */ + type?: components["schemas"]["PropertyGroupTypeEnum"]; + /** @description Resolved cohort name for cohort-type filters. */ + cohort_name?: string | null; + /** @description Group type index when using group-based filters. */ + group_type_index?: number | null; + /** + * @description Date comparison operator. + * + * * `is_date_exact` - is_date_exact + * * `is_date_after` - is_date_after + * * `is_date_before` - is_date_before + */ + operator: components["schemas"]["DateOperatorEnum"]; + /** @description Date value in ISO format or relative date expression. */ + value: string; + }; + FeatureFlagFilterPropertyExistsSchema: { + /** @description Property key used in this feature flag condition. */ + key: string; + /** + * @description Property filter type. Common values are 'person' and 'cohort'. + * + * * `cohort` - cohort + * * `person` - person + * * `group` - group + */ + type?: components["schemas"]["PropertyGroupTypeEnum"]; + /** @description Resolved cohort name for cohort-type filters. */ + cohort_name?: string | null; + /** @description Group type index when using group-based filters. */ + group_type_index?: number | null; + /** + * @description Existence operator. + * + * * `is_set` - is_set + * * `is_not_set` - is_not_set + */ + operator: components["schemas"]["ExistenceOperatorEnum"]; + /** @description Optional value. Runtime behavior determines whether this is ignored. */ + value?: unknown; + }; + FeatureFlagFilterPropertyFlagEvaluatesSchema: { + /** @description Property key used in this feature flag condition. */ + key: string; + /** + * @description Flag property type required for flag dependency checks. + * + * * `flag` - flag + */ + type: components["schemas"]["FeatureFlagFilterPropertyFlagEvaluatesSchemaTypeEnum"]; + /** @description Resolved cohort name for cohort-type filters. */ + cohort_name?: string | null; + /** @description Group type index when using group-based filters. */ + group_type_index?: number | null; + /** + * @description Operator for feature flag dependency evaluation. + * + * * `flag_evaluates_to` - flag_evaluates_to + */ + operator: components["schemas"]["FeatureFlagFilterPropertyFlagEvaluatesSchemaOperatorEnum"]; + /** @description Value to compare flag evaluation against. */ + value: unknown; + }; + /** + * @description * `flag_evaluates_to` - flag_evaluates_to + * @enum {string} + */ + FeatureFlagFilterPropertyFlagEvaluatesSchemaOperatorEnum: "flag_evaluates_to"; + /** + * @description * `flag` - flag + * @enum {string} + */ + FeatureFlagFilterPropertyFlagEvaluatesSchemaTypeEnum: "flag"; + FeatureFlagFilterPropertyGenericSchema: { + /** @description Property key used in this feature flag condition. */ + key: string; + /** + * @description Property filter type. Common values are 'person' and 'cohort'. + * + * * `cohort` - cohort + * * `person` - person + * * `group` - group + */ + type?: components["schemas"]["PropertyGroupTypeEnum"]; + /** @description Resolved cohort name for cohort-type filters. */ + cohort_name?: string | null; + /** @description Group type index when using group-based filters. */ + group_type_index?: number | null; + /** @description Comparison value for the property filter. Supports strings, numbers, booleans, and arrays. */ + value: unknown; + /** + * @description Operator used to compare the property value. + * + * * `exact` - exact + * * `is_not` - is_not + * * `icontains` - icontains + * * `not_icontains` - not_icontains + * * `regex` - regex + * * `not_regex` - not_regex + * * `gt` - gt + * * `gte` - gte + * * `lt` - lt + * * `lte` - lte + */ + operator: components["schemas"]["FeatureFlagFilterPropertyGenericSchemaOperatorEnum"]; + }; + /** + * @description * `exact` - exact + * * `is_not` - is_not + * * `icontains` - icontains + * * `not_icontains` - not_icontains + * * `regex` - regex + * * `not_regex` - not_regex + * * `gt` - gt + * * `gte` - gte + * * `lt` - lt + * * `lte` - lte + * @enum {string} + */ + FeatureFlagFilterPropertyGenericSchemaOperatorEnum: "exact" | "is_not" | "icontains" | "not_icontains" | "regex" | "not_regex" | "gt" | "gte" | "lt" | "lte"; + FeatureFlagFilterPropertyMultiContainsSchema: { + /** @description Property key used in this feature flag condition. */ + key: string; + /** + * @description Property filter type. Common values are 'person' and 'cohort'. + * + * * `cohort` - cohort + * * `person` - person + * * `group` - group + */ + type?: components["schemas"]["PropertyGroupTypeEnum"]; + /** @description Resolved cohort name for cohort-type filters. */ + cohort_name?: string | null; + /** @description Group type index when using group-based filters. */ + group_type_index?: number | null; + /** + * @description Multi-contains operator. + * + * * `icontains_multi` - icontains_multi + * * `not_icontains_multi` - not_icontains_multi + */ + operator: components["schemas"]["FeatureFlagFilterPropertyMultiContainsSchemaOperatorEnum"]; + /** @description List of strings to evaluate against. */ + value: string[]; + }; + /** + * @description * `icontains_multi` - icontains_multi + * * `not_icontains_multi` - not_icontains_multi + * @enum {string} + */ + FeatureFlagFilterPropertyMultiContainsSchemaOperatorEnum: "icontains_multi" | "not_icontains_multi"; + FeatureFlagFilterPropertySchema: components["schemas"]["FeatureFlagFilterPropertyGenericSchema"] | components["schemas"]["FeatureFlagFilterPropertyExistsSchema"] | components["schemas"]["FeatureFlagFilterPropertyDateSchema"] | components["schemas"]["FeatureFlagFilterPropertySemverSchema"] | components["schemas"]["FeatureFlagFilterPropertyMultiContainsSchema"] | components["schemas"]["FeatureFlagFilterPropertyCohortInSchema"] | components["schemas"]["FeatureFlagFilterPropertyFlagEvaluatesSchema"]; + FeatureFlagFilterPropertySemverSchema: { + /** @description Property key used in this feature flag condition. */ + key: string; + /** + * @description Property filter type. Common values are 'person' and 'cohort'. + * + * * `cohort` - cohort + * * `person` - person + * * `group` - group + */ + type?: components["schemas"]["PropertyGroupTypeEnum"]; + /** @description Resolved cohort name for cohort-type filters. */ + cohort_name?: string | null; + /** @description Group type index when using group-based filters. */ + group_type_index?: number | null; + /** + * @description Semantic version comparison operator. + * + * * `semver_gt` - semver_gt + * * `semver_gte` - semver_gte + * * `semver_lt` - semver_lt + * * `semver_lte` - semver_lte + * * `semver_eq` - semver_eq + * * `semver_neq` - semver_neq + * * `semver_tilde` - semver_tilde + * * `semver_caret` - semver_caret + * * `semver_wildcard` - semver_wildcard + */ + operator: components["schemas"]["FeatureFlagFilterPropertySemverSchemaOperatorEnum"]; + /** @description Semantic version string. */ + value: string; + }; + /** + * @description * `semver_gt` - semver_gt + * * `semver_gte` - semver_gte + * * `semver_lt` - semver_lt + * * `semver_lte` - semver_lte + * * `semver_eq` - semver_eq + * * `semver_neq` - semver_neq + * * `semver_tilde` - semver_tilde + * * `semver_caret` - semver_caret + * * `semver_wildcard` - semver_wildcard + * @enum {string} + */ + FeatureFlagFilterPropertySemverSchemaOperatorEnum: "semver_gt" | "semver_gte" | "semver_lt" | "semver_lte" | "semver_eq" | "semver_neq" | "semver_tilde" | "semver_caret" | "semver_wildcard"; + FeatureFlagFiltersSchema: { + /** @description Release condition groups for the feature flag. */ + groups?: components["schemas"]["FeatureFlagConditionGroupSchema"][]; + /** @description Multivariate configuration for variant-based rollouts. */ + multivariate?: components["schemas"]["FeatureFlagMultivariateSchema"] | null; + /** @description Group type index for group-based feature flags. */ + aggregation_group_type_index?: number | null; + /** @description Optional payload values keyed by variant key. */ + payloads?: { + [key: string]: string; + }; + /** @description Additional super condition groups used by experiments. */ + super_groups?: { + [key: string]: unknown; + }[]; + /** @description Whether this flag has early access feature enrollment enabled. When true, the flag is evaluated against the person property $feature_enrollment/{flag_key}. */ + feature_enrollment?: boolean | null; + }; + /** FeatureFlagGroupType */ + FeatureFlagGroupType: { + /** + * Aggregation Group Type Index + * @default null + */ + aggregation_group_type_index: number | null; + /** + * Description + * @default null + */ + description: string | null; + /** + * Properties + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Rollout Percentage + * @default null + */ + rollout_percentage: number | null; + /** + * Sort Key + * @default null + */ + sort_key: string | null; + /** + * Users Affected + * @default null + */ + users_affected: number | null; + /** + * Variant + * @default null + */ + variant: string | null; + }; + FeatureFlagMultivariateSchema: { + /** @description Variant definitions for multivariate feature flags. */ + variants: components["schemas"]["FeatureFlagMultivariateVariantSchema"][]; + }; + FeatureFlagMultivariateVariantSchema: { + /** @description Unique key for this variant. */ + key: string; + /** @description Human-readable name for this variant. */ + name?: string; + /** + * Format: double + * @description Variant rollout percentage. + */ + rollout_percentage: number; + }; + FeatureFlagStatusResponse: { + /** @description Flag status: active, stale, deleted, or unknown */ + status: string; + /** @description Human-readable explanation of the status */ + reason: string; + }; + FeatureFlagTestEvaluationRequest: { + /** @description User distinct ID to test against (mutually exclusive with person_id) */ + distinct_id?: string; + /** @description Person ID to test against (mutually exclusive with distinct_id) */ + person_id?: string; + /** + * Format: date-time + * @description Optional point-in-time to evaluate the flag against — both flag conditions and person properties are reconstructed as they existed at that timestamp. ISO 8601 with timezone, e.g. ``2026-04-29T15:30:00Z`` or ``2026-04-29T15:30:00+00:00``. Naive timestamps (no timezone) are interpreted as UTC. + */ + timestamp?: string | null; + /** @description Groups for feature flag evaluation (JSON object, defaults to empty dict) */ + groups?: unknown; + }; + FeatureFlagTestEvaluationResponse: { + /** @description Feature flag key */ + flag_key: string; + /** @description The evaluated value of the feature flag (boolean or variant key string) */ + result: unknown; + /** @description The reason for the evaluation result */ + reason: string; + /** @description The index of the condition that matched, if applicable */ + condition_index: number | null; + /** @description Payload associated with the flag result, if any */ + payload: unknown; + /** @description Person properties at the time of evaluation (for historical evaluations) */ + person_properties: { + [key: string]: unknown; + }; + /** @description The distinct_id used for rollout/variant bucketing. Echoes the caller-provided distinct_id when one was sent; null on the person_id path so the endpoint doesn't leak the person's other distinct_ids to a feature_flag:read-only token. */ + evaluation_distinct_id: string | null; + /** @description Detailed analysis of each condition in the feature flag */ + conditions: components["schemas"]["FeatureFlagConditionAnalysis"][]; + }; + /** @description Feature flag state at a given version plus reconstruction metadata. */ + FeatureFlagVersionResponse: { + readonly id: number; + key: string; + name?: string; + readonly filters: { + [key: string]: unknown; + }; + active?: boolean; + deleted?: boolean; + version?: number | null; + rollback_conditions?: unknown; + performed_rollback?: boolean | null; + ensure_experience_continuity?: boolean | null; + has_enriched_analytics?: boolean | null; + is_remote_configuration?: boolean | null; + has_encrypted_payloads?: boolean | null; + /** + * @description Specifies where this feature flag should be evaluated + * + * * `server` - Server + * * `client` - Client + * * `all` - All + */ + evaluation_runtime?: components["schemas"]["EvaluationRuntimeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + /** + * @description Identifier used for bucketing users into rollout and variants + * + * * `distinct_id` - User ID (default) + * * `device_id` - Device ID + */ + bucketing_identifier?: components["schemas"]["BucketingIdentifierEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + /** + * Format: date-time + * @description Last time this feature flag was called (from $feature_flag_called events) + */ + last_called_at?: string | null; + /** Format: date-time */ + created_at?: string; + readonly created_by: number | null; + /** @description False for the current version; true for reconstructed historical versions. */ + readonly is_historical: boolean; + /** Format: date-time */ + readonly version_timestamp: string | null; + /** @description User from the activity log entry that produced this version. */ + readonly modified_by: number | null; + }; + /** FeaturePropertyFilter */ + FeaturePropertyFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + /** + * Type + * @description Event property with "$feature/" prepended + * @default feature + * @constant + */ + type: "feature"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + /** + * @description * `JSONLines` - JSONLines + * * `Parquet` - Parquet + * @enum {string} + */ + FileFormatEnum: "JSONLines" | "Parquet"; + FileSystem: { + /** Format: uuid */ + readonly id: string; + path: string; + readonly depth: number | null; + type?: string; + ref?: string | null; + href?: string | null; + meta?: unknown; + shortcut?: boolean | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly last_viewed_at: string | null; + }; + FileSystemShortcut: { + /** Format: uuid */ + readonly id: string; + path: string; + type?: string; + ref?: string | null; + href?: string | null; + order?: number; + /** Format: date-time */ + readonly created_at: string; + }; + FileSystemShortcutReorder: { + /** @description IDs of the current user's shortcuts in the desired display order. */ + ordered_ids: string[]; + }; + /** + * @description * `all` - all + * * `pass` - pass + * * `fail` - fail + * * `na` - na + * @enum {string} + */ + FilterEnum: "all" | "pass" | "fail" | "na"; + /** + * FilterLogicalOperator + * @enum {string} + */ + FilterLogicalOperator: "AND" | "OR"; + /** Filters */ + Filters: { + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Properties + * @default null + */ + properties: components["schemas"]["SessionPropertyFilter"][] | null; + }; + /** FirstEvent */ + FirstEvent: { + /** Distinct Id */ + distinct_id: string; + /** Properties */ + properties: string; + /** Timestamp */ + timestamp: string; + /** Uuid */ + uuid: string; + }; + /** FlagPropertyFilter */ + FlagPropertyFilter: { + /** + * Key + * @description The key should be the flag ID + */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + /** + * Operator + * @description Only flag_evaluates_to operator is allowed for flag dependencies + * @default flag_evaluates_to + * @constant + */ + operator: "flag_evaluates_to"; + /** + * Type + * @description Feature flag dependency + * @default flag + * @constant + */ + type: "flag"; + /** + * Value + * @description The value can be true, false, or a variant name + */ + value: boolean | string; + }; + FlagValueItem: { + name: unknown; + }; + FlagValueResponse: { + results: components["schemas"]["FlagValueItem"][]; + refreshing: boolean; + }; + /** + * FunnelConversionWindowTimeUnit + * @enum {string} + */ + FunnelConversionWindowTimeUnit: "second" | "minute" | "hour" | "day" | "week" | "month"; + /** FunnelCorrelationActorsQuery */ + FunnelCorrelationActorsQuery: { + /** + * Funnelcorrelationpersonconverted + * @default null + */ + funnelCorrelationPersonConverted: boolean | null; + /** + * Funnelcorrelationpersonentity + * @default null + */ + funnelCorrelationPersonEntity: components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["DataWarehouseNode"] | null; + /** + * Funnelcorrelationpropertyvalues + * @default null + */ + funnelCorrelationPropertyValues: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Includerecordings + * @default null + */ + includeRecordings: boolean | null; + /** + * Kind + * @default FunnelCorrelationActorsQuery + * @constant + */ + kind: "FunnelCorrelationActorsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["ActorsQueryResponse"] | null; + source: components["schemas"]["FunnelCorrelationQuery"]; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** FunnelCorrelationQuery */ + FunnelCorrelationQuery: { + /** + * Funnelcorrelationeventexcludepropertynames + * @default null + */ + funnelCorrelationEventExcludePropertyNames: string[] | null; + /** + * Funnelcorrelationeventnames + * @default null + */ + funnelCorrelationEventNames: string[] | null; + /** + * Funnelcorrelationexcludeeventnames + * @default null + */ + funnelCorrelationExcludeEventNames: string[] | null; + /** + * Funnelcorrelationexcludenames + * @default null + */ + funnelCorrelationExcludeNames: string[] | null; + /** + * Funnelcorrelationnames + * @default null + */ + funnelCorrelationNames: string[] | null; + funnelCorrelationType: components["schemas"]["FunnelCorrelationResultsType"]; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "FunnelCorrelationQuery"; + /** @default null */ + response: components["schemas"]["FunnelCorrelationResponse"] | null; + source: components["schemas"]["FunnelsActorsQuery"]; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** FunnelCorrelationResponse */ + FunnelCorrelationResponse: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + results: components["schemas"]["FunnelCorrelationResult"]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** FunnelCorrelationResult */ + FunnelCorrelationResult: { + /** Events */ + events: components["schemas"]["EventOddsRatioSerialized"][]; + /** Skewed */ + skewed: boolean; + }; + /** + * FunnelCorrelationResultsType + * @enum {string} + */ + FunnelCorrelationResultsType: "events" | "properties" | "event_with_properties"; + /** FunnelExclusionActionsNode */ + FunnelExclusionActionsNode: { + /** + * Custom Name + * @default null + */ + custom_name: string | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** Funnelfromstep */ + funnelFromStep: number; + /** Funneltostep */ + funnelToStep: number; + /** Id */ + id: number; + /** + * Kind + * @default ActionsNode + * @constant + */ + kind: "ActionsNode"; + /** + * Math + * @default null + */ + math: components["schemas"]["BaseMathType"] | components["schemas"]["FunnelMathType"] | components["schemas"]["PropertyMathType"] | components["schemas"]["CountPerActorMathType"] | components["schemas"]["ExperimentMetricMathType"] | components["schemas"]["CalendarHeatmapMathType"] | "unique_group" | "hogql" | null; + /** @default null */ + math_group_type_index: components["schemas"]["MathGroupTypeIndex"] | null; + /** + * Math Hogql + * @default null + */ + math_hogql: string | null; + /** + * Math Multiplier + * @default null + */ + math_multiplier: number | null; + /** + * Math Property + * @default null + */ + math_property: string | null; + /** @default null */ + math_property_revenue_currency: components["schemas"]["RevenueCurrencyPropertyConfig"] | null; + /** + * Math Property Type + * @default null + */ + math_property_type: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Optionalinfunnel + * @default null + */ + optionalInFunnel: boolean | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** FunnelExclusionEventsNode */ + FunnelExclusionEventsNode: { + /** + * Custom Name + * @default null + */ + custom_name: string | null; + /** + * Event + * @description The event or `null` for all events. + * @default null + */ + event: string | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** Funnelfromstep */ + funnelFromStep: number; + /** Funneltostep */ + funnelToStep: number; + /** + * Kind + * @default EventsNode + * @constant + */ + kind: "EventsNode"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * Math + * @default null + */ + math: components["schemas"]["BaseMathType"] | components["schemas"]["FunnelMathType"] | components["schemas"]["PropertyMathType"] | components["schemas"]["CountPerActorMathType"] | components["schemas"]["ExperimentMetricMathType"] | components["schemas"]["CalendarHeatmapMathType"] | "unique_group" | "hogql" | null; + /** @default null */ + math_group_type_index: components["schemas"]["MathGroupTypeIndex"] | null; + /** + * Math Hogql + * @default null + */ + math_hogql: string | null; + /** + * Math Multiplier + * @default null + */ + math_multiplier: number | null; + /** + * Math Property + * @default null + */ + math_property: string | null; + /** @default null */ + math_property_revenue_currency: components["schemas"]["RevenueCurrencyPropertyConfig"] | null; + /** + * Math Property Type + * @default null + */ + math_property_type: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Optionalinfunnel + * @default null + */ + optionalInFunnel: boolean | null; + /** + * Orderby + * @description Columns to order by + * @default null + */ + orderBy: string[] | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** + * FunnelLayout + * @enum {string} + */ + FunnelLayout: "horizontal" | "vertical"; + /** + * FunnelMathType + * @enum {string} + */ + FunnelMathType: "total" | "first_time_for_user" | "first_time_for_user_with_filters"; + /** + * FunnelPathType + * @enum {string} + */ + FunnelPathType: "funnel_path_before_step" | "funnel_path_between_steps" | "funnel_path_after_step"; + /** FunnelPathsFilter */ + FunnelPathsFilter: { + /** @default null */ + funnelPathType: components["schemas"]["FunnelPathType"] | null; + funnelSource: components["schemas"]["FunnelsQuery"]; + /** + * Funnelstep + * @default null + */ + funnelStep: number | null; + }; + /** + * FunnelStepReference + * @enum {string} + */ + FunnelStepReference: "total" | "previous"; + /** + * FunnelVizType + * @enum {string} + */ + FunnelVizType: "steps" | "time_to_convert" | "trends" | "flow"; + /** FunnelsActorsQuery */ + FunnelsActorsQuery: { + /** + * Funnelstep + * @description Index of the step for which we want to get the timestamp for, per person. Positive for converted persons, negative for dropped of persons. + * @default null + */ + funnelStep: number | null; + /** + * Funnelstepbreakdown + * @description The breakdown value for which to get persons for. This is an array for person and event properties, a string for groups and an integer for cohorts. + * @default null + */ + funnelStepBreakdown: number | string | (number | string)[] | null; + /** + * Funneltrendsdropoff + * @default null + */ + funnelTrendsDropOff: boolean | null; + /** + * Funneltrendsentranceperiodstart + * @description Used together with `funnelTrendsDropOff` for funnels time conversion date for the persons modal. + * @default null + */ + funnelTrendsEntrancePeriodStart: string | null; + /** + * Includerecordings + * @default null + */ + includeRecordings: boolean | null; + /** + * Kind + * @default FunnelsActorsQuery + * @constant + */ + kind: "FunnelsActorsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["ActorsQueryResponse"] | null; + source: components["schemas"]["FunnelsQuery"]; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** FunnelsDataWarehouseNode */ + FunnelsDataWarehouseNode: { + /** Aggregation Target Field */ + aggregation_target_field: string; + /** + * Custom Name + * @default null + */ + custom_name: string | null; + /** + * Dw Source Type + * @default null + */ + dw_source_type: string | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** Id */ + id: string; + /** Id Field */ + id_field: string; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "FunnelsDataWarehouseNode"; + /** + * Math + * @default null + */ + math: components["schemas"]["BaseMathType"] | components["schemas"]["FunnelMathType"] | components["schemas"]["PropertyMathType"] | components["schemas"]["CountPerActorMathType"] | components["schemas"]["ExperimentMetricMathType"] | components["schemas"]["CalendarHeatmapMathType"] | "unique_group" | "hogql" | null; + /** @default null */ + math_group_type_index: components["schemas"]["MathGroupTypeIndex"] | null; + /** + * Math Hogql + * @default null + */ + math_hogql: string | null; + /** + * Math Multiplier + * @default null + */ + math_multiplier: number | null; + /** + * Math Property + * @default null + */ + math_property: string | null; + /** @default null */ + math_property_revenue_currency: components["schemas"]["RevenueCurrencyPropertyConfig"] | null; + /** + * Math Property Type + * @default null + */ + math_property_type: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Optionalinfunnel + * @default null + */ + optionalInFunnel: boolean | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** Table Name */ + table_name: string; + /** Timestamp Field */ + timestamp_field: string; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** FunnelsFilter */ + FunnelsFilter: { + /** + * Bincount + * @default null + */ + binCount: number | null; + /** @default first_touch */ + breakdownAttributionType: components["schemas"]["BreakdownAttributionType"] | null; + /** + * Breakdownattributionvalue + * @default null + */ + breakdownAttributionValue: number | null; + /** + * Breakdownsorting + * @description Breakdown table sorting. Format: 'column_key' or '-column_key' (descending) + * @default null + */ + breakdownSorting: string | null; + /** + * Customaggregationtarget + * @description For data warehouse based funnel insights when the aggregation target can't be mapped to persons or groups. + * @default null + */ + customAggregationTarget: boolean | null; + /** + * Exclusions + * @default [] + */ + exclusions: (components["schemas"]["FunnelExclusionEventsNode"] | components["schemas"]["FunnelExclusionActionsNode"])[] | null; + /** + * Funnelaggregatebyhogql + * @default null + */ + funnelAggregateByHogQL: string | null; + /** + * Funnelfromstep + * @default null + */ + funnelFromStep: number | null; + /** @default ordered */ + funnelOrderType: components["schemas"]["StepOrderValue"] | null; + /** @default total */ + funnelStepReference: components["schemas"]["FunnelStepReference"] | null; + /** + * Funneltostep + * @description To select the range of steps for trends & time to convert funnels, 0-indexed + * @default null + */ + funnelToStep: number | null; + /** @default steps */ + funnelVizType: components["schemas"]["FunnelVizType"] | null; + /** + * Funnelwindowinterval + * @default 14 + */ + funnelWindowInterval: number | null; + /** @default day */ + funnelWindowIntervalUnit: components["schemas"]["FunnelConversionWindowTimeUnit"] | null; + /** + * Goallines + * @description Goal Lines + * @default null + */ + goalLines: components["schemas"]["GoalLine"][] | null; + /** + * Hiddenlegendbreakdowns + * @default null + */ + hiddenLegendBreakdowns: string[] | null; + /** @default vertical */ + layout: components["schemas"]["FunnelLayout"] | null; + /** + * Resultcustomizations + * @description Customizations for the appearance of result datasets. + * @default null + */ + resultCustomizations: { + [key: string]: components["schemas"]["ResultCustomizationByValue"]; + } | null; + /** + * Showtrendlines + * @description Display linear regression trend lines on the chart (only for historical trends viz) + * @default null + */ + showTrendLines: boolean | null; + /** + * Showvaluesonseries + * @default false + */ + showValuesOnSeries: boolean | null; + /** + * Useudf + * @default null + */ + useUdf: boolean | null; + }; + /** FunnelsQuery */ + FunnelsQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation + * @default null + */ + aggregation_group_type_index: number | null; + /** + * @description Breakdown of the events and actions + * @default null + */ + breakdownFilter: components["schemas"]["BreakdownFilter"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization + * @default null + */ + dataColorTheme: number | null; + /** + * @description Date range for the query + * @default null + */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Filtertestaccounts + * @description Exclude internal and test users by applying the respective filters + * @default false + */ + filterTestAccounts: boolean | null; + /** + * @description Properties specific to the funnels insight + * @default null + */ + funnelsFilter: components["schemas"]["FunnelsFilter"] | null; + /** + * @description Granularity of the response. Can be one of `hour`, `day`, `week` or `month` + * @default null + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "FunnelsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Properties + * @description Property filters for all series + * @default [] + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | components["schemas"]["PropertyGroupFilter"] | null; + /** @default null */ + response: components["schemas"]["FunnelsQueryResponse"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** + * Series + * @description Events and actions to include + */ + series: (components["schemas"]["GroupNode"] | components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["FunnelsDataWarehouseNode"])[]; + /** + * @description Tags that will be added to the Query log comment + * @default null + */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** FunnelsQueryResponse */ + FunnelsQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + GenerateRequest: { + /** @default */ + title: string; + /** @default */ + goal: string; + steps?: { + [key: string]: unknown; + }[]; + }; + GenerateResponse: { + steps: components["schemas"]["GenerateStepResponse"][]; + }; + GenerateStepResponse: { + step_id: string; + title: string; + description: string; + }; + GenerateSurveyTranslationsRequest: { + /** @description Language code to generate translations for, for example pt-BR. */ + target_language: string; + /** + * @description Source language code for the existing survey copy. + * @default en + */ + source_language: string; + /** + * @description Whether to overwrite existing translations for this language. + * @default false + */ + overwrite: boolean; + /** @description Optional translation-only draft survey payload to translate instead of the last saved survey. */ + survey?: { + [key: string]: unknown; + }; + }; + GenerateSurveyTranslationsResponse: { + /** @description Survey-level translation patch keyed by language. */ + translations: { + [key: string]: components["schemas"]["GeneratedSurveyRootTranslation"]; + }; + /** @description Question-level translation patches keyed by question id and language. */ + questions: components["schemas"]["GeneratedSurveyQuestionTranslationPatch"][]; + /** @description Editor field paths generated by AI and safe to highlight as draft content. */ + generated_field_paths: string[]; + /** @description LLM trace id for debugging and feedback. */ + trace_id: string; + }; + GeneratedSurveyQuestionTranslation: { + /** @description Translated question text. */ + question?: string; + /** @description Translated question description. */ + description?: string; + /** @description Translated submit button text. */ + buttonText?: string; + /** @description Translated choices in the same order as the source choices. */ + choices?: string[]; + /** @description Translated lower rating bound label. */ + lowerBoundLabel?: string; + /** @description Translated upper rating bound label. */ + upperBoundLabel?: string; + /** @description Translated link text or localized URL. */ + link?: string; + }; + GeneratedSurveyQuestionTranslationPatch: { + /** @description Survey question id this patch applies to. */ + id: string; + /** @description Question translation patch keyed by target language. */ + translations: { + [key: string]: components["schemas"]["GeneratedSurveyQuestionTranslation"]; + }; + }; + GeneratedSurveyRootTranslation: { + /** @description Translated survey name. */ + name?: string; + /** @description Translated thank-you header. */ + thankYouMessageHeader?: string; + /** @description Translated thank-you description. */ + thankYouMessageDescription?: string; + /** @description Translated thank-you close button text. */ + thankYouMessageCloseButtonText?: string; + }; + GitHubBranchesResponse: { + /** @description List of branch names */ + branches: string[]; + /** @description The default branch of the repository */ + default_branch?: string | null; + /** @description Whether more branches exist beyond the returned page */ + has_more: boolean; + }; + GitHubRepo: { + id: number; + name: string; + full_name: string; + }; + GitHubReposRefreshResponse: { + /** @description The refreshed repository cache. */ + repositories: components["schemas"]["GitHubRepo"][]; + }; + GitHubReposResponse: { + repositories: components["schemas"]["GitHubRepo"][]; + /** @description Whether more repositories are available beyond this page. */ + has_more: boolean; + }; + GitProviderFileLinkResolveResponse: { + /** @description Whether a matching file URL was found. */ + found: boolean; + /** @description Resolved URL for the matching file. */ + url?: string; + /** @description Error message when input parameters are invalid. */ + error?: string; + }; + Goal: { + /** @description Goal name (action name). */ + name: string; + /** @description Total conversions in the period. */ + conversions: number; + /** @description Period-over-period change in conversions, null when not meaningful. */ + change: components["schemas"]["WoWChange"] | null; + }; + /** GoalLine */ + GoalLine: { + /** + * Bordercolor + * @default null + */ + borderColor: string | null; + /** + * Displayifcrossed + * @default null + */ + displayIfCrossed: boolean | null; + /** + * Displaylabel + * @default null + */ + displayLabel: boolean | null; + /** Label */ + label: string; + /** @default null */ + position: components["schemas"]["Position"] | null; + /** Value */ + value: number; + }; + /** + * GradientScaleMode + * @enum {string} + */ + GradientScaleMode: "absolute" | "relative"; + Group: { + group_type_index: number; + group_key: string; + group_properties?: unknown; + /** Format: date-time */ + readonly created_at: string; + }; + /** GroupNode */ + GroupNode: { + /** + * Custom Name + * @default null + */ + custom_name: string | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Kind + * @default GroupNode + * @constant + */ + kind: "GroupNode"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * Math + * @default null + */ + math: components["schemas"]["BaseMathType"] | components["schemas"]["FunnelMathType"] | components["schemas"]["PropertyMathType"] | components["schemas"]["CountPerActorMathType"] | components["schemas"]["ExperimentMetricMathType"] | components["schemas"]["CalendarHeatmapMathType"] | "unique_group" | "hogql" | null; + /** @default null */ + math_group_type_index: components["schemas"]["MathGroupTypeIndex"] | null; + /** + * Math Hogql + * @default null + */ + math_hogql: string | null; + /** + * Math Multiplier + * @default null + */ + math_multiplier: number | null; + /** + * Math Property + * @default null + */ + math_property: string | null; + /** @default null */ + math_property_revenue_currency: components["schemas"]["RevenueCurrencyPropertyConfig"] | null; + /** + * Math Property Type + * @default null + */ + math_property_type: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Nodes + * @description Entities to combine in this group + */ + nodes: (components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["DataWarehouseNode"])[]; + /** @description Group of entities combined with AND/OR operator */ + operator: components["schemas"]["FilterLogicalOperator"]; + /** + * Optionalinfunnel + * @default null + */ + optionalInFunnel: boolean | null; + /** + * Orderby + * @description Columns to order by + * @default null + */ + orderBy: string[] | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** GroupPropertyFilter */ + GroupPropertyFilter: { + /** + * Group Key Names + * @default null + */ + group_key_names: { + [key: string]: string; + } | null; + /** + * Group Type Index + * @default null + */ + group_type_index: number | null; + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + /** + * Type + * @default group + * @constant + */ + type: "group"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + GroupType: { + readonly group_type: string; + readonly group_type_index: number; + name_singular?: string | null; + name_plural?: string | null; + detail_dashboard?: number | null; + default_columns?: string[] | null; + /** Format: date-time */ + created_at?: string | null; + }; + GroupUsageMetric: { + /** Format: uuid */ + readonly id: string; + /** @description Name of the usage metric. Must be unique per group type within the project. */ + name: string; + /** + * @description How the metric value is formatted in the UI. One of `numeric` or `currency`. + * + * * `numeric` - numeric + * * `currency` - currency + * @default numeric + */ + format: components["schemas"]["GroupUsageMetricFormatEnum"]; + /** + * @description Rolling time window in days used to compute the metric. Defaults to 7. + * @default 7 + */ + interval: number; + /** + * @description Visual representation in the UI. One of `number` or `sparkline`. + * + * * `number` - number + * * `sparkline` - sparkline + * @default number + */ + display: components["schemas"]["GroupUsageMetricDisplayEnum"]; + /** + * @description Filter definition for the metric. Two shapes are accepted, discriminated by an optional `source` key. + * + * **Events** (default, when `source` is missing or `"events"`): HogFunction filter shape — `events: [...]`, optional `actions: [...]`, `properties: [...]`, `filter_test_accounts: bool`. + * + * **Data warehouse** (`source: "data_warehouse"`): `table_name` (synced DW table), `timestamp_field` (timestamp column or HogQL expression), `key_field` (column whose value matches the entity key). Currently DW metrics only render on group profiles — person profiles are not yet supported. + */ + filters: { + [key: string]: unknown; + }; + /** + * @description Aggregation function. `count` counts matching events; `sum` sums the value of `math_property` on matching events. + * + * * `count` - count + * * `sum` - sum + * @default count + */ + math: components["schemas"]["MathEnum"]; + /** @description Required when `math` is `sum`; must be empty when `math` is `count`. For events metrics this is an event property name. For data warehouse metrics this is the column name (or HogQL expression) to sum on the DW table. */ + math_property?: string | null; + }; + /** + * @description * `number` - number + * * `sparkline` - sparkline + * @enum {string} + */ + GroupUsageMetricDisplayEnum: "number" | "sparkline"; + /** + * @description * `numeric` - numeric + * * `currency` - currency + * @enum {string} + */ + GroupUsageMetricFormatEnum: "numeric" | "currency"; + /** GroupsQuery */ + GroupsQuery: { + /** Group Type Index */ + group_type_index: number; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "GroupsQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * Orderby + * @default null + */ + orderBy: string[] | null; + /** + * Properties + * @default null + */ + properties: (components["schemas"]["GroupPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"])[] | null; + /** @default null */ + response: components["schemas"]["GroupsQueryResponse"] | null; + /** + * Search + * @default null + */ + search: string | null; + /** + * Select + * @default null + */ + select: string[] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** GroupsQueryResponse */ + GroupsQueryResponse: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** + * Kind + * @default GroupsQuery + * @constant + */ + kind: "GroupsQuery"; + /** Limit */ + limit: number; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Offset */ + offset: number; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** Types */ + types: string[]; + }; + /** HBOSDetectorConfig */ + HBOSDetectorConfig: { + /** + * N Bins + * @description Number of histogram bins (default: 10) + * @default null + */ + n_bins: number | null; + /** + * @description Preprocessing transforms applied before detection + * @default null + */ + preprocessing: components["schemas"]["PreprocessingConfig"] | null; + /** + * Threshold + * @description Anomaly probability threshold (default: 0.9) + * @default null + */ + threshold: number | null; + /** + * Type + * @default hbos + * @constant + */ + type: "hbos"; + /** + * Window + * @description Rolling window size — how many historical data points to train on (default: based on calculation interval) + * @default null + */ + window: number | null; + }; + /** + * @description * `success` - success + * * `warning` - warning + * * `danger` - danger + * @enum {string} + */ + HealthEnum: "success" | "warning" | "danger"; + HealthIssue: { + /** Format: uuid */ + readonly id: string; + readonly kind: string; + readonly severity: components["schemas"]["HealthIssueSeverityEnum"]; + readonly status: components["schemas"]["HealthIssueStatusEnum"]; + dismissed?: boolean; + readonly payload: unknown; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + /** Format: date-time */ + readonly resolved_at: string | null; + }; + /** + * @description * `critical` - Critical + * * `warning` - Warning + * * `info` - Info + * @enum {string} + */ + HealthIssueSeverityEnum: "critical" | "warning" | "info"; + /** + * @description * `active` - Active + * * `resolved` - Resolved + * @enum {string} + */ + HealthIssueStatusEnum: "active" | "resolved"; + /** HeatmapGradientStop */ + HeatmapGradientStop: { + /** Color */ + color: string; + /** Value */ + value: number; + }; + HeatmapResponseItem: { + count: number; + pointer_y: number; + /** Format: double */ + pointer_relative_x: number; + pointer_target_fixed: boolean; + }; + HeatmapScreenshotResponse: { + /** Format: uuid */ + readonly id: string; + readonly short_id: string; + name?: string | null; + /** Format: uri */ + url: string; + /** + * Format: uri + * @description URL for fetching heatmap data + */ + data_url?: string | null; + target_widths?: unknown; + type?: components["schemas"]["HeatmapScreenshotResponseTypeEnum"]; + readonly status: components["schemas"]["HeatmapScreenshotResponseStatusEnum"]; + readonly has_content: boolean; + readonly snapshots: { + [key: string]: unknown; + }[]; + deleted?: boolean; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly exception: string | null; + }; + /** + * @description * `processing` - Processing + * * `completed` - Completed + * * `failed` - Failed + * @enum {string} + */ + HeatmapScreenshotResponseStatusEnum: "processing" | "completed" | "failed"; + /** + * @description * `screenshot` - Screenshot + * * `iframe` - Iframe + * * `recording` - Recording + * @enum {string} + */ + HeatmapScreenshotResponseTypeEnum: "screenshot" | "iframe" | "recording"; + /** HeatmapSettings */ + HeatmapSettings: { + /** + * Gradient + * @default null + */ + gradient: components["schemas"]["HeatmapGradientStop"][] | null; + /** + * Gradientpreset + * @default null + */ + gradientPreset: string | null; + /** @default null */ + gradientScaleMode: components["schemas"]["GradientScaleMode"] | null; + /** + * Nulllabel + * @default null + */ + nullLabel: string | null; + /** + * Nullvalue + * @default null + */ + nullValue: string | null; + /** + * Sortcolumn + * @default null + */ + sortColumn: string | null; + /** @default null */ + sortOrder: components["schemas"]["HeatmapSortOrder"] | null; + /** + * Valuecolumn + * @default null + */ + valueColumn: string | null; + /** + * Xaxiscolumn + * @default null + */ + xAxisColumn: string | null; + /** + * Xaxislabel + * @default null + */ + xAxisLabel: string | null; + /** + * Yaxiscolumn + * @default null + */ + yAxisColumn: string | null; + /** + * Yaxislabel + * @default null + */ + yAxisLabel: string | null; + }; + /** + * HeatmapSortOrder + * @enum {string} + */ + HeatmapSortOrder: "asc" | "desc"; + HeatmapsResponse: { + results: components["schemas"]["HeatmapResponseItem"][]; + }; + /** + * HedgehogActorAccessoryOption + * @enum {string} + */ + HedgehogActorAccessoryOption: "beret" | "cap" | "chef" | "cowboy" | "eyepatch" | "flag" | "glasses" | "graduation" | "parrot" | "party" | "pineapple" | "sunglasses" | "tophat" | "xmas-hat" | "xmas-antlers" | "xmas-scarf"; + /** + * HedgehogActorColorOption + * @enum {string} + */ + HedgehogActorColorOption: "green" | "red" | "blue" | "purple" | "dark" | "light" | "greyscale" | "sepia" | "invert" | "rainbow"; + /** + * HedgehogActorSkinOption + * @enum {string} + */ + HedgehogActorSkinOption: "default" | "spiderhog" | "robohog" | "hogzilla" | "ghost"; + HogFlow: { + /** Format: uuid */ + readonly id: string; + name?: string | null; + description?: string; + readonly version: number; + status?: components["schemas"]["HogFlowStatusEnum"]; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly updated_at: string; + trigger?: unknown; + trigger_masking?: components["schemas"]["HogFlowMasking"] | null; + conversion?: unknown; + exit_condition?: components["schemas"]["ExitConditionEnum"]; + edges?: unknown; + actions: components["schemas"]["HogFlowAction"][]; + readonly abort_action: string | null; + variables?: { + [key: string]: string; + }[]; + readonly billable_action_types: unknown; + }; + HogFlowAction: { + id: string; + name: string; + /** @default */ + description: string; + on_error?: components["schemas"]["OnErrorEnum"] | components["schemas"]["NullEnum"]; + created_at?: number; + updated_at?: number; + filters?: components["schemas"]["HogFunctionFilters"] | null; + type: string; + config: unknown; + output_variable?: unknown; + }; + HogFlowMasking: { + ttl?: number | null; + threshold?: number | null; + hash: string; + bytecode?: unknown; + }; + HogFlowMinimal: { + /** Format: uuid */ + readonly id: string; + readonly name: string | null; + readonly description: string; + readonly version: number; + readonly status: components["schemas"]["HogFlowStatusEnum"]; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly updated_at: string; + readonly trigger: unknown; + readonly trigger_masking: unknown; + readonly conversion: unknown; + readonly exit_condition: components["schemas"]["ExitConditionEnum"]; + readonly edges: unknown; + readonly actions: unknown; + readonly abort_action: string | null; + readonly variables: unknown; + readonly billable_action_types: unknown; + }; + HogFlowSchedule: { + /** Format: uuid */ + readonly id: string; + rrule: string; + /** Format: date-time */ + starts_at: string; + timezone?: string; + variables?: unknown; + readonly status: components["schemas"]["HogFlowScheduleStatusEnum"]; + /** Format: date-time */ + readonly next_run_at: string | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + /** + * @description * `active` - Active + * * `paused` - Paused + * * `completed` - Completed + * @enum {string} + */ + HogFlowScheduleStatusEnum: "active" | "paused" | "completed"; + /** + * @description * `draft` - Draft + * * `active` - Active + * * `archived` - Archived + * @enum {string} + */ + HogFlowStatusEnum: "draft" | "active" | "archived"; + HogFunction: { + /** Format: uuid */ + readonly id: string; + /** + * @description Function type: destination, site_destination, internal_destination, source_webhook, warehouse_source_webhook, site_app, or transformation. + * + * * `destination` - Destination + * * `site_destination` - Site Destination + * * `internal_destination` - Internal Destination + * * `source_webhook` - Source Webhook + * * `warehouse_source_webhook` - Warehouse Source Webhook + * * `site_app` - Site App + * * `transformation` - Transformation + */ + type?: components["schemas"]["HogFunctionTypeEnum"] | components["schemas"]["NullEnum"]; + /** @description Display name for the function. */ + name?: string | null; + /** @description Human-readable description of what this function does. */ + description?: string; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly updated_at: string; + /** @description Whether the function is active and processing events. */ + enabled?: boolean; + /** @description Soft-delete flag. Set to true to archive the function. */ + deleted?: boolean; + /** @description Source code. Hog language for most types; TypeScript for site_destination and site_app. */ + hog?: string; + readonly bytecode: unknown; + readonly transpiled: string | null; + /** @description Schema defining the configurable input parameters for this function. */ + inputs_schema?: components["schemas"]["InputsSchemaItem"][]; + /** @description Values for each input defined in inputs_schema. */ + inputs?: { + [key: string]: components["schemas"]["InputsItem"]; + }; + /** @description Event filters that control which events trigger this function. */ + filters?: components["schemas"]["HogFunctionFilters"]; + /** @description PII masking configuration with TTL, threshold, and hash expression. */ + masking?: components["schemas"]["HogFunctionMasking"] | null; + /** @description Event-to-destination field mappings. Only for destination and site_destination types. */ + mappings?: components["schemas"]["Mappings"][] | null; + /** @description URL for the function's icon displayed in the UI. */ + icon_url?: string | null; + readonly template: components["schemas"]["HogFunctionTemplate"]; + /** @description ID of the template to create this function from. */ + template_id?: string | null; + readonly status: components["schemas"]["HogFunctionStatus"] | null; + /** @description Execution priority for transformations. Lower values run first. */ + execution_order?: number | null; + /** create in folder */ + _create_in_folder?: string; + /** Format: uuid */ + readonly batch_export_id: string | null; + }; + HogFunctionFilters: { + /** @default events */ + source: components["schemas"]["HogFunctionFiltersSourceEnum"]; + actions?: { + [key: string]: unknown; + }[]; + events?: { + [key: string]: unknown; + }[]; + data_warehouse?: { + [key: string]: unknown; + }[]; + properties?: { + [key: string]: unknown; + }[]; + bytecode?: unknown; + transpiled?: unknown; + filter_test_accounts?: boolean; + bytecode_error?: string; + }; + /** + * @description * `events` - events + * * `person-updates` - person-updates + * * `data-warehouse-table` - data-warehouse-table + * @enum {string} + */ + HogFunctionFiltersSourceEnum: "events" | "person-updates" | "data-warehouse-table"; + HogFunctionInvocation: { + /** @description Full function configuration to test. */ + configuration: components["schemas"]["HogFunction"]; + /** @description Mock global variables available during test invocation. */ + globals?: { + [key: string]: unknown; + }; + /** @description Mock ClickHouse event data to test the function with. */ + clickhouse_event?: { + [key: string]: unknown; + }; + /** + * @description When true (default), async functions like fetch() are simulated. + * @default true + */ + mock_async_functions: boolean; + /** @description Invocation result status. */ + readonly status: string; + /** @description Execution logs from the test invocation. */ + readonly logs: unknown[]; + /** @description Optional invocation ID for correlation. */ + invocation_id?: string | null; + }; + HogFunctionMappingTemplate: { + /** @description Name of this mapping template. */ + name: string; + /** @description Whether this mapping is enabled by default. */ + include_by_default?: boolean | null; + /** @description Whether this mapping should match all events by default, hiding the event filter UI. */ + use_all_events_by_default?: boolean | null; + /** @description Event filters specific to this mapping. */ + filters?: unknown; + /** @description Input values specific to this mapping. */ + inputs?: unknown; + /** @description Additional input schema fields specific to this mapping. */ + inputs_schema?: unknown; + }; + HogFunctionMasking: { + /** @description Time-to-live in seconds for the masking cache (60–86400). */ + ttl: number; + /** @description Optional threshold count before masking applies. */ + threshold?: number | null; + /** @description Hog expression used to compute the masking hash. */ + hash: string; + /** @description Compiled bytecode for the hash expression. Auto-generated. */ + bytecode?: unknown; + }; + HogFunctionMinimal: { + /** Format: uuid */ + readonly id: string; + readonly type: string | null; + readonly name: string | null; + readonly description: string; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly updated_at: string; + readonly enabled: boolean; + readonly hog: string; + readonly filters: unknown; + readonly icon_url: string | null; + readonly template: components["schemas"]["HogFunctionTemplate"]; + readonly status: components["schemas"]["HogFunctionStatus"] | null; + readonly execution_order: number | null; + }; + HogFunctionStatus: { + state: components["schemas"]["HogFunctionStatusStateEnum"]; + tokens: number; + }; + /** + * @description * `0` - 0 + * * `1` - 1 + * * `2` - 2 + * * `3` - 3 + * * `11` - 11 + * * `12` - 12 + * @enum {integer} + */ + HogFunctionStatusStateEnum: 0 | 1 | 2 | 3 | 11 | 12; + HogFunctionTemplate: { + /** @description Unique template identifier (e.g. 'template-slack'). */ + id: string; + /** @description Display name of the template. */ + name: string; + /** @description What this template does. */ + description?: string | null; + /** @description Source code of the template. */ + code: string; + /** @description Programming language: 'hog' or 'javascript'. */ + code_language?: string; + /** @description Schema defining configurable inputs for functions created from this template. */ + inputs_schema: unknown; + /** @description Function type this template creates. */ + type: string; + /** @description Lifecycle status: alpha, beta, stable, deprecated, or hidden. */ + status?: string; + /** @description Category tags for organizing templates. */ + category?: unknown; + /** @description Whether available on free plans. */ + free?: boolean; + /** @description URL for the template's icon. */ + icon_url?: string | null; + /** @description Default event filters. */ + filters?: unknown; + /** @description Default PII masking configuration. */ + masking?: unknown; + /** @description Pre-defined mapping configurations for destination templates. */ + mapping_templates?: components["schemas"]["HogFunctionMappingTemplate"][] | null; + }; + /** + * @description * `hog` - hog + * * `liquid` - liquid + * @enum {string} + */ + HogFunctionTemplatingEnum: "hog" | "liquid"; + /** + * @description * `destination` - Destination + * * `site_destination` - Site Destination + * * `internal_destination` - Internal Destination + * * `source_webhook` - Source Webhook + * * `warehouse_source_webhook` - Warehouse Source Webhook + * * `site_app` - Site App + * * `transformation` - Transformation + * @enum {string} + */ + HogFunctionTypeEnum: "destination" | "site_destination" | "internal_destination" | "source_webhook" | "warehouse_source_webhook" | "site_app" | "transformation"; + /** + * HogLanguage + * @enum {string} + */ + HogLanguage: "hog" | "hogJson" | "hogQL" | "hogQLExpr" | "hogTemplate" | "liquid"; + /** HogQLAutocomplete */ + HogQLAutocomplete: { + /** + * Connectionid + * @description Optional direct external data source id for running against a specific source + * @default null + */ + connectionId: string | null; + /** + * Endposition + * @description End position of the editor word + */ + endPosition: number; + /** + * @description Table to validate the expression against + * @default null + */ + filters: components["schemas"]["HogQLFilters"] | null; + /** + * Globals + * @description Global values in scope + * @default null + */ + globals: { + [key: string]: unknown; + } | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "HogQLAutocomplete"; + /** @description Language to validate */ + language: components["schemas"]["HogLanguage"]; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Query + * @description Query to validate + */ + query: string; + /** @default null */ + response: components["schemas"]["HogQLAutocompleteResponse"] | null; + /** + * Sourcequery + * @description Query in whose context to validate. + * @default null + */ + sourceQuery: components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["PersonsNode"] | components["schemas"]["EventsQuery"] | components["schemas"]["SessionsQuery"] | components["schemas"]["ActorsQuery"] | components["schemas"]["GroupsQuery"] | components["schemas"]["InsightActorsQuery"] | components["schemas"]["InsightActorsQueryOptions"] | components["schemas"]["SessionsTimelineQuery"] | components["schemas"]["HogQuery"] | components["schemas"]["HogQLQuery"] | components["schemas"]["HogQLMetadata"] | components["schemas"]["HogQLAutocomplete"] | components["schemas"]["RevenueAnalyticsGrossRevenueQuery"] | components["schemas"]["RevenueAnalyticsMetricsQuery"] | components["schemas"]["RevenueAnalyticsMRRQuery"] | components["schemas"]["RevenueAnalyticsOverviewQuery"] | components["schemas"]["RevenueAnalyticsTopCustomersQuery"] | components["schemas"]["MarketingAnalyticsTableQuery"] | components["schemas"]["MarketingAnalyticsAggregatedQuery"] | components["schemas"]["NonIntegratedConversionsTableQuery"] | components["schemas"]["WebOverviewQuery"] | components["schemas"]["WebStatsTableQuery"] | components["schemas"]["WebExternalClicksTableQuery"] | components["schemas"]["WebGoalsQuery"] | components["schemas"]["WebVitalsQuery"] | components["schemas"]["WebVitalsPathBreakdownQuery"] | components["schemas"]["WebPageURLSearchQuery"] | components["schemas"]["WebTrendsQuery"] | components["schemas"]["WebAnalyticsExternalSummaryQuery"] | components["schemas"]["WebNotableChangesQuery"] | components["schemas"]["SessionAttributionExplorerQuery"] | components["schemas"]["RevenueExampleEventsQuery"] | components["schemas"]["RevenueExampleDataWarehouseTablesQuery"] | components["schemas"]["ErrorTrackingQuery"] | components["schemas"]["ErrorTrackingSimilarIssuesQuery"] | components["schemas"]["ErrorTrackingBreakdownsQuery"] | components["schemas"]["ErrorTrackingIssueCorrelationQuery"] | components["schemas"]["LogsQuery"] | components["schemas"]["LogAttributesQuery"] | components["schemas"]["LogValuesQuery"] | components["schemas"]["TraceSpansQuery"] | components["schemas"]["TraceSpansAggregationQuery"] | components["schemas"]["TraceSpansTreeQuery"] | components["schemas"]["ExperimentFunnelsQuery"] | components["schemas"]["ExperimentTrendsQuery"] | components["schemas"]["CalendarHeatmapQuery"] | components["schemas"]["RecordingsQuery"] | components["schemas"]["TracesQuery"] | components["schemas"]["TraceQuery"] | components["schemas"]["TraceNeighborsQuery"] | components["schemas"]["VectorSearchQuery"] | components["schemas"]["UsageMetricsQuery"] | components["schemas"]["EndpointsUsageOverviewQuery"] | components["schemas"]["EndpointsUsageTableQuery"] | components["schemas"]["EndpointsUsageTrendsQuery"] | null; + /** + * Startposition + * @description Start position of the editor word + */ + startPosition: number; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** HogQLAutocompleteResponse */ + HogQLAutocompleteResponse: { + /** + * Incomplete List + * @description Whether or not the suggestions returned are complete + */ + incomplete_list: boolean; + /** Suggestions */ + suggestions: components["schemas"]["AutocompleteCompletionItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** HogQLFilter */ + HogQLFilter: { + /** + * Type + * @constant + */ + type: "hogql"; + /** Key */ + key: string; + /** + * Value + * @default null + */ + value: unknown; + }; + /** HogQLFilters */ + HogQLFilters: { + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Properties + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + }; + /** HogQLMetadata */ + HogQLMetadata: { + /** + * Connectionid + * @description Optional direct external data source id for running against a specific source + * @default null + */ + connectionId: string | null; + /** + * Debug + * @description Enable more verbose output, usually run from the /debug page + * @default null + */ + debug: boolean | null; + /** + * @description Extra filters applied to query via {filters} + * @default null + */ + filters: components["schemas"]["HogQLFilters"] | null; + /** + * Globals + * @description Extra globals for the query + * @default null + */ + globals: { + [key: string]: unknown; + } | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "HogQLMetadata"; + /** @description Language to validate */ + language: components["schemas"]["HogLanguage"]; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Query + * @description Query to validate + */ + query: string; + /** @default null */ + response: components["schemas"]["HogQLMetadataResponse"] | null; + /** + * Sourcequery + * @description Query within which "expr" and "template" are validated. Defaults to "select * from events" + * @default null + */ + sourceQuery: components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["PersonsNode"] | components["schemas"]["EventsQuery"] | components["schemas"]["SessionsQuery"] | components["schemas"]["ActorsQuery"] | components["schemas"]["GroupsQuery"] | components["schemas"]["InsightActorsQuery"] | components["schemas"]["InsightActorsQueryOptions"] | components["schemas"]["SessionsTimelineQuery"] | components["schemas"]["HogQuery"] | components["schemas"]["HogQLQuery"] | components["schemas"]["HogQLMetadata"] | components["schemas"]["HogQLAutocomplete"] | components["schemas"]["RevenueAnalyticsGrossRevenueQuery"] | components["schemas"]["RevenueAnalyticsMetricsQuery"] | components["schemas"]["RevenueAnalyticsMRRQuery"] | components["schemas"]["RevenueAnalyticsOverviewQuery"] | components["schemas"]["RevenueAnalyticsTopCustomersQuery"] | components["schemas"]["MarketingAnalyticsTableQuery"] | components["schemas"]["MarketingAnalyticsAggregatedQuery"] | components["schemas"]["NonIntegratedConversionsTableQuery"] | components["schemas"]["WebOverviewQuery"] | components["schemas"]["WebStatsTableQuery"] | components["schemas"]["WebExternalClicksTableQuery"] | components["schemas"]["WebGoalsQuery"] | components["schemas"]["WebVitalsQuery"] | components["schemas"]["WebVitalsPathBreakdownQuery"] | components["schemas"]["WebPageURLSearchQuery"] | components["schemas"]["WebTrendsQuery"] | components["schemas"]["WebAnalyticsExternalSummaryQuery"] | components["schemas"]["WebNotableChangesQuery"] | components["schemas"]["SessionAttributionExplorerQuery"] | components["schemas"]["RevenueExampleEventsQuery"] | components["schemas"]["RevenueExampleDataWarehouseTablesQuery"] | components["schemas"]["ErrorTrackingQuery"] | components["schemas"]["ErrorTrackingSimilarIssuesQuery"] | components["schemas"]["ErrorTrackingBreakdownsQuery"] | components["schemas"]["ErrorTrackingIssueCorrelationQuery"] | components["schemas"]["LogsQuery"] | components["schemas"]["LogAttributesQuery"] | components["schemas"]["LogValuesQuery"] | components["schemas"]["TraceSpansQuery"] | components["schemas"]["TraceSpansAggregationQuery"] | components["schemas"]["TraceSpansTreeQuery"] | components["schemas"]["ExperimentFunnelsQuery"] | components["schemas"]["ExperimentTrendsQuery"] | components["schemas"]["CalendarHeatmapQuery"] | components["schemas"]["RecordingsQuery"] | components["schemas"]["TracesQuery"] | components["schemas"]["TraceQuery"] | components["schemas"]["TraceNeighborsQuery"] | components["schemas"]["VectorSearchQuery"] | components["schemas"]["UsageMetricsQuery"] | components["schemas"]["EndpointsUsageOverviewQuery"] | components["schemas"]["EndpointsUsageTableQuery"] | components["schemas"]["EndpointsUsageTrendsQuery"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Variables + * @description Variables to be subsituted into the query + * @default null + */ + variables: { + [key: string]: components["schemas"]["HogQLVariable"]; + } | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** HogQLMetadataResponse */ + HogQLMetadataResponse: { + /** + * Ch Table Names + * @default null + */ + ch_table_names: string[] | null; + /** Errors */ + errors: components["schemas"]["HogQLNotice"][]; + /** @default null */ + isUsingIndices: components["schemas"]["QueryIndexUsage"] | null; + /** + * Isvalid + * @default null + */ + isValid: boolean | null; + /** Notices */ + notices: components["schemas"]["HogQLNotice"][]; + /** + * Query + * @default null + */ + query: string | null; + /** + * Table Names + * @default null + */ + table_names: string[] | null; + /** Warnings */ + warnings: components["schemas"]["HogQLNotice"][]; + }; + /** HogQLNotice */ + HogQLNotice: { + /** + * End + * @default null + */ + end: number | null; + /** + * Fix + * @default null + */ + fix: string | null; + /** Message */ + message: string; + /** + * Start + * @default null + */ + start: number | null; + }; + /** HogQLPropertyFilter */ + HogQLPropertyFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + /** + * Type + * @default hogql + * @constant + */ + type: "hogql"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + /** HogQLQuery */ + HogQLQuery: { + /** + * Connectionid + * @description Optional direct external data source id for running against a specific source + * @default null + */ + connectionId: string | null; + /** + * Explain + * @default null + */ + explain: boolean | null; + /** @default null */ + filters: components["schemas"]["HogQLFilters"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "HogQLQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Name + * @description Client provided name of the query + * @default null + */ + name: string | null; + /** Query */ + query: string; + /** @default null */ + response: components["schemas"]["HogQLQueryResponse"] | null; + /** + * Sendrawquery + * @description Run the selected connection query directly without translating it through HogQL first + * @default null + */ + sendRawQuery: boolean | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Values + * @description Constant values that can be referenced with the {placeholder} syntax in the query + * @default null + */ + values: { + [key: string]: unknown; + } | null; + /** + * Variables + * @description Variables to be substituted into the query + * @default null + */ + variables: { + [key: string]: components["schemas"]["HogQLVariable"]; + } | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** HogQLQueryModifiers */ + HogQLQueryModifiers: { + /** + * Bounceratedurationseconds + * @default null + */ + bounceRateDurationSeconds: number | null; + /** @default null */ + bounceRatePageViewMode: components["schemas"]["BounceRatePageViewMode"] | null; + /** + * Converttoprojecttimezone + * @default null + */ + convertToProjectTimezone: boolean | null; + /** + * Customchanneltyperules + * @default null + */ + customChannelTypeRules: components["schemas"]["CustomChannelRule"][] | null; + /** + * Datawarehouseeventsmodifiers + * @default null + */ + dataWarehouseEventsModifiers: components["schemas"]["DataWarehouseEventsModifier"][] | null; + /** + * Debug + * @default null + */ + debug: boolean | null; + /** + * Forceclickhousedataskippingindexes + * @description If these are provided, the query will fail if these skip indexes are not used + * @default null + */ + forceClickhouseDataSkippingIndexes: string[] | null; + /** + * Formatcsvallowdoublequotes + * @default null + */ + formatCsvAllowDoubleQuotes: boolean | null; + /** @default null */ + inCohortVia: components["schemas"]["InCohortVia"] | null; + /** @default null */ + inlineCohortCalculation: components["schemas"]["InlineCohortCalculation"] | null; + /** @default null */ + materializationMode: components["schemas"]["MaterializationMode"] | null; + /** @default null */ + materializedColumnsOptimizationMode: components["schemas"]["MaterializedColumnsOptimizationMode"] | null; + /** + * Optimizejoinedfilters + * @default null + */ + optimizeJoinedFilters: boolean | null; + /** + * Optimizeprojections + * @default null + */ + optimizeProjections: boolean | null; + /** @default null */ + personsArgMaxVersion: components["schemas"]["PersonsArgMaxVersion"] | null; + /** @default null */ + personsJoinMode: components["schemas"]["PersonsJoinMode"] | null; + /** @default null */ + personsOnEventsMode: components["schemas"]["PersonsOnEventsMode"] | null; + /** @default null */ + propertyGroupsMode: components["schemas"]["PropertyGroupsMode"] | null; + /** + * S3Tableuseinvalidcolumns + * @default null + */ + s3TableUseInvalidColumns: boolean | null; + /** + * Sessionidpushdown + * @description Push a `session_id_v7 IN (SELECT … FROM events WHERE …)` predicate into the raw_sessions subquery to limit aggregation to sessions that participate in the outer events filter. + * @default null + */ + sessionIdPushdown: boolean | null; + /** + * Sessionpropertypreaggregation + * @description Pre-filter raw_sessions aggregation by `session_id_v7 IN (cheap pre-aggregation that only materializes the columns referenced by the outer-WHERE session predicate)`. Useful when the breakdown/SELECT pulls in many session columns (e.g. `$channel_type`) but the filter only references one (e.g. `$entry_current_url`). + * @default null + */ + sessionPropertyPreAggregation: boolean | null; + /** @default null */ + sessionTableVersion: components["schemas"]["SessionTableVersion"] | null; + /** @default null */ + sessionsV2JoinMode: components["schemas"]["SessionsV2JoinMode"] | null; + /** + * Timings + * @default null + */ + timings: boolean | null; + /** + * Usematerializedviews + * @default null + */ + useMaterializedViews: boolean | null; + /** + * Usepreaggregatedintermediateresults + * @default null + */ + usePreaggregatedIntermediateResults: boolean | null; + /** + * Usepreaggregatedtabletransforms + * @description Try to automatically convert HogQL queries to use preaggregated tables at the AST level * + * @default null + */ + usePreaggregatedTableTransforms: boolean | null; + /** + * Usewebanalyticspreaggregatedtables + * @default null + */ + useWebAnalyticsPreAggregatedTables: boolean | null; + }; + /** HogQLQueryResponse */ + HogQLQueryResponse: { + /** + * Clickhouse + * @description Executed ClickHouse query + * @default null + */ + clickhouse: string | null; + /** + * Columns + * @description Returned columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Explain + * @description Query explanation output + * @default null + */ + explain: string[] | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Query metadata output + * @default null + */ + metadata: components["schemas"]["HogQLMetadataResponse"] | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * Query + * @description Input query string + * @default null + */ + query: string | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @description Types of returned columns + * @default null + */ + types: unknown[] | null; + }; + /** HogQLVariable */ + HogQLVariable: { + /** Code Name */ + code_name: string; + /** + * Isnull + * @default null + */ + isNull: boolean | null; + /** + * Value + * @default null + */ + value: unknown; + /** Variableid */ + variableId: string; + }; + /** HogQuery */ + HogQuery: { + /** + * Code + * @default null + */ + code: string | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "HogQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["HogQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** HogQueryResponse */ + HogQueryResponse: { + /** + * Bytecode + * @default null + */ + bytecode: unknown[] | null; + /** + * Coloredbytecode + * @default null + */ + coloredBytecode: unknown[] | null; + /** Results */ + results: unknown; + /** + * Stdout + * @default null + */ + stdout: string | null; + }; + HogTaggerConfig: { + /** @description Hog source code to classify a generation into tags. */ + source: string; + /** @description Optional tag whitelist. Leave empty to allow any tag returned by the Hog code. */ + tags?: components["schemas"]["TagDefinition"][]; + }; + /** + * HrefMatching + * @enum {unknown} + */ + HrefMatching: "contains" | "exact" | "regex" | null; + /** IQRDetectorConfig */ + IQRDetectorConfig: { + /** + * Multiplier + * @description IQR multiplier for fence calculation (default: 1.5, use 3.0 for far outliers) + * @default null + */ + multiplier: number | null; + /** + * @description Preprocessing transforms applied before detection + * @default null + */ + preprocessing: components["schemas"]["PreprocessingConfig"] | null; + /** + * Type + * @default iqr + * @constant + */ + type: "iqr"; + /** + * Window + * @description Rolling window size for calculating quartiles (default: 30) + * @default null + */ + window: number | null; + }; + /** + * InCohortVia + * @enum {string} + */ + InCohortVia: "auto" | "leftjoin" | "subquery" | "leftjoin_conjoined"; + /** + * @description * `integer` - integer + * * `numeric` - numeric + * * `datetime` - datetime + * * `date` - date + * * `timestamp` - timestamp + * * `objectid` - objectid + * @enum {string} + */ + IncrementalFieldTypeEnum: "integer" | "numeric" | "datetime" | "date" | "timestamp" | "objectid"; + /** + * InlineCohortCalculation + * @enum {string} + */ + InlineCohortCalculation: "off" | "auto" | "always"; + InputsItem: { + value?: unknown; + templating?: components["schemas"]["HogFunctionTemplatingEnum"]; + readonly bytecode: unknown[]; + readonly order: number; + readonly transpiled: unknown; + }; + InputsSchemaItem: { + type: components["schemas"]["InputsSchemaItemTypeEnum"]; + key: string; + label?: string; + choices?: { + [key: string]: unknown; + }[]; + /** @default false */ + required: boolean; + default?: unknown; + /** @default false */ + secret: boolean; + /** @default false */ + hidden: boolean; + description?: string; + integration?: string; + integration_key?: string; + requires_field?: string; + integration_field?: string; + requiredScopes?: string; + templating?: boolean | ("hog" | "liquid"); + }; + /** + * @description * `string` - string + * * `number` - number + * * `boolean` - boolean + * * `dictionary` - dictionary + * * `choice` - choice + * * `json` - json + * * `integration` - integration + * * `integration_field` - integration_field + * * `email` - email + * * `native_email` - native_email + * * `posthog_assignee` - posthog_assignee + * * `posthog_ticket_tags` - posthog_ticket_tags + * * `posthog_business_hours` - posthog_business_hours + * @enum {string} + */ + InputsSchemaItemTypeEnum: "string" | "number" | "boolean" | "dictionary" | "choice" | "json" | "integration" | "integration_field" | "email" | "native_email" | "posthog_assignee" | "posthog_ticket_tags" | "posthog_business_hours"; + /** @description Simplified serializer to speed response times when loading large amounts of objects. */ + Insight: { + readonly id: number; + readonly short_id: string; + name?: string | null; + derived_name?: string | null; + query?: components["schemas"]["_InsightQuerySchema"] | null; + order?: number | null; + deleted?: boolean; + /** + * @description DEPRECATED. Will be removed in a future release. Use dashboard_tiles instead. + * A dashboard ID for each of the dashboards that this insight is displayed on. + */ + dashboards?: number[]; + /** @description A dashboard tile ID and dashboard_id for each of the dashboards that this insight is displayed on. */ + readonly dashboard_tiles: components["schemas"]["DashboardTileBasic"][]; + /** + * Format: date-time + * @description The datetime this insight's results were generated. + * If added to one or more dashboards the insight can be refreshed separately on each. + * Returns the appropriate last_refresh datetime for the context the insight is viewed in + * (see from_dashboard query parameter). + */ + readonly last_refresh: string | null; + /** + * Format: date-time + * @description The target age of the cached results for this insight. + */ + readonly cache_target_age: string | null; + /** + * Format: date-time + * @description The earliest possible datetime at which we'll allow the cached results for this insight to be refreshed + * by querying the database. + */ + readonly next_allowed_client_refresh: string | null; + readonly result: unknown; + readonly hasMore: boolean | null; + readonly columns: string[] | null; + /** Format: date-time */ + readonly created_at: string | null; + readonly created_by: components["schemas"]["UserBasic"]; + description?: string | null; + /** Format: date-time */ + readonly updated_at: string; + tags?: unknown[]; + favorited?: boolean; + /** Format: date-time */ + readonly last_modified_at: string; + readonly last_modified_by: components["schemas"]["UserBasic"]; + readonly is_sample: boolean; + readonly effective_restriction_level: components["schemas"]["EffectivePrivilegeLevelEnum"]; + readonly effective_privilege_level: components["schemas"]["EffectivePrivilegeLevelEnum"]; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + /** @description The timezone this chart is displayed in. */ + readonly timezone: string | null; + readonly is_cached: boolean; + readonly query_status: unknown; + readonly hogql: string | null; + readonly types: unknown[] | null; + readonly resolved_date_range: { + /** Format: date-time */ + date_from?: string; + /** Format: date-time */ + date_to?: string; + } | null; + /** create in folder */ + _create_in_folder?: string; + readonly alerts: unknown[]; + /** Format: date-time */ + readonly last_viewed_at: string | null; + }; + /** InsightActorsQuery */ + InsightActorsQuery: { + /** + * Breakdown + * @default null + */ + breakdown: string | string[] | number | null; + /** @default null */ + compare: components["schemas"]["Compare"] | null; + /** + * Day + * @default null + */ + day: string | number | null; + /** + * Includerecordings + * @default null + */ + includeRecordings: boolean | null; + /** + * Interval + * @description An interval selected out of available intervals in source query. + * @default null + */ + interval: number | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "InsightActorsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["ActorsQueryResponse"] | null; + /** + * Series + * @default null + */ + series: number | null; + /** Source */ + source: components["schemas"]["TrendsQuery"] | components["schemas"]["FunnelsQuery"] | components["schemas"]["RetentionQuery"] | components["schemas"]["PathsQuery"] | components["schemas"]["StickinessQuery"] | components["schemas"]["LifecycleQuery"] | components["schemas"]["WebStatsTableQuery"] | components["schemas"]["WebOverviewQuery"]; + /** + * Status + * @default null + */ + status: string | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** InsightActorsQueryOptions */ + InsightActorsQueryOptions: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "InsightActorsQueryOptions"; + /** @default null */ + response: components["schemas"]["InsightActorsQueryOptionsResponse"] | null; + /** Source */ + source: components["schemas"]["InsightActorsQuery"] | components["schemas"]["FunnelsActorsQuery"] | components["schemas"]["FunnelCorrelationActorsQuery"] | components["schemas"]["StickinessActorsQuery"] | components["schemas"]["ExperimentActorsQuery"]; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** InsightActorsQueryOptionsResponse */ + InsightActorsQueryOptionsResponse: { + /** + * Breakdown + * @default null + */ + breakdown: components["schemas"]["BreakdownItem"][] | null; + /** + * Breakdowns + * @default null + */ + breakdowns: components["schemas"]["MultipleBreakdownOptions"][] | null; + /** + * Compare + * @default null + */ + compare: components["schemas"]["CompareItem"][] | null; + /** + * Day + * @default null + */ + day: components["schemas"]["DayItem"][] | null; + /** + * Interval + * @default null + */ + interval: components["schemas"]["IntervalItem"][] | null; + /** + * Series + * @default null + */ + series: components["schemas"]["Series"][] | null; + /** + * Status + * @default null + */ + status: components["schemas"]["StatusItem"][] | null; + }; + /** @description InsightSerializer restricted to identifiers + result only. */ + InsightResult: { + readonly id: number; + readonly short_id: string; + readonly name: string | null; + readonly derived_name: string | null; + readonly result: unknown; + }; + /** InsightThreshold */ + InsightThreshold: { + /** @default null */ + bounds: components["schemas"]["InsightsThresholdBounds"] | null; + /** @description Whether bounds are compared as absolute values or as percentage change from the previous interval. */ + type: components["schemas"]["InsightThresholdType"]; + }; + /** + * InsightThresholdType + * @enum {string} + */ + InsightThresholdType: "absolute" | "percentage"; + /** + * @description * `trends` - trends + * * `funnel` - funnel + * * `retention` - retention + * * `sql` - sql + * @enum {string} + */ + InsightTypeEnum: "trends" | "funnel" | "retention" | "sql"; + InsightVariable: { + /** + * Format: uuid + * @description UUID of the SQL variable. + */ + readonly id: string; + /** @description Human-readable name for the SQL variable. */ + name: string; + /** + * @description Variable type. Controls how the value is rendered and substituted in HogQL. + * + * * `String` - String + * * `Number` - Number + * * `Boolean` - Boolean + * * `List` - List + * * `Date` - Date + */ + type: components["schemas"]["InsightVariableTypeEnum"]; + /** @description Default value used when a query references this variable. */ + default_value?: unknown; + /** @description ID of the user who created the SQL variable. */ + readonly created_by: number | null; + /** + * Format: date-time + * @description Timestamp when the SQL variable was created. + */ + readonly created_at: string; + /** @description Generated code-safe name used in HogQL as {variables.code_name}. Derived from name. */ + readonly code_name: string | null; + /** @description Allowed values for List variables. Null for other variable types. */ + values?: unknown; + }; + /** + * @description * `String` - String + * * `Number` - Number + * * `Boolean` - Boolean + * * `List` - List + * * `Date` - Date + * @enum {string} + */ + InsightVariableTypeEnum: "String" | "Number" | "Boolean" | "List" | "Date"; + InsightViewedRequest: { + /** @description Insight IDs that were just viewed by the current user. At most 2500 ids per request. */ + insight_ids: number[]; + }; + /** InsightVizNode */ + InsightVizNode: { + /** + * Embedded + * @description Query is embedded inside another bordered component + * @default null + */ + embedded: boolean | null; + /** + * Full + * @description Show with most visual options enabled. Used in insight scene. + * @default null + */ + full: boolean | null; + /** + * Hidepersonsmodal + * @default null + */ + hidePersonsModal: boolean | null; + /** + * Hidetooltiponscroll + * @default null + */ + hideTooltipOnScroll: boolean | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "InsightVizNode"; + /** + * Showcorrelationtable + * @default null + */ + showCorrelationTable: boolean | null; + /** + * Showfilters + * @default null + */ + showFilters: boolean | null; + /** + * Showheader + * @default null + */ + showHeader: boolean | null; + /** + * Showlastcomputation + * @default null + */ + showLastComputation: boolean | null; + /** + * Showlastcomputationrefresh + * @default null + */ + showLastComputationRefresh: boolean | null; + /** + * Showresults + * @default null + */ + showResults: boolean | null; + /** + * Showtable + * @default null + */ + showTable: boolean | null; + /** Source */ + source: components["schemas"]["TrendsQuery"] | components["schemas"]["FunnelsQuery"] | components["schemas"]["RetentionQuery"] | components["schemas"]["PathsQuery"] | components["schemas"]["StickinessQuery"] | components["schemas"]["LifecycleQuery"] | components["schemas"]["WebStatsTableQuery"] | components["schemas"]["WebOverviewQuery"]; + /** + * Suppresssessionanalysiswarning + * @default null + */ + suppressSessionAnalysisWarning: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + /** @default null */ + vizSpecificOptions: components["schemas"]["VizSpecificOptions"] | null; + }; + /** InsightsThresholdBounds */ + InsightsThresholdBounds: { + /** + * Lower + * @description Alert fires when the value drops below this number. + * @default null + */ + lower: number | null; + /** + * Upper + * @description Alert fires when the value exceeds this number. + * @default null + */ + upper: number | null; + }; + InsightsToolCall: { + query: string; + insight_type: components["schemas"]["InsightTypeEnum"]; + }; + InstallCustom: { + name: string; + /** Format: uri */ + url: string; + auth_type: components["schemas"]["InstallCustomAuthTypeEnum"]; + /** @default */ + api_key: string; + /** @default */ + description: string; + /** @default */ + client_id: string; + /** @default */ + client_secret: string; + /** @default posthog */ + install_source: components["schemas"]["InstallSourceEnum"]; + /** @default */ + posthog_code_callback_url: string; + }; + /** + * @description * `api_key` - api_key + * * `oauth` - oauth + * @enum {string} + */ + InstallCustomAuthTypeEnum: "api_key" | "oauth"; + /** + * @description * `posthog` - posthog + * * `posthog-code` - posthog-code + * @enum {string} + */ + InstallSourceEnum: "posthog" | "posthog-code"; + InstallTemplate: { + /** Format: uuid */ + template_id: string; + /** @default */ + api_key: string; + /** @default posthog */ + install_source: components["schemas"]["InstallSourceEnum"]; + /** @default */ + posthog_code_callback_url: string; + }; + /** Integration */ + Integration: { + /** Display Name */ + display_name: string; + /** Id */ + id: number; + kind: components["schemas"]["IntegrationKind"]; + }; + /** @description Standard Integration serializer. */ + IntegrationConfig: { + readonly id: number; + kind: components["schemas"]["IntegrationKindEnum"]; + config?: unknown; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + readonly errors: string; + readonly display_name: string; + }; + /** IntegrationFilter */ + IntegrationFilter: { + /** + * Integrationsourceids + * @description Selected integration source IDs to filter by (e.g., table IDs or source map IDs) + * @default null + */ + integrationSourceIds: string[] | null; + }; + /** + * IntegrationKind + * @enum {string} + */ + IntegrationKind: "slack" | "slack-posthog-code" | "salesforce" | "hubspot" | "google-pubsub" | "google-cloud-service-account" | "google-cloud-storage" | "google-ads" | "google-sheets" | "linkedin-ads" | "snapchat" | "stripe" | "intercom" | "email" | "twilio" | "linear" | "github" | "gitlab" | "meta-ads" | "clickup" | "reddit-ads" | "databricks" | "tiktok-ads" | "bing-ads" | "vercel" | "azure-blob" | "firebase" | "jira" | "pinterest-ads" | "customerio-app" | "customerio-webhook" | "customerio-track"; + /** + * @description * `anthropic` - Anthropic + * * `apns` - Apple Push + * * `azure-blob` - Azure Blob + * * `bing-ads` - Bing Ads + * * `clickup` - Clickup + * * `customerio-app` - Customerio App + * * `customerio-track` - Customerio Track + * * `customerio-webhook` - Customerio Webhook + * * `databricks` - Databricks + * * `email` - Email + * * `firebase` - Firebase + * * `github` - Github + * * `gitlab` - Gitlab + * * `google-ads` - Google Ads + * * `google-cloud-service-account` - Google Cloud Service Account + * * `google-cloud-storage` - Google Cloud Storage + * * `google-pubsub` - Google Pubsub + * * `google-sheets` - Google Sheets + * * `hubspot` - Hubspot + * * `intercom` - Intercom + * * `jira` - Jira + * * `linear` - Linear + * * `linkedin-ads` - Linkedin Ads + * * `meta-ads` - Meta Ads + * * `pinterest-ads` - Pinterest Ads + * * `postgresql` - Postgresql + * * `reddit-ads` - Reddit Ads + * * `salesforce` - Salesforce + * * `slack` - Slack + * * `slack-posthog-code` - Slack Posthog Code + * * `snapchat` - Snapchat + * * `stripe` - Stripe + * * `tiktok-ads` - Tiktok Ads + * * `twilio` - Twilio + * * `vercel` - Vercel + * @enum {string} + */ + IntegrationKindEnum: "anthropic" | "apns" | "azure-blob" | "bing-ads" | "clickup" | "customerio-app" | "customerio-track" | "customerio-webhook" | "databricks" | "email" | "firebase" | "github" | "gitlab" | "google-ads" | "google-cloud-service-account" | "google-cloud-storage" | "google-pubsub" | "google-sheets" | "hubspot" | "intercom" | "jira" | "linear" | "linkedin-ads" | "meta-ads" | "pinterest-ads" | "postgresql" | "reddit-ads" | "salesforce" | "slack" | "slack-posthog-code" | "snapchat" | "stripe" | "tiktok-ads" | "twilio" | "vercel"; + InterestingNote: { + text: string; + line_refs: string; + }; + /** + * @description * `hour` - hour + * * `day` - day + * * `week` - week + * * `every 5 minutes` - every 5 minutes + * * `every 15 minutes` - every 15 minutes + * @enum {string} + */ + IntervalEnum: "hour" | "day" | "week" | "every 5 minutes" | "every 15 minutes"; + /** IntervalItem */ + IntervalItem: { + /** Label */ + label: string; + /** + * Value + * @description An interval selected out of available intervals in source query + */ + value: number; + }; + /** + * IntervalType + * @enum {string} + */ + IntervalType: "second" | "minute" | "hour" | "day" | "week" | "month"; + /** + * @description * `notify` - Notify + * * `suppress` - Suppress + * @enum {string} + */ + InvestigationInconclusiveActionEnum: "notify" | "suppress"; + /** + * @description * `pending` - pending + * * `running` - running + * * `done` - done + * * `failed` - failed + * * `skipped` - skipped + * @enum {string} + */ + InvestigationStatusEnum: "pending" | "running" | "done" | "failed" | "skipped"; + /** + * @description * `true_positive` - true_positive + * * `false_positive` - false_positive + * * `inconclusive` - inconclusive + * @enum {string} + */ + InvestigationVerdictEnum: "true_positive" | "false_positive" | "inconclusive"; + /** IsolationForestDetectorConfig */ + IsolationForestDetectorConfig: { + /** + * N Estimators + * @description Number of trees in the forest (default: 100) + * @default null + */ + n_estimators: number | null; + /** + * @description Preprocessing transforms applied before detection + * @default null + */ + preprocessing: components["schemas"]["PreprocessingConfig"] | null; + /** + * Threshold + * @description Anomaly probability threshold (default: 0.9) + * @default null + */ + threshold: number | null; + /** + * Type + * @default isolation_forest + * @constant + */ + type: "isolation_forest"; + /** + * Window + * @description Rolling window size — how many historical data points to train on (default: based on calculation interval) + * @default null + */ + window: number | null; + }; + /** + * @description * `2.0` - 2.0 + * @enum {string} + */ + JsonrpcEnum: "2.0"; + /** KNNDetectorConfig */ + KNNDetectorConfig: { + /** + * @description Distance method: 'largest', 'mean', 'median' (default: 'largest') + * @default null + */ + method: components["schemas"]["Method"] | null; + /** + * N Neighbors + * @description Number of neighbors to consider (default: 5) + * @default null + */ + n_neighbors: number | null; + /** + * @description Preprocessing transforms applied before detection + * @default null + */ + preprocessing: components["schemas"]["PreprocessingConfig"] | null; + /** + * Threshold + * @description Anomaly probability threshold (default: 0.9) + * @default null + */ + threshold: number | null; + /** + * Type + * @default knn + * @constant + */ + type: "knn"; + /** + * Window + * @description Rolling window size — how many historical data points to train on (default: based on calculation interval) + * @default null + */ + window: number | null; + }; + /** + * Key10 + * @enum {string} + */ + Key10: "tag_name" | "text" | "href" | "selector"; + /** + * Kind + * @enum {string} + */ + Kind: "EventsNode" | "ActionsNode"; + KnowledgeSource: { + /** Format: uuid */ + readonly id: string; + readonly team_id: number; + readonly name: string; + readonly source_type: components["schemas"]["KnowledgeSourceSourceTypeEnum"]; + readonly status: components["schemas"]["KnowledgeSourceStatusEnum"]; + readonly error_message: string; + /** + * @description Number of documents belonging to this source. + * @default 0 + */ + readonly document_count: number; + /** + * @description Number of chunks belonging to this source. + * @default 0 + */ + readonly chunk_count: number; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + /** Format: uri */ + readonly source_url: string; + /** Format: date-time */ + readonly last_refresh_at: string | null; + readonly last_refresh_status: components["schemas"]["LastRefreshStatusEnum"]; + readonly last_refresh_error: string; + readonly crawl_mode: components["schemas"]["CrawlModeEnum"]; + readonly crawl_config: unknown; + readonly original_filename: string; + readonly file_content_type: string; + readonly file_size_bytes: number | null; + }; + /** + * @description * `text` - Text + * * `url` - URL + * * `file` - File + * @enum {string} + */ + KnowledgeSourceSourceTypeEnum: "text" | "url" | "file"; + /** + * @description * `pending` - Pending + * * `processing` - Processing + * * `ready` - Ready + * * `error` - Error + * @enum {string} + */ + KnowledgeSourceStatusEnum: "pending" | "processing" | "ready" | "error"; + LLMModelInfo: { + /** @description Provider-specific model identifier (e.g. 'gpt-4o-mini', 'claude-3-5-sonnet-20241022'). */ + id: string; + /** @description Whether this model is available on PostHog's trial credits without bringing a provider key. */ + posthog_available: boolean; + }; + LLMModelsListResponse: { + /** @description Models supported for the requested provider. */ + models: components["schemas"]["LLMModelInfo"][]; + }; + LLMPrompt: { + /** Format: uuid */ + readonly id: string; + /** @description Unique prompt name using letters, numbers, hyphens, and underscores only. */ + name: string; + /** @description Prompt payload as JSON or string data. */ + prompt: unknown; + readonly version: number; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly deleted: boolean; + readonly is_latest: boolean; + readonly latest_version: number; + readonly version_count: number; + readonly first_version_created_at: string; + readonly outline: components["schemas"]["LLMPromptOutlineEntry"][]; + }; + LLMPromptDuplicate: { + /** @description Name for the duplicated prompt. Must be unique and use only letters, numbers, hyphens, and underscores. */ + new_name: string; + }; + LLMPromptEditOperation: { + /** @description Text to find in the current prompt. Must match exactly once. */ + old: string; + /** @description Replacement text. */ + new: string; + }; + LLMPromptList: { + /** Format: uuid */ + readonly id: string; + /** @description Unique prompt name using letters, numbers, hyphens, and underscores only. */ + readonly name: string; + /** @description Prompt payload as JSON or string data. */ + readonly prompt: unknown; + readonly version: number; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly deleted: boolean; + readonly is_latest: boolean; + readonly latest_version: number; + readonly version_count: number; + readonly first_version_created_at: string; + readonly outline: components["schemas"]["LLMPromptOutlineEntry"][]; + readonly prompt_preview: string; + readonly prompt_size_bytes: number; + }; + LLMPromptOutlineEntry: { + /** @description Markdown heading level (1-6). */ + level: number; + /** @description Heading text with markdown link syntax preserved. */ + text: string; + }; + LLMPromptPublic: { + /** Format: uuid */ + id: string; + name: string; + /** @description Full prompt content. Omitted when 'content=preview' or 'content=none'. */ + prompt?: unknown; + /** @description First 160 characters of the prompt. Only present when 'content=preview'. */ + prompt_preview?: string; + /** @description Flat list of markdown headings parsed from the prompt. Useful as a lightweight table of contents. */ + outline: components["schemas"]["LLMPromptOutlineEntry"][]; + version: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + deleted: boolean; + is_latest: boolean; + latest_version: number; + version_count: number; + /** Format: date-time */ + first_version_created_at: string; + }; + LLMPromptResolveResponse: { + prompt: components["schemas"]["LLMPrompt"]; + versions: components["schemas"]["LLMPromptVersionSummary"][]; + has_more: boolean; + }; + LLMPromptVersionSummary: { + /** Format: uuid */ + readonly id: string; + readonly version: number; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + readonly is_latest: boolean; + }; + /** + * @description * `openai` - Openai + * * `anthropic` - Anthropic + * * `gemini` - Gemini + * * `openrouter` - Openrouter + * * `fireworks` - Fireworks + * * `azure_openai` - Azure OpenAI + * * `together_ai` - Together AI + * @enum {string} + */ + LLMProviderEnum: "openai" | "anthropic" | "gemini" | "openrouter" | "fireworks" | "azure_openai" | "together_ai"; + LLMProviderKey: { + /** Format: uuid */ + readonly id: string; + provider: components["schemas"]["LLMProviderEnum"]; + name: string; + readonly state: components["schemas"]["LLMProviderKeyStateEnum"]; + readonly error_message: string | null; + api_key?: string; + readonly api_key_masked: string; + /** + * Format: uri + * @description Azure OpenAI endpoint URL + */ + azure_endpoint?: string; + /** @description Azure OpenAI API version */ + api_version?: string; + /** @description Azure endpoint (read-only, for display) */ + readonly azure_endpoint_display: string | null; + /** @description Azure API version (read-only, for display) */ + readonly api_version_display: string | null; + /** @default false */ + set_as_active: boolean; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly last_used_at: string | null; + }; + /** + * @description * `unknown` - Unknown + * * `ok` - Ok + * * `invalid` - Invalid + * * `error` - Error + * @enum {string} + */ + LLMProviderKeyStateEnum: "unknown" | "ok" | "invalid" | "error"; + LLMSkill: { + /** Format: uuid */ + readonly id: string; + /** @description Unique skill name. Lowercase letters, numbers, and hyphens only. Max 64 characters. */ + name: string; + /** @description What this skill does and when to use it. Max 4096 characters. */ + description: string; + /** @description The SKILL.md instruction content (markdown). */ + body: string; + /** @description License name or reference to a bundled license file. */ + license?: string; + /** @description Environment requirements (intended product, system packages, network access, etc.). */ + compatibility?: string; + /** @description List of pre-approved tools the skill may use. */ + allowed_tools?: string[]; + /** @description Arbitrary key-value metadata. */ + metadata?: { + [key: string]: unknown; + }; + /** @description Bundled files manifest. Each entry is path + content_type only; fetch content via /llm_skills/name/{name}/files/{path}/. */ + readonly files: components["schemas"]["LLMSkillFileManifest"][]; + /** @description Flat list of markdown headings parsed from the skill body. Useful as a lightweight table of contents. */ + readonly outline: components["schemas"]["LLMSkillOutlineEntry"][]; + readonly version: number; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly deleted: boolean; + readonly is_latest: boolean; + readonly latest_version: number; + readonly version_count: number; + readonly first_version_created_at: string; + }; + /** @description Create serializer — accepts bundled files as write-only input on POST. */ + LLMSkillCreate: { + /** Format: uuid */ + readonly id: string; + /** @description Unique skill name. Lowercase letters, numbers, and hyphens only. Max 64 characters. */ + name: string; + /** @description What this skill does and when to use it. Max 4096 characters. */ + description: string; + /** @description The SKILL.md instruction content (markdown). */ + body: string; + /** @description License name or reference to a bundled license file. */ + license?: string; + /** @description Environment requirements (intended product, system packages, network access, etc.). */ + compatibility?: string; + /** @description List of pre-approved tools the skill may use. */ + allowed_tools?: string[]; + /** @description Arbitrary key-value metadata. */ + metadata?: { + [key: string]: unknown; + }; + /** @description Bundled files to include with the initial version (scripts, references, assets). */ + files?: components["schemas"]["LLMSkillFileInput"][]; + /** @description Flat list of markdown headings parsed from the skill body. Useful as a lightweight table of contents. */ + readonly outline: components["schemas"]["LLMSkillOutlineEntry"][]; + readonly version: number; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly deleted: boolean; + readonly is_latest: boolean; + readonly latest_version: number; + readonly version_count: number; + readonly first_version_created_at: string; + }; + LLMSkillDuplicate: { + /** @description Name for the duplicated skill. Must be unique. */ + new_name: string; + }; + LLMSkillEditOperation: { + /** @description Text to find in the target content. Must match exactly once. */ + old: string; + /** @description Replacement text. */ + new: string; + }; + LLMSkillFile: { + path: string; + content: string; + content_type?: string; + }; + LLMSkillFileCreate: { + /** @description File path relative to skill root, e.g. 'scripts/setup.sh' or 'references/guide.md'. */ + path: string; + /** @description Text content of the file. */ + content: string; + /** + * @description MIME type of the file content. + * @default text/plain + */ + content_type: string; + /** @description Latest version you are editing from. If provided, the request fails with 409 when another write has landed in the meantime. */ + base_version?: number; + }; + LLMSkillFileEdit: { + /** @description Path of the bundled file to edit. Must match an existing file on the current skill version. */ + path: string; + /** @description Sequential find/replace operations to apply to this file's content. */ + edits: components["schemas"]["LLMSkillEditOperation"][]; + }; + LLMSkillFileInput: { + /** @description File path relative to skill root, e.g. 'scripts/setup.sh' or 'references/guide.md'. */ + path: string; + /** @description Text content of the file. */ + content: string; + /** + * @description MIME type of the file content. + * @default text/plain + */ + content_type: string; + }; + LLMSkillFileManifest: { + path: string; + content_type?: string; + }; + LLMSkillFileRename: { + /** @description Current file path to rename. */ + old_path: string; + /** @description New file path. Must not already exist in the skill. */ + new_path: string; + /** @description Latest version you are editing from. If provided, the request fails with 409 when another write has landed in the meantime. */ + base_version?: number; + }; + /** @description List serializer that omits body and file manifest — progressive disclosure (Level 1). */ + LLMSkillList: { + /** Format: uuid */ + readonly id: string; + /** @description Unique skill name. Lowercase letters, numbers, and hyphens only. Max 64 characters. */ + name: string; + /** @description What this skill does and when to use it. Max 4096 characters. */ + description: string; + /** @description License name or reference to a bundled license file. */ + license?: string; + /** @description Environment requirements (intended product, system packages, network access, etc.). */ + compatibility?: string; + /** @description List of pre-approved tools the skill may use. */ + allowed_tools?: string[]; + /** @description Arbitrary key-value metadata. */ + metadata?: { + [key: string]: unknown; + }; + /** @description Flat list of markdown headings parsed from the skill body. Useful as a lightweight table of contents. */ + readonly outline: components["schemas"]["LLMSkillOutlineEntry"][]; + readonly version: number; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly deleted: boolean; + readonly is_latest: boolean; + readonly latest_version: number; + readonly version_count: number; + readonly first_version_created_at: string; + }; + LLMSkillOutlineEntry: { + /** @description Markdown heading level (1-6). */ + level: number; + /** @description Heading text. */ + text: string; + }; + LLMSkillResolveResponse: { + skill: components["schemas"]["LLMSkill"]; + versions: components["schemas"]["LLMSkillVersionSummary"][]; + has_more: boolean; + }; + LLMSkillVersionSummary: { + /** Format: uuid */ + readonly id: string; + readonly version: number; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + readonly is_latest: boolean; + }; + LLMTaggerConfig: { + /** @description Prompt instructing the LLM how to tag generations */ + prompt: string; + /** @description Available tags the LLM can assign */ + tags: components["schemas"]["TagDefinition"][]; + /** + * @description Minimum number of tags to apply + * @default 0 + */ + min_tags: number; + /** @description Maximum number of tags to apply (null = no limit) */ + max_tags?: number | null; + }; + /** LLMTrace */ + LLMTrace: { + /** + * Aisessionid + * @default null + */ + aiSessionId: string | null; + /** Createdat */ + createdAt: string; + /** Distinctid */ + distinctId: string; + /** + * Errorcount + * @default null + */ + errorCount: number | null; + /** Events */ + events: components["schemas"]["LLMTraceEvent"][]; + /** Id */ + id: string; + /** + * Inputcost + * @default null + */ + inputCost: number | null; + /** + * Inputstate + * @default null + */ + inputState: unknown; + /** + * Inputtokens + * @default null + */ + inputTokens: number | null; + /** + * Issupporttrace + * @default null + */ + isSupportTrace: boolean | null; + /** + * Outputcost + * @default null + */ + outputCost: number | null; + /** + * Outputstate + * @default null + */ + outputState: unknown; + /** + * Outputtokens + * @default null + */ + outputTokens: number | null; + /** @default null */ + person: components["schemas"]["LLMTracePerson"] | null; + /** + * Requestcost + * @default null + */ + requestCost: number | null; + /** + * Tools + * @default null + */ + tools: string[] | null; + /** + * Totalcost + * @default null + */ + totalCost: number | null; + /** + * Totallatency + * @default null + */ + totalLatency: number | null; + /** + * Tracename + * @default null + */ + traceName: string | null; + /** + * Websearchcost + * @default null + */ + webSearchCost: number | null; + }; + /** LLMTraceEvent */ + LLMTraceEvent: { + /** Createdat */ + createdAt: string; + /** Event */ + event: components["schemas"]["AIEventType"] | string; + /** Id */ + id: string; + /** Properties */ + properties: { + [key: string]: unknown; + }; + }; + /** LLMTracePerson */ + LLMTracePerson: { + /** Created At */ + created_at: string; + /** Distinct Id */ + distinct_id: string; + /** Properties */ + properties: { + [key: string]: unknown; + }; + /** Uuid */ + uuid: string; + }; + /** LOFDetectorConfig */ + LOFDetectorConfig: { + /** + * N Neighbors + * @description Number of neighbors for LOF (default: 20) + * @default null + */ + n_neighbors: number | null; + /** + * @description Preprocessing transforms applied before detection + * @default null + */ + preprocessing: components["schemas"]["PreprocessingConfig"] | null; + /** + * Threshold + * @description Anomaly probability threshold (default: 0.9) + * @default null + */ + threshold: number | null; + /** + * Type + * @default lof + * @constant + */ + type: "lof"; + /** + * Window + * @description Rolling window size — how many historical data points to train on (default: based on calculation interval) + * @default null + */ + window: number | null; + }; + /** + * @description * `today` - today + * * `this_week` - this_week + * * `inactive` - inactive + * * `never` - never + * @enum {string} + */ + LastActiveEnum: "today" | "this_week" | "inactive" | "never"; + /** LastEvent */ + LastEvent: { + /** Distinct Id */ + distinct_id: string; + /** Properties */ + properties: string; + /** Timestamp */ + timestamp: string; + /** Uuid */ + uuid: string; + }; + /** + * @description * `success` - Success + * * `not_modified` - Not modified + * * `error` - Error + * @enum {string} + */ + LastRefreshStatusEnum: "success" | "not_modified" | "error"; + LegalDocumentCreator: { + first_name: string; + email: string; + }; + /** @description Output serializer — what the API returns for every row. */ + LegalDocumentDTO: { + /** Format: uuid */ + id: string; + document_type: string; + company_name: string; + representative_email: string; + status: string; + created_by: components["schemas"]["LegalDocumentCreator"] | null; + /** Format: date-time */ + created_at: string; + }; + /** + * @description * `gemini-3-flash` - Gemini 3 Flash + * * `gemini-3-flash-lite` - Gemini 3 Flash Lite + * @enum {string} + */ + LensModelEnum: "gemini-3-flash" | "gemini-3-flash-lite"; + /** + * @description * `google` - Google + * @enum {string} + */ + LensProviderEnum: "google"; + /** + * @description * `monitor` - Monitor + * * `classifier` - Classifier + * * `scorer` - Scorer + * * `summarizer` - Summarizer + * * `indexer` - Indexer + * @enum {string} + */ + LensTypeEnum: "monitor" | "classifier" | "scorer" | "summarizer" | "indexer"; + /** LifecycleDataWarehouseNode */ + LifecycleDataWarehouseNode: { + /** Aggregation Target Field */ + aggregation_target_field: string; + /** Created At Field */ + created_at_field: string; + /** + * Custom Name + * @default null + */ + custom_name: string | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** Id */ + id: string; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "LifecycleDataWarehouseNode"; + /** + * Math + * @default null + */ + math: components["schemas"]["BaseMathType"] | components["schemas"]["FunnelMathType"] | components["schemas"]["PropertyMathType"] | components["schemas"]["CountPerActorMathType"] | components["schemas"]["ExperimentMetricMathType"] | components["schemas"]["CalendarHeatmapMathType"] | "unique_group" | "hogql" | null; + /** @default null */ + math_group_type_index: components["schemas"]["MathGroupTypeIndex"] | null; + /** + * Math Hogql + * @default null + */ + math_hogql: string | null; + /** + * Math Multiplier + * @default null + */ + math_multiplier: number | null; + /** + * Math Property + * @default null + */ + math_property: string | null; + /** @default null */ + math_property_revenue_currency: components["schemas"]["RevenueCurrencyPropertyConfig"] | null; + /** + * Math Property Type + * @default null + */ + math_property_type: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Optionalinfunnel + * @default null + */ + optionalInFunnel: boolean | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** Table Name */ + table_name: string; + /** Timestamp Field */ + timestamp_field: string; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** LifecycleFilter */ + LifecycleFilter: { + /** + * Showlegend + * @default false + */ + showLegend: boolean | null; + /** + * Showvaluesonseries + * @default null + */ + showValuesOnSeries: boolean | null; + /** + * Stacked + * @default true + */ + stacked: boolean | null; + /** + * Toggledlifecycles + * @default null + */ + toggledLifecycles: components["schemas"]["LifecycleToggle"][] | null; + }; + /** LifecycleQuery */ + LifecycleQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation + * @default null + */ + aggregation_group_type_index: number | null; + /** + * Customaggregationtarget + * @description For data warehouse based lifecycle insights when the aggregation target can't be mapped to persons or groups. + * @default null + */ + customAggregationTarget: boolean | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization + * @default null + */ + dataColorTheme: number | null; + /** + * @description Date range for the query + * @default null + */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Filtertestaccounts + * @description Exclude internal and test users by applying the respective filters + * @default false + */ + filterTestAccounts: boolean | null; + /** + * @description Granularity of the response. Can be one of `hour`, `day`, `week` or `month` + * @default day + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "LifecycleQuery"; + /** + * @description Properties specific to the lifecycle insight + * @default null + */ + lifecycleFilter: components["schemas"]["LifecycleFilter"] | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Properties + * @description Property filters for all series + * @default [] + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | components["schemas"]["PropertyGroupFilter"] | null; + /** @default null */ + response: components["schemas"]["LifecycleQueryResponse"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** + * Series + * @description Events and actions to include + */ + series: (components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["LifecycleDataWarehouseNode"])[]; + /** + * @description Tags that will be added to the Query log comment + * @default null + */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** LifecycleQueryResponse */ + LifecycleQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: { + [key: string]: unknown; + }[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** + * LifecycleToggle + * @enum {string} + */ + LifecycleToggle: "new" | "resurrecting" | "returning" | "dormant"; + /** + * LimitContext + * @enum {unknown} + */ + LimitContext: "posthog_ai" | null; + LiveDebuggerBreakpoint: { + /** Format: uuid */ + readonly id: string; + repository?: string | null; + filename: string; + line_number: number; + enabled?: boolean; + condition?: string | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + LocalEvaluationResponse: { + flags: components["schemas"]["MinimalFeatureFlag"][]; + group_type_mapping: { + [key: string]: string; + }; + /** @description Cohort definitions keyed by cohort ID. Each value is a property group structure with 'type' (OR/AND) and 'values' (array of property groups or property filters). */ + cohorts: { + [key: string]: unknown; + }; + }; + /** LogAttributeResult */ + LogAttributeResult: { + /** @description Whether this row matched the search by attribute key or by attribute value. */ + matchedOn: components["schemas"]["MatchedOn"]; + /** + * Matchedvalue + * @description Sample value that matched the search — only set when matchedOn is 'value'. + * @default null + */ + matchedValue: string | null; + /** Name */ + name: string; + /** + * Propertyfiltertype + * @description Either 'log_attribute' or 'log_resource_attribute'. + */ + propertyFilterType: string; + }; + /** LogAttributesQuery */ + LogAttributesQuery: { + /** Attributetype */ + attributeType: string; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** @default null */ + filterGroup: components["schemas"]["PropertyGroupFilter"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "LogAttributesQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** @default null */ + response: components["schemas"]["LogAttributesQueryResponse"] | null; + /** + * Search + * @default null + */ + search: string | null; + /** + * Searchvalues + * @description When true, the search query also matches attribute values (not just keys). + * @default null + */ + searchValues: boolean | null; + /** + * Servicenames + * @default null + */ + serviceNames: string[] | null; + /** + * Severitylevels + * @default null + */ + severityLevels: components["schemas"]["LogSeverityLevel"][] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** LogAttributesQueryResponse */ + LogAttributesQueryResponse: { + /** Count */ + count: number; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["LogAttributeResult"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** LogEntryPropertyFilter */ + LogEntryPropertyFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + /** + * Type + * @default log_entry + * @constant + */ + type: "log_entry"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + /** LogPropertyFilter */ + LogPropertyFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + type: components["schemas"]["LogPropertyFilterType"]; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + /** + * LogPropertyFilterType + * @enum {string} + */ + LogPropertyFilterType: "log" | "log_attribute" | "log_resource_attribute"; + /** + * LogSeverityLevel + * @enum {string} + */ + LogSeverityLevel: "trace" | "debug" | "info" | "warn" | "error" | "fatal"; + /** LogValueResult */ + LogValueResult: { + /** Id */ + id: string; + /** Name */ + name: string; + }; + /** LogValuesQuery */ + LogValuesQuery: { + /** Attributekey */ + attributeKey: string; + /** Attributetype */ + attributeType: string; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** @default null */ + filterGroup: components["schemas"]["PropertyGroupFilter"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "LogValuesQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** @default null */ + response: components["schemas"]["LogValuesQueryResponse"] | null; + /** + * Search + * @default null + */ + search: string | null; + /** + * Servicenames + * @default null + */ + serviceNames: string[] | null; + /** + * Severitylevels + * @default null + */ + severityLevels: components["schemas"]["LogSeverityLevel"][] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** LogValuesQueryResponse */ + LogValuesQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["LogValueResult"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + LogsAlertConfiguration: { + /** + * Format: uuid + * @description Unique identifier for this alert. + */ + readonly id: string; + /** @description Human-readable name for this alert. Defaults to 'Untitled alert' on create when omitted. */ + name?: string; + /** + * @description Whether the alert is actively being evaluated. Disabling resets the state to not_firing. + * @default true + */ + enabled: boolean; + /** @description Filter criteria — subset of LogsViewerFilters. Must contain at least one of: severityLevels (list of severity strings), serviceNames (list of service name strings), or filterGroup (property filter group object). May be empty on draft alerts (enabled=false). */ + filters?: unknown; + /** + * @description Number of matching log entries that constitutes a threshold breach within the evaluation window. Defaults to 100. + * @default 100 + */ + threshold_count: number; + /** + * @description Whether the alert fires when the count is above or below the threshold. + * + * * `above` - Above + * * `below` - Below + * @default above + */ + threshold_operator: components["schemas"]["ThresholdOperatorEnum"]; + /** + * @description Time window in minutes over which log entries are counted. Allowed values: 5, 10, 15, 30, 60. + * @default 5 + */ + window_minutes: number; + /** @description How often the alert is evaluated, in minutes. Server-managed. */ + readonly check_interval_minutes: number; + /** + * @description Current alert state: not_firing, firing, pending_resolve, errored, or snoozed. Server-managed. + * + * * `not_firing` - Not firing + * * `firing` - Firing + * * `pending_resolve` - Pending resolve + * * `errored` - Errored + * * `snoozed` - Snoozed + * * `broken` - Broken + */ + readonly state: components["schemas"]["LogsAlertConfigurationStateEnum"]; + /** + * @description Total number of check periods in the sliding evaluation window for firing (M in N-of-M). + * @default 1 + */ + evaluation_periods: number; + /** + * @description How many periods within the evaluation window must breach the threshold to fire (N in N-of-M). + * @default 1 + */ + datapoints_to_alarm: number; + /** + * @description Minimum minutes between repeated notifications after the alert fires. 0 means no cooldown. + * @default 0 + */ + cooldown_minutes: number; + /** + * Format: date-time + * @description ISO 8601 timestamp until which the alert is snoozed. Set to null to unsnooze. + */ + snooze_until?: string | null; + /** + * Format: date-time + * @description When the next evaluation is scheduled. Server-managed. + */ + readonly next_check_at: string | null; + /** + * Format: date-time + * @description When the last notification was sent. Server-managed. + */ + readonly last_notified_at: string | null; + /** + * Format: date-time + * @description When the alert was last evaluated. Server-managed. + */ + readonly last_checked_at: string | null; + /** @description Number of consecutive evaluation failures. Resets on success. Server-managed. */ + readonly consecutive_failures: number; + /** @description Error message from the most recent errored check, or null if the alert's most recent check was successful. Sourced from LogsAlertEvent without denormalization so retention-aware cleanup rules stay the only source of truth. */ + readonly last_error_message: string | null; + /** @description Continuous state intervals over the last 24h, ordered oldest-first. Each interval covers a span during which (state, enabled) was constant. Derived from LogsAlertEvent rows walked in chronological order; consecutive identical intervals are collapsed. Drives the 'Last 24h' status bar on the alert list. */ + readonly state_timeline: components["schemas"]["LogsAlertStateInterval"][]; + /** @description Notification destination types configured for this alert — e.g. 'slack', 'webhook'. Empty list means no notifications will fire. One or more destinations should be added after creating an alert. */ + readonly destination_types: components["schemas"]["NotificationDestinationTypeEnum"][]; + /** + * Format: date-time + * @description When the alert was first enabled. Null means the alert is still in draft state. + */ + readonly first_enabled_at: string | null; + /** + * Format: date-time + * @description When the alert was created. + */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** + * Format: date-time + * @description When the alert was last modified. + */ + readonly updated_at: string | null; + }; + /** + * @description * `not_firing` - Not firing + * * `firing` - Firing + * * `pending_resolve` - Pending resolve + * * `errored` - Errored + * * `snoozed` - Snoozed + * * `broken` - Broken + * @enum {string} + */ + LogsAlertConfigurationStateEnum: "not_firing" | "firing" | "pending_resolve" | "errored" | "snoozed" | "broken"; + LogsAlertCreateDestination: { + /** + * @description Destination type — slack or webhook. + * + * * `slack` - slack + * * `webhook` - webhook + */ + type: components["schemas"]["NotificationDestinationTypeEnum"]; + /** @description Integration ID for the Slack workspace. Required when type=slack. */ + slack_workspace_id?: number; + /** @description Slack channel ID. Required when type=slack. */ + slack_channel_id?: string; + /** @description Human-readable channel name for display. */ + slack_channel_name?: string; + /** + * Format: uri + * @description HTTPS endpoint to POST to. Required when type=webhook. + */ + webhook_url?: string; + }; + LogsAlertDeleteDestination: { + /** @description HogFunction IDs to delete as one atomic destination group. */ + hog_function_ids: string[]; + }; + LogsAlertDestinationResponse: { + hog_function_ids: string[]; + }; + LogsAlertEvent: { + /** Format: uuid */ + readonly id: string; + /** Format: date-time */ + readonly created_at: string; + readonly kind: components["schemas"]["LogsAlertEventKindEnum"]; + readonly state_before: string; + readonly state_after: string; + readonly threshold_breached: boolean; + readonly result_count: number | null; + readonly error_message: string | null; + readonly query_duration_ms: number | null; + }; + /** + * @description * `check` - Check + * * `reset` - Reset + * * `enable` - Enable + * * `disable` - Disable + * * `snooze` - Snooze + * * `unsnooze` - Unsnooze + * * `threshold_change` - Threshold change + * @enum {string} + */ + LogsAlertEventKindEnum: "check" | "reset" | "enable" | "disable" | "snooze" | "unsnooze" | "threshold_change"; + LogsAlertSimulateBucket: { + /** + * Format: date-time + * @description Bucket start timestamp. + */ + timestamp: string; + /** @description Number of matching logs in this bucket. */ + count: number; + /** @description Whether the count crossed the threshold in this bucket. */ + threshold_breached: boolean; + /** @description Alert state after evaluating this bucket. */ + state: string; + /** @description Notification action: none, fire, or resolve. */ + notification: string; + /** @description Human-readable explanation of the state transition. */ + reason: string; + }; + LogsAlertSimulateRequest: { + /** @description Filter criteria — same format as LogsAlertConfiguration.filters. */ + filters: unknown; + /** @description Threshold count to evaluate against. */ + threshold_count: number; + /** + * @description Whether the alert fires when the count is above or below the threshold. + * + * * `above` - Above + * * `below` - Below + */ + threshold_operator: components["schemas"]["ThresholdOperatorEnum"]; + /** @description Window size in minutes — determines bucket interval. */ + window_minutes: number; + /** + * @description How often the alert is evaluated, in minutes. + * @default 5 + */ + check_interval_minutes: number; + /** + * @description Total check periods in the N-of-M evaluation window (M). + * @default 1 + */ + evaluation_periods: number; + /** + * @description How many periods must breach to fire (N in N-of-M). + * @default 1 + */ + datapoints_to_alarm: number; + /** + * @description Minutes to wait after firing before sending another notification. + * @default 0 + */ + cooldown_minutes: number; + /** @description Relative date string for how far back to simulate (e.g. '-24h', '-7d', '-30d'). */ + date_from: string; + }; + LogsAlertSimulateResponse: { + /** @description Time-bucketed counts with full state machine evaluation. */ + buckets: components["schemas"]["LogsAlertSimulateBucket"][]; + /** @description Number of times the alert would have sent a fire notification. */ + fire_count: number; + /** @description Number of times the alert would have sent a resolve notification. */ + resolve_count: number; + /** @description Total number of buckets in the simulation window. */ + total_buckets: number; + /** @description Threshold count used for evaluation. */ + threshold_count: number; + /** @description Threshold operator used for evaluation. */ + threshold_operator: string; + }; + LogsAlertStateInterval: { + /** + * Format: date-time + * @description Interval start (UTC, inclusive). + */ + start: string; + /** + * Format: date-time + * @description Interval end (UTC, exclusive). + */ + end: string; + /** + * @description Alert state during this interval. + * + * * `not_firing` - Not firing + * * `firing` - Firing + * * `pending_resolve` - Pending resolve + * * `errored` - Errored + * * `snoozed` - Snoozed + * * `broken` - Broken + */ + state: components["schemas"]["LogsAlertConfigurationStateEnum"]; + /** @description Whether the alert was enabled during this interval. Disabled alerts keep their state but are inactive. */ + enabled: boolean; + }; + /** + * LogsOrderBy + * @enum {string} + */ + LogsOrderBy: "latest" | "earliest"; + /** LogsQuery */ + LogsQuery: { + /** + * After + * @description Cursor for fetching the next page of results + * @default null + */ + after: string | null; + dateRange: components["schemas"]["DateRange"]; + filterGroup: components["schemas"]["PropertyGroupFilter"]; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "LogsQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * Livelogscheckpoint + * @default null + */ + liveLogsCheckpoint: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** @default null */ + orderBy: components["schemas"]["LogsOrderBy"] | null; + /** + * Resourcefingerprint + * @default null + */ + resourceFingerprint: string | null; + /** @default null */ + response: components["schemas"]["LogsQueryResponse"] | null; + /** + * Searchterm + * @default null + */ + searchTerm: string | null; + /** Servicenames */ + serviceNames: string[]; + /** Severitylevels */ + severityLevels: components["schemas"]["LogSeverityLevel"][]; + /** + * @description Field to break down sparkline data by (used only by sparkline endpoint) + * @default null + */ + sparklineBreakdownBy: components["schemas"]["LogsSparklineBreakdownBy"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** LogsQueryResponse */ + LogsQueryResponse: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Nextcursor + * @description Cursor for fetching the next page of results + * @default null + */ + nextCursor: string | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + LogsSamplingRule: { + /** + * Format: uuid + * @description Unique identifier for this sampling rule. + */ + readonly id: string; + /** @description User-visible label for this rule. */ + name: string; + /** + * @description When false, the rule is ignored by ingestion and listing UIs that show active rules only. + * @default false + */ + enabled: boolean; + /** @description Lower numbers are evaluated first; the first matching rule wins. Omit to append after existing rules. */ + priority?: number | null; + /** + * @description Rule kind: severity_sampling, path_drop, or rate_limit (caps logs/sec for scope_service at ingestion). + * + * * `severity_sampling` - Severity-based reduction + * * `path_drop` - Path exclusion + * * `rate_limit` - Rate limit + */ + rule_type: components["schemas"]["RuleTypeEnum"]; + /** @description If set, the rule applies only to this service name; null means all services. */ + scope_service?: string | null; + /** @description Optional regex matched against a path-like log attribute when present. */ + scope_path_pattern?: string | null; + /** @description Optional list of predicates over string attributes, e.g. [{"key":"http.route","op":"eq","value":"/api"}]. */ + scope_attribute_filters?: { + [key: string]: unknown; + }[]; + /** @description Type-specific JSON. For path_drop: object with required `patterns` (list of regex strings) and optional `match_attribute_key` (string). When `match_attribute_key` is omitted or empty, patterns match the same virtual path string as ingestion (url.path, http.path, http.route, path). When set, each pattern is tested only against that string attribute on the log record. For severity_sampling: object with `actions` per severity level and optional `always_keep`. For rate_limit: object with required `logs_per_second` (integer 1–1000000) and optional `burst_logs` (integer ≥ logs_per_second, max 60000000); rate_limit rules require non-null `scope_service` matching `service.name` on each log line. */ + config: unknown; + /** @description Incremented on each update for worker cache coherency. */ + readonly version: number; + readonly created_by: number; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + }; + LogsSamplingRuleReorder: { + /** @description Rule IDs in the desired evaluation order (first element is highest priority / lowest order index). */ + ordered_ids: string[]; + }; + LogsSamplingRuleSimulateResponse: { + /** + * Format: double + * @description Rough percent of log volume this rule would drop (0–100). Stub until ClickHouse-backed estimate ships. + */ + estimated_reduction_pct: number; + /** @description Human-readable caveats for the estimate. */ + notes: string; + }; + /** + * LogsSparklineBreakdownBy + * @enum {string} + */ + LogsSparklineBreakdownBy: "severity" | "service"; + LogsView: { + /** Format: uuid */ + readonly id: string; + readonly short_id: string; + name: string; + /** @description Filter criteria — subset of LogsViewerFilters. May contain severityLevels, serviceNames, searchTerm, filterGroup, dateRange, and other keys. */ + filters?: { + [key: string]: unknown; + }; + pinned?: boolean; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly updated_at: string | null; + }; + /** MADDetectorConfig */ + MADDetectorConfig: { + /** + * @description Preprocessing transforms applied before detection + * @default null + */ + preprocessing: components["schemas"]["PreprocessingConfig"] | null; + /** + * Threshold + * @description Anomaly probability threshold [0-1]. Points above this probability are flagged (default: 0.9) + * @default null + */ + threshold: number | null; + /** + * Type + * @default mad + * @constant + */ + type: "mad"; + /** + * Window + * @description Rolling window size for calculating median/MAD (default: 30) + * @default null + */ + window: number | null; + }; + /** + * @description * `api_key` - API Key + * * `oauth` - OAuth + * @enum {string} + */ + MCPAuthTypeEnum: "api_key" | "oauth"; + MCPServerInstallation: { + /** Format: uuid */ + readonly id: string; + /** Format: uuid */ + readonly template_id: string | null; + readonly name: string; + /** + * @description Lowercase key from the linked template for brand icons. Empty if custom install (no template). + * @default + */ + readonly icon_key: string; + display_name?: string; + /** Format: uri */ + url?: string; + description?: string; + auth_type?: components["schemas"]["MCPAuthTypeEnum"]; + is_enabled?: boolean; + readonly needs_reauth: boolean; + readonly pending_oauth: boolean; + readonly proxy_url: string; + /** @description Number of live (non-removed) tools exposed by this installation. */ + readonly tool_count: number; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + }; + MCPServerInstallationTool: { + /** Format: uuid */ + readonly id: string; + readonly tool_name: string; + readonly display_name: string; + readonly description: string; + readonly input_schema: unknown; + approval_state?: components["schemas"]["MCPServerInstallationToolApprovalStateEnum"]; + /** Format: date-time */ + readonly last_seen_at: string; + /** Format: date-time */ + readonly removed_at: string | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + }; + /** + * @description * `approved` - Approved + * * `needs_approval` - Needs approval + * * `do_not_use` - Do not use + * @enum {string} + */ + MCPServerInstallationToolApprovalStateEnum: "approved" | "needs_approval" | "do_not_use"; + MCPServerTemplate: { + /** Format: uuid */ + readonly id: string; + name: string; + /** Format: uri */ + url: string; + /** Format: uri */ + docs_url?: string; + description?: string; + auth_type?: components["schemas"]["MCPAuthTypeEnum"]; + icon_key?: string; + category?: components["schemas"]["CategoryEnum"]; + }; + Mappings: { + name?: string; + inputs_schema?: components["schemas"]["InputsSchemaItem"][]; + inputs?: { + [key: string]: components["schemas"]["InputsItem"]; + }; + filters?: components["schemas"]["HogFunctionFilters"]; + }; + MarkToleratedInput: { + /** Format: uuid */ + snapshot_id: string; + }; + /** MarketingAnalyticsAggregatedQuery */ + MarketingAnalyticsAggregatedQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation - not used in Web Analytics but required for type compatibility + * @default null + */ + aggregation_group_type_index: number | null; + /** @default null */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Conversiongoal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility + * @default null + */ + dataColorTheme: number | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Dopathcleaning + * @default null + */ + doPathCleaning: boolean | null; + /** + * Draftconversiongoal + * @description Draft conversion goal that can be set in the UI without saving + * @default null + */ + draftConversionGoal: components["schemas"]["ConversionGoalFilter1"] | components["schemas"]["ConversionGoalFilter2"] | components["schemas"]["ConversionGoalFilter3"] | null; + /** + * @description Drill-down hierarchy level: channel, source, or campaign (default) + * @default null + */ + drillDownLevel: components["schemas"]["MarketingAnalyticsDrillDownLevel"] | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Includerevenue + * @default null + */ + includeRevenue: boolean | null; + /** + * @description Filter by integration IDs + * @default null + */ + integrationFilter: components["schemas"]["IntegrationFilter"] | null; + /** + * @description Interval for date range calculation (affects date_to rounding for hour vs day ranges) + * @default null + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "MarketingAnalyticsAggregatedQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"])[]; + /** @default null */ + response: components["schemas"]["MarketingAnalyticsAggregatedQueryResponse"] | null; + /** @default null */ + sampling: components["schemas"]["WebAnalyticsSampling"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** + * Select + * @description Return a limited set of data. Will use default columns if empty. + * @default null + */ + select: string[] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Usesessionstable + * @default null + */ + useSessionsTable: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** MarketingAnalyticsAggregatedQueryResponse */ + MarketingAnalyticsAggregatedQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: { + [key: string]: components["schemas"]["MarketingAnalyticsItem"]; + }; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** + * MarketingAnalyticsDrillDownLevel + * @enum {string} + */ + MarketingAnalyticsDrillDownLevel: "channel" | "source" | "campaign" | "ad_group" | "ad" | "medium" | "content" | "term"; + /** MarketingAnalyticsItem */ + MarketingAnalyticsItem: { + /** + * Changefrompreviouspct + * @default null + */ + changeFromPreviousPct: number | null; + /** + * Hascomparison + * @default null + */ + hasComparison: boolean | null; + /** + * Isincreasebad + * @default null + */ + isIncreaseBad: boolean | null; + /** Key */ + key: string; + kind: components["schemas"]["WebAnalyticsItemKind"]; + /** + * Previous + * @default null + */ + previous: number | string | null; + /** + * Value + * @default null + */ + value: number | string | null; + }; + /** + * MarketingAnalyticsOrderByEnum + * @enum {string} + */ + MarketingAnalyticsOrderByEnum: "ASC" | "DESC"; + /** MarketingAnalyticsTableQuery */ + MarketingAnalyticsTableQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation - not used in Web Analytics but required for type compatibility + * @default null + */ + aggregation_group_type_index: number | null; + /** + * @description Compare to date range + * @default null + */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Conversiongoal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility + * @default null + */ + dataColorTheme: number | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Dopathcleaning + * @default null + */ + doPathCleaning: boolean | null; + /** + * Draftconversiongoal + * @description Draft conversion goal that can be set in the UI without saving + * @default null + */ + draftConversionGoal: components["schemas"]["ConversionGoalFilter1"] | components["schemas"]["ConversionGoalFilter2"] | components["schemas"]["ConversionGoalFilter3"] | null; + /** + * @description Drill-down hierarchy level: channel, source, or campaign (default) + * @default null + */ + drillDownLevel: components["schemas"]["MarketingAnalyticsDrillDownLevel"] | null; + /** + * Filtertestaccounts + * @description Filter test accounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Includerevenue + * @default null + */ + includeRevenue: boolean | null; + /** + * @description Filter by integration type + * @default null + */ + integrationFilter: components["schemas"]["IntegrationFilter"] | null; + /** + * @description Interval for date range calculation (affects date_to rounding for hour vs day ranges) + * @default null + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "MarketingAnalyticsTableQuery"; + /** + * Limit + * @description Number of rows to return + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @description Number of rows to skip before returning rows + * @default null + */ + offset: number | null; + /** + * Orderby + * @description Columns to order by - similar to EventsQuery format + * @default null + */ + orderBy: (string | components["schemas"]["MarketingAnalyticsOrderByEnum"])[][] | null; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"])[]; + /** @default null */ + response: components["schemas"]["MarketingAnalyticsTableQueryResponse"] | null; + /** @default null */ + sampling: components["schemas"]["WebAnalyticsSampling"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** + * Select + * @description Return a limited set of data. Will use default columns if empty. + * @default null + */ + select: string[] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Usesessionstable + * @default null + */ + useSessionsTable: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** MarketingAnalyticsTableQueryResponse */ + MarketingAnalyticsTableQueryResponse: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["MarketingAnalyticsItem"][][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** + * MatchedOn + * @enum {string} + */ + MatchedOn: "key" | "value"; + /** + * @description * `key` - key + * * `value` - value + * @enum {string} + */ + MatchedOnEnum: "key" | "value"; + /** MatchedRecording */ + MatchedRecording: { + /** Events */ + events: components["schemas"]["MatchedRecordingEvent"][]; + /** + * Session Id + * @default null + */ + session_id: string | null; + }; + /** MatchedRecordingEvent */ + MatchedRecordingEvent: { + /** Timestamp */ + timestamp: string; + /** Uuid */ + uuid: string; + }; + /** + * MaterializationMode + * @enum {string} + */ + MaterializationMode: "auto" | "legacy_null_as_string" | "legacy_null_as_null" | "disabled"; + MaterializationPreviewRequest: { + version?: number; + /** @description Per-column bucket function overrides, e.g. {"timestamp": "hour"} */ + bucket_overrides?: { + [key: string]: string; + } | null; + }; + /** + * MaterializationType + * @enum {unknown} + */ + MaterializationType: "materialized" | "inline" | null; + /** + * MaterializedColumnsOptimizationMode + * @enum {string} + */ + MaterializedColumnsOptimizationMode: "disabled" | "optimized"; + /** + * @description * `count` - count + * * `sum` - sum + * @enum {string} + */ + MathEnum: "count" | "sum"; + /** + * MathGroupTypeIndex + * @enum {number} + */ + MathGroupTypeIndex: 0 | 1 | 2 | 3 | 4; + /** + * MeanRetentionCalculation + * @enum {string} + */ + MeanRetentionCalculation: "simple" | "weighted" | "none"; + /** + * @description * `zoom` - Zoom + * * `teams` - Microsoft Teams + * * `meet` - Google Meet + * * `desktop_audio` - Desktop audio + * * `slack` - Slack huddle + * @enum {string} + */ + MeetingPlatformEnum: "zoom" | "teams" | "meet" | "desktop_audio" | "slack"; + Merge: { + readonly type: string; + readonly source: unknown; + readonly target: unknown; + }; + /** @description Serializer for appending a message to an existing conversation without triggering AI processing. */ + Message: { + content: string | null; + /** Format: uuid */ + conversation: string; + contextual_tools?: { + [key: string]: unknown; + }; + ui_context?: unknown; + billing_context?: unknown; + /** Format: uuid */ + trace_id: string; + session_id?: string; + agent_mode?: components["schemas"]["AgentModeEnum"]; + /** @default false */ + is_sandbox: boolean; + resume_payload?: unknown; + }; + /** @description Serializer for appending a message to an existing conversation without triggering AI processing. */ + MessageMinimal: { + content: string; + }; + MessageSentiment: { + label: string; + /** Format: double */ + score: number; + scores: { + [key: string]: number; + }; + }; + /** + * Method + * @enum {string} + */ + Method: "largest" | "mean" | "median"; + /** + * @description * `user_message` - user_message + * * `cancel` - cancel + * * `close` - close + * * `permission_response` - permission_response + * * `set_config_option` - set_config_option + * @enum {string} + */ + MethodEnum: "user_message" | "cancel" | "close" | "permission_response" | "set_config_option"; + /** + * Metric + * @enum {string} + */ + Metric: "bytes_read" | "cpu_seconds" | "requests" | "query_duration" | "error_rate"; + /** Metrics */ + Metrics: { + /** + * Bounces + * @default null + */ + Bounces: number | null; + /** + * Pageviews + * @default null + */ + PageViews: number | null; + /** + * Sessionduration + * @default null + */ + SessionDuration: number | null; + /** + * Sessions + * @default null + */ + Sessions: number | null; + /** + * Totalsessions + * @default null + */ + TotalSessions: number | null; + /** + * Uniqueusers + * @default null + */ + UniqueUsers: number | null; + }; + MinimalFeatureFlag: { + readonly id: number; + readonly team_id: number; + name?: string; + key: string; + filters?: { + [key: string]: unknown; + }; + deleted?: boolean; + active?: boolean; + ensure_experience_continuity?: boolean | null; + version?: number | null; + /** + * @description Specifies where this feature flag should be evaluated + * + * * `server` - Server + * * `client` - Client + * * `all` - All + */ + evaluation_runtime?: components["schemas"]["EvaluationRuntimeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + /** + * @description Identifier used for bucketing users into rollout and variants + * + * * `distinct_id` - User ID (default) + * * `device_id` - Device ID + */ + bucketing_identifier?: components["schemas"]["BucketingIdentifierEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + readonly evaluation_contexts: string[]; + }; + /** MinimalHedgehogConfig */ + MinimalHedgehogConfig: { + /** + * Accessories + * @default null + */ + accessories: components["schemas"]["HedgehogActorAccessoryOption"][] | null; + /** @default null */ + color: components["schemas"]["HedgehogActorColorOption"] | null; + /** @default null */ + skin: components["schemas"]["HedgehogActorSkinOption"] | null; + /** Use As Profile */ + use_as_profile: boolean; + }; + MinimalPerson: { + /** @description Numeric person ID. */ + readonly id: number; + /** @description Display name derived from person properties (email, name, or username). */ + readonly name: string; + readonly distinct_ids: string[]; + /** @description Key-value map of person properties set via $set and $set_once operations. */ + properties?: unknown; + /** + * Format: date-time + * @description When this person was first seen (ISO 8601). + */ + readonly created_at: string; + /** + * Format: uuid + * @description Unique identifier (UUID) for this person. + */ + readonly uuid: string; + /** + * Format: date-time + * @description Timestamp of the last event from this person, or null. + */ + readonly last_seen_at: string | null; + }; + /** @description Nested serializer for model configuration. */ + ModelConfiguration: { + provider: components["schemas"]["LLMProviderEnum"]; + model: string; + /** Format: uuid */ + provider_key_id?: string | null; + readonly provider_key_name: string | null; + }; + /** + * @description * `events` - Events + * * `persons` - Persons + * * `sessions` - Sessions + * @enum {string} + */ + ModelEnum: "events" | "persons" | "sessions"; + /** MultipleBreakdownOptions */ + MultipleBreakdownOptions: { + /** Values */ + values: components["schemas"]["BreakdownItem"][]; + }; + /** + * MultipleBreakdownType + * @enum {string} + */ + MultipleBreakdownType: "person" | "event" | "event_metadata" | "group" | "session" | "hogql" | "cohort" | "revenue_analytics" | "data_warehouse" | "data_warehouse_person_property"; + /** + * MultipleVariantHandling + * @enum {string} + */ + MultipleVariantHandling: "exclude" | "first_seen"; + MyFlagsResponse: { + feature_flag: components["schemas"]["MinimalFeatureFlag"]; + value: unknown; + }; + /** + * @description * `trusted` - Trusted + * * `full` - Full + * * `custom` - Custom + * @enum {string} + */ + NetworkAccessLevelEnum: "trusted" | "full" | "custom"; + /** NonIntegratedConversionsTableQuery */ + NonIntegratedConversionsTableQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation - not used in Web Analytics but required for type compatibility + * @default null + */ + aggregation_group_type_index: number | null; + /** + * @description Compare to date range + * @default null + */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Conversiongoal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility + * @default null + */ + dataColorTheme: number | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Dopathcleaning + * @default null + */ + doPathCleaning: boolean | null; + /** + * Draftconversiongoal + * @description Draft conversion goal that can be set in the UI without saving + * @default null + */ + draftConversionGoal: components["schemas"]["ConversionGoalFilter1"] | components["schemas"]["ConversionGoalFilter2"] | components["schemas"]["ConversionGoalFilter3"] | null; + /** + * Filtertestaccounts + * @description Filter test accounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Includerevenue + * @default null + */ + includeRevenue: boolean | null; + /** + * @description Interval for date range calculation (affects date_to rounding for hour vs day ranges) + * @default null + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "NonIntegratedConversionsTableQuery"; + /** + * Limit + * @description Number of rows to return + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @description Number of rows to skip before returning rows + * @default null + */ + offset: number | null; + /** + * Orderby + * @description Columns to order by + * @default null + */ + orderBy: (string | components["schemas"]["MarketingAnalyticsOrderByEnum"])[][] | null; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"])[]; + /** @default null */ + response: components["schemas"]["NonIntegratedConversionsTableQueryResponse"] | null; + /** @default null */ + sampling: components["schemas"]["WebAnalyticsSampling"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** + * Select + * @description Return a limited set of data. Will use default columns if empty. + * @default null + */ + select: string[] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Usesessionstable + * @default null + */ + useSessionsTable: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** NonIntegratedConversionsTableQueryResponse */ + NonIntegratedConversionsTableQueryResponse: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["MarketingAnalyticsItem"][][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + Notebook: { + /** + * Format: uuid + * @description UUID of the notebook. + */ + readonly id: string; + /** @description Short alphanumeric identifier used in URLs and API lookups. */ + readonly short_id: string; + /** @description Title of the notebook. */ + title?: string | null; + /** @description Notebook content as a ProseMirror JSON document structure. */ + content?: unknown; + /** @description Plain text representation of the notebook content for search. */ + text_content?: string | null; + /** @description Version number for optimistic concurrency control. Must match the current version when updating content. */ + version?: number; + /** @description Whether the notebook has been soft-deleted. */ + deleted?: boolean; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly last_modified_at: string; + readonly last_modified_by: components["schemas"]["UserBasic"]; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + /** create in folder */ + _create_in_folder?: string; + }; + NotebookCollabSave: { + /** @description Unique identifier for the client session. */ + client_id: string; + /** @description The collab version the client's steps are based on. */ + version: number; + /** @description List of ProseMirror step JSON objects to apply. */ + steps: unknown[]; + /** @description The resulting ProseMirror document after applying the steps locally. */ + content: unknown; + /** + * @description Plain text for search indexing. + * @default + */ + text_content: string; + /** @description Updated notebook title. */ + title?: string; + /** @description ProseMirror cursor head position after applying steps. */ + cursor_head?: number | null; + }; + NotebookMinimal: { + /** + * Format: uuid + * @description UUID of the notebook. + */ + readonly id: string; + /** @description Short alphanumeric identifier used in URLs and API lookups. */ + readonly short_id: string; + /** @description Title of the notebook. */ + readonly title: string | null; + /** @description Whether the notebook has been soft-deleted. */ + readonly deleted: boolean; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly last_modified_at: string; + readonly last_modified_by: components["schemas"]["UserBasic"]; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + /** create in folder */ + _create_in_folder?: string; + }; + /** + * @description * `slack` - slack + * * `webhook` - webhook + * @enum {string} + */ + NotificationDestinationTypeEnum: "slack" | "webhook"; + NullEnum: null; + NumericMetric: { + /** + * Format: double + * @description Value for the most recent period. + */ + current: number; + /** + * Format: double + * @description Value for the prior period, if available. + */ + previous: number | null; + /** @description Period-over-period change, null when not meaningful. */ + change: components["schemas"]["WoWChange"] | null; + }; + /** @description Matches numeric values with comparison operators. */ + NumericPropertyFilter: { + /** @description Key of the property you're filtering on. For example `email` or `$current_url`. */ + key: string; + /** + * @description Property type (event, person, session, etc.). + * + * * `event` - event + * * `event_metadata` - event_metadata + * * `feature` - feature + * * `person` - person + * * `cohort` - cohort + * * `element` - element + * * `static-cohort` - static-cohort + * * `dynamic-cohort` - dynamic-cohort + * * `precalculated-cohort` - precalculated-cohort + * * `group` - group + * * `recording` - recording + * * `log_entry` - log_entry + * * `behavioral` - behavioral + * * `session` - session + * * `hogql` - hogql + * * `data_warehouse` - data_warehouse + * * `data_warehouse_person_property` - data_warehouse_person_property + * * `error_tracking_issue` - error_tracking_issue + * * `log` - log + * * `log_attribute` - log_attribute + * * `log_resource_attribute` - log_resource_attribute + * * `span` - span + * * `span_attribute` - span_attribute + * * `span_resource_attribute` - span_resource_attribute + * * `revenue_analytics` - revenue_analytics + * * `flag` - flag + * * `workflow_variable` - workflow_variable + * @default event + */ + type: components["schemas"]["PropertyFilterTypeEnum"]; + /** + * Format: double + * @description Numeric value to compare against. + */ + value: number; + /** + * @description Numeric comparison operator. + * + * * `exact` - exact + * * `is_not` - is_not + * * `gt` - gt + * * `lt` - lt + * * `gte` - gte + * * `lte` - lte + * @default exact + */ + operator: components["schemas"]["NumericPropertyFilterOperatorEnum"]; + }; + /** + * @description * `exact` - exact + * * `is_not` - is_not + * * `gt` - gt + * * `lt` - lt + * * `gte` - gte + * * `lte` - lte + * @enum {string} + */ + NumericPropertyFilterOperatorEnum: "exact" | "is_not" | "gt" | "lt" | "gte" | "lte"; + NumericScoreDefinitionConfig: { + /** + * Format: double + * @description Optional inclusive minimum score. + */ + min?: number | null; + /** + * Format: double + * @description Optional inclusive maximum score. + */ + max?: number | null; + /** + * Format: double + * @description Optional increment step for numeric input, for example 1 or 0.5. + */ + step?: number | null; + }; + OAuthRedirectResponse: { + /** Format: uri */ + redirect_url: string; + }; + /** OCSVMDetectorConfig */ + OCSVMDetectorConfig: { + /** + * Kernel + * @description SVM kernel type (default: "rbf") + * @default null + */ + kernel: string | null; + /** + * Nu + * @description Upper bound on training errors fraction (default: 0.1) + * @default null + */ + nu: number | null; + /** + * @description Preprocessing transforms applied before detection + * @default null + */ + preprocessing: components["schemas"]["PreprocessingConfig"] | null; + /** + * Threshold + * @description Anomaly probability threshold (default: 0.9) + * @default null + */ + threshold: number | null; + /** + * Type + * @default ocsvm + * @constant + */ + type: "ocsvm"; + /** + * Window + * @description Rolling window size — how many historical data points to train on (default: based on calculation interval) + * @default null + */ + window: number | null; + }; + ObjectMediaPreview: { + /** Format: uuid */ + readonly id: string; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + readonly media_url: string; + /** @description Return 'uploaded' or 'exported' based on which media is set */ + readonly media_type: string; + metadata?: unknown; + /** Format: uuid */ + uploaded_media_id?: string | null; + /** Format: uuid */ + exported_asset_id?: string | null; + /** Format: uuid */ + event_definition_id?: string | null; + }; + /** + * @description * `pending` - Pending + * * `running` - Running + * * `succeeded` - Succeeded + * * `failed` - Failed + * @enum {string} + */ + ObservationStatusEnum: "pending" | "running" | "succeeded" | "failed"; + /** + * @description * `schedule` - Schedule + * * `on_demand` - On demand + * @enum {string} + */ + ObservationTriggerEnum: "schedule" | "on_demand"; + /** @description Body of POST /vision/lenses/{id}/observe/. */ + ObserveRequest: { + /** @description ID of the session recording to apply the lens to. */ + session_id: string; + }; + /** @description Async-accepted response for POST /vision/lenses/{id}/observe/. */ + ObserveResponse: { + /** @description Temporal workflow id for this lens application. Look up the resulting ReplayObservation via GET /vision/lenses/{id}/observations/?session_id=. */ + workflow_id: string; + }; + OfflineExperimentItemsRequest: { + /** @description `$ai_experiment_id` whose offline-evaluation items to return. */ + experiment_id: string; + /** @description Lower bound on `timestamp` (ISO-8601). Omit to leave the lower bound open. */ + date_from?: string | null; + /** @description Upper bound on `timestamp` (ISO-8601). Omit to leave the upper bound open. */ + date_to?: string | null; + }; + OfflineExperimentItemsResponse: { + /** @description Tuple-positional rows; positions match `RawOfflineExperimentMetricRow` in the frontend. */ + results: unknown[][]; + }; + /** + * @description * `continue` - continue + * * `abort` - abort + * * `complete` - complete + * * `branch` - branch + * @enum {string} + */ + OnErrorEnum: "continue" | "abort" | "complete" | "branch"; + /** + * @description Request body for POST /api/users/{id}/onboarding/skip/. + * + * Source of truth for OpenAPI / generated TS / zod / MCP — bind this serializer at + * runtime so the contract clients believe is enforced (length cap, choice validation, + * no extra fields) is actually enforced server-side. + */ + OnboardingSkipRequest: { + /** + * @description Why the user is leaving onboarding. 'later' keeps them able to return; 'other' is a catch-all. 'delegated' is rejected here — use the delegate endpoint so the delegation invite is created atomically. + * + * * `later` - Later + * * `other` - Other + */ + reason: components["schemas"]["ReasonEnum"]; + /** @description Onboarding step key the user was on when skipping, for analytics only. */ + step_at_skip?: string; + }; + /** + * @description * `delegated` - Delegated to teammate + * * `later` - Skipped for later + * * `other` - Other + * @enum {string} + */ + OnboardingSkippedReasonEnum: "delegated" | "later" | "other"; + /** + * OrderBy + * @enum {string} + */ + OrderBy: "distance" | "timestamp"; + /** + * @description * `latest` - latest + * * `earliest` - earliest + * @enum {string} + */ + OrderByEnum: "latest" | "earliest"; + /** + * OrderDirection1 + * @enum {string} + */ + OrderDirection1: "asc" | "desc"; + /** + * OrderDirection2 + * @enum {string} + */ + OrderDirection2: "ASC" | "DESC"; + /** + * @description * `ASC` - ASC + * * `DESC` - DESC + * @enum {string} + */ + OrderDirectionEnum: "ASC" | "DESC"; + Organization: { + /** Format: uuid */ + readonly id: string; + name: string; + readonly slug: string; + /** Format: uuid */ + logo_media_id?: string | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly membership_level: components["schemas"]["EffectiveMembershipLevelEnum"]; + readonly plugins_access_level: components["schemas"]["PluginsAccessLevelEnum"]; + readonly teams: { + [key: string]: unknown; + }[]; + readonly projects: { + [key: string]: unknown; + }[]; + readonly available_product_features: unknown[] | null; + /** @description Legacy field; member-join emails are controlled per user in account notification settings. */ + readonly is_member_join_email_enabled: boolean; + readonly metadata: { + [key: string]: string; + }; + readonly customer_id: string | null; + enforce_2fa?: boolean | null; + members_can_invite?: boolean | null; + members_can_use_personal_api_keys?: boolean; + allow_publicly_shared_resources?: boolean; + readonly member_count: number; + is_ai_data_processing_approved?: boolean | null; + /** + * @description Default statistical method for new experiments in this organization. + * + * * `bayesian` - Bayesian + * * `frequentist` - Frequentist + */ + default_experiment_stats_method?: components["schemas"]["DefaultExperimentStatsMethodEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + /** @description Default setting for 'Discard client IP data' for new projects in this organization. */ + default_anonymize_ips?: boolean; + /** @description ID of the role to automatically assign to new members joining the organization */ + default_role_id?: string | null; + /** + * Active + * @description Set this to 'No' to temporarily disable an organization. + */ + readonly is_active: boolean | null; + /** + * De-activated reason + * @description (optional) reason for why the organization has been de-activated. This will be displayed to users on the web app. + */ + readonly is_not_active_reason: string | null; + /** @description Set to True when org deletion has been initiated. Blocks all UI access until the async task completes. */ + readonly is_pending_deletion: boolean | null; + }; + /** + * @description Serializer for `Organization` model with minimal attributes to speeed up loading and transfer times. + * Also used for nested serializers. + */ + OrganizationBasic: { + /** Format: uuid */ + readonly id: string; + name: string; + slug: string; + /** Format: uuid */ + readonly logo_media_id: string | null; + readonly membership_level: components["schemas"]["EffectiveMembershipLevelEnum"]; + members_can_use_personal_api_keys?: boolean; + /** + * Active + * @description Set this to 'No' to temporarily disable an organization. + */ + is_active?: boolean | null; + /** + * De-activated reason + * @description (optional) reason for why the organization has been de-activated. This will be displayed to users on the web app. + */ + is_not_active_reason?: string | null; + /** @description Set to True when org deletion has been initiated. Blocks all UI access until the async task completes. */ + is_pending_deletion?: boolean | null; + }; + OrganizationDomain: { + /** Format: uuid */ + readonly id: string; + domain: string; + /** @description Determines whether a domain is verified or not. */ + readonly is_verified: boolean; + /** Format: date-time */ + readonly verified_at: string | null; + readonly verification_challenge: string; + jit_provisioning_enabled?: boolean; + sso_enforcement?: string; + /** @description Returns whether SAML is configured for the instance. Does not validate the user has the required license (that check is performed in other places). */ + readonly has_saml: boolean; + saml_entity_id?: string | null; + saml_acs_url?: string | null; + saml_x509_cert?: string | null; + /** @description Returns whether SCIM is configured and enabled for this domain. */ + readonly has_scim: boolean; + scim_enabled?: boolean; + readonly scim_base_url: string | null; + readonly scim_bearer_token: string | null; + }; + /** @description Serializer for organization-level integrations. */ + OrganizationIntegration: { + /** Format: uuid */ + readonly id: string; + readonly kind: components["schemas"]["OrganizationIntegrationKindEnum"]; + readonly integration_id: string | null; + readonly config: unknown; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + }; + /** + * @description * `vercel` - Vercel + * @enum {string} + */ + OrganizationIntegrationKindEnum: "vercel"; + OrganizationInvite: { + /** Format: uuid */ + readonly id: string; + /** Format: email */ + target_email: string; + first_name?: string; + readonly emailing_attempt_made: boolean; + level?: components["schemas"]["OrganizationMembershipLevelEnum"]; + /** @description Check if invite is older than INVITE_DAYS_VALIDITY days. */ + readonly is_expired: boolean; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + message?: string | null; + /** @description List of team IDs and corresponding access levels to private projects. */ + private_project_access?: unknown; + /** @default true */ + send_email: boolean; + /** @default false */ + combine_pending_invites: boolean; + }; + OrganizationInviteDelegate: { + /** + * Format: email + * @description Email of the teammate who should complete setup on the inviter's behalf. Receives a PostHog-branded delegation invite granting admin-level membership on accept. + */ + target_email: string; + /** @description Optional personal message included in the delegation email (up to 1000 characters). */ + message?: string; + /** @description Onboarding step key the delegator was on when delegating, for analytics only. */ + step_at_delegation?: string; + }; + OrganizationMember: { + /** Format: uuid */ + readonly id: string; + readonly user: components["schemas"]["UserBasic"]; + level?: components["schemas"]["OrganizationMembershipLevelEnum"]; + /** Format: date-time */ + readonly joined_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly is_2fa_enabled: boolean; + readonly has_social_auth: boolean; + /** Format: date-time */ + readonly last_login: string; + }; + /** + * @description * `1` - member + * * `8` - administrator + * * `15` - owner + * @enum {integer} + */ + OrganizationMembershipLevelEnum: 1 | 8 | 15; + /** @description Serializer for organization-scoped OAuth applications (read-only). */ + OrganizationOAuthApplication: { + /** Format: uuid */ + readonly id: string; + name?: string; + client_id?: string; + readonly redirect_uris_list: string[]; + /** @description True if this application has been verified by PostHog */ + is_verified?: boolean; + /** Format: date-time */ + readonly created: string; + /** Format: date-time */ + readonly updated: string; + }; + /** + * @description * `data_warehouse` - Data Warehouse + * * `endpoint` - Endpoint + * * `managed_viewset` - Managed Viewset + * @enum {string} + */ + OriginEnum: "data_warehouse" | "endpoint" | "managed_viewset"; + /** + * @description * `error_tracking` - Error Tracking + * * `eval_clusters` - Eval Clusters + * * `user_created` - User Created + * * `automation` - Automation + * * `slack` - Slack + * * `support_queue` - Support Queue + * * `session_summaries` - Session Summaries + * * `signal_report` - Signal Report + * @enum {string} + */ + OriginProductEnum: "error_tracking" | "eval_clusters" | "user_created" | "automation" | "slack" | "support_queue" | "session_summaries" | "signal_report"; + /** @description Initial goal and session outcome coming from LLM. */ + Outcome: { + description?: string | null; + success?: boolean | null; + }; + OutdatedTrafficAlert: { + /** @description Outdated version handling significant traffic. */ + version: string; + /** + * Format: double + * @description Traffic-percentage threshold that triggered the alert (10% for most SDKs, 20% for web). + */ + threshold_percent: number; + }; + /** + * @description * `boolean` - Boolean (Pass/Fail) + * @enum {string} + */ + OutputTypeEnum: "boolean"; + /** + * @description * `healthy` - healthy + * * `needs_attention` - needs_attention + * @enum {string} + */ + OverallHealthEnum: "healthy" | "needs_attention"; + /** PCADetectorConfig */ + PCADetectorConfig: { + /** + * @description Preprocessing transforms applied before detection + * @default null + */ + preprocessing: components["schemas"]["PreprocessingConfig"] | null; + /** + * Threshold + * @description Anomaly probability threshold (default: 0.9) + * @default null + */ + threshold: number | null; + /** + * Type + * @default pca + * @constant + */ + type: "pca"; + /** + * Window + * @description Rolling window size — how many historical data points to train on (default: based on calculation interval) + * @default null + */ + window: number | null; + }; + /** PageURL */ + PageURL: { + /** Url */ + url: string; + }; + PaginatedActionList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Action"][]; + }; + PaginatedActivityLogList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?page=4 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?page=2 + */ + previous?: string | null; + results: components["schemas"]["ActivityLog"][]; + }; + PaginatedAlertList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Alert"][]; + }; + PaginatedAnnotationList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Annotation"][]; + }; + PaginatedApprovalPolicyList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ApprovalPolicy"][]; + }; + PaginatedAsyncDeletionStatusList: { + /** + * Format: uri + * @example https://app.posthog.com/api/projects/{project_id}/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example https://app.posthog.com/api/projects/{project_id}/accounts/?offset=400&limit=100 + */ + previous?: string | null; + /** @example 400 */ + count?: number; + results?: components["schemas"]["AsyncDeletionStatus"][]; + }; + PaginatedBatchExportBackfillList: { + /** + * Format: uri + * @example http://api.example.org/accounts/?cursor=cD00ODY%3D" + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?cursor=cj0xJnA9NDg3 + */ + previous?: string | null; + results: components["schemas"]["BatchExportBackfill"][]; + }; + PaginatedBatchExportList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["BatchExport"][]; + }; + PaginatedBatchExportRunList: { + /** + * Format: uri + * @example http://api.example.org/accounts/?cursor=cD00ODY%3D" + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?cursor=cj0xJnA9NDg3 + */ + previous?: string | null; + results: components["schemas"]["BatchExportRun"][]; + }; + PaginatedCIMDVerificationTokenList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["CIMDVerificationToken"][]; + }; + PaginatedChangeRequestList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ChangeRequest"][]; + }; + PaginatedClickhouseEventList: { + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + results?: components["schemas"]["ClickhouseEvent"][]; + }; + PaginatedClusteringJobList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ClusteringJob"][]; + }; + PaginatedCohortList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Cohort"][]; + }; + PaginatedCommentList: { + /** + * Format: uri + * @example http://api.example.org/accounts/?cursor=cD00ODY%3D" + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?cursor=cj0xJnA9NDg3 + */ + previous?: string | null; + results: components["schemas"]["Comment"][]; + }; + PaginatedConversationMinimalList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ConversationMinimal"][]; + }; + PaginatedCustomerJourneyList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["CustomerJourney"][]; + }; + PaginatedCustomerProfileConfigList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["CustomerProfileConfig"][]; + }; + PaginatedDashboardBasicList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["DashboardBasic"][]; + }; + PaginatedDashboardTemplateList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["DashboardTemplate"][]; + }; + PaginatedDataColorThemeList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["DataColorTheme"][]; + }; + PaginatedDataModelingJobList: { + /** + * Format: uri + * @example http://api.example.org/accounts/?cursor=cD00ODY%3D" + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?cursor=cj0xJnA9NDg3 + */ + previous?: string | null; + results: components["schemas"]["DataModelingJob"][]; + }; + PaginatedDataWarehouseModelPathList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["DataWarehouseModelPath"][]; + }; + PaginatedDataWarehouseSavedQueryMinimalList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?page=4 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?page=2 + */ + previous?: string | null; + results: components["schemas"]["DataWarehouseSavedQueryMinimal"][]; + }; + PaginatedDatasetItemList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["DatasetItem"][]; + }; + PaginatedDatasetList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Dataset"][]; + }; + PaginatedDeploymentList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Deployment"][]; + }; + PaginatedDesktopRecordingList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["DesktopRecording"][]; + }; + PaginatedEarlyAccessFeatureList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["EarlyAccessFeature"][]; + }; + PaginatedElementList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Element"][]; + }; + PaginatedEndpointResponseList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["EndpointResponse"][]; + }; + PaginatedEndpointVersionResponseList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["EndpointVersionResponse"][]; + }; + PaginatedEnterpriseEventDefinitionList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["EnterpriseEventDefinition"][]; + }; + PaginatedEnterprisePropertyDefinitionList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["EnterprisePropertyDefinition"][]; + }; + PaginatedErrorTrackingAssignmentRuleList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ErrorTrackingAssignmentRule"][]; + }; + PaginatedErrorTrackingFingerprintList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ErrorTrackingFingerprint"][]; + }; + PaginatedErrorTrackingIssueFullList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ErrorTrackingIssueFull"][]; + }; + PaginatedErrorTrackingRecommendationList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ErrorTrackingRecommendation"][]; + }; + PaginatedErrorTrackingReleaseList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ErrorTrackingRelease"][]; + }; + PaginatedErrorTrackingSpikeEventList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ErrorTrackingSpikeEvent"][]; + }; + PaginatedErrorTrackingStackFrameList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ErrorTrackingStackFrame"][]; + }; + PaginatedErrorTrackingSuppressionRuleList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ErrorTrackingSuppressionRule"][]; + }; + PaginatedErrorTrackingSymbolSetList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ErrorTrackingSymbolSet"][]; + }; + PaginatedEvaluationList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Evaluation"][]; + }; + PaginatedEvaluationReportList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["EvaluationReport"][]; + }; + PaginatedEvaluationReportRunList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["EvaluationReportRun"][]; + }; + PaginatedEventSchemaList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["EventSchema"][]; + }; + PaginatedExperimentHoldoutList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ExperimentHoldout"][]; + }; + PaginatedExperimentList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Experiment"][]; + }; + PaginatedExperimentSavedMetricList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ExperimentSavedMetric"][]; + }; + PaginatedExportedAssetList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ExportedAsset"][]; + }; + PaginatedExternalDataSchemaList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ExternalDataSchema"][]; + }; + PaginatedExternalDataSourceConnectionOptionList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ExternalDataSourceConnectionOption"][]; + }; + PaginatedExternalDataSourceSerializersList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ExternalDataSourceSerializers"][]; + }; + PaginatedFeatureFlagList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["FeatureFlag"][]; + }; + PaginatedFileSystemList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["FileSystem"][]; + }; + PaginatedFileSystemShortcutList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["FileSystemShortcut"][]; + }; + PaginatedGroupUsageMetricList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["GroupUsageMetric"][]; + }; + PaginatedHealthIssueList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["HealthIssue"][]; + }; + PaginatedHeatmapScreenshotResponseList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["HeatmapScreenshotResponse"][]; + }; + PaginatedHeatmapsResponseList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["HeatmapsResponse"][]; + }; + PaginatedHogFlowMinimalList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["HogFlowMinimal"][]; + }; + PaginatedHogFlowScheduleList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["HogFlowSchedule"][]; + }; + PaginatedHogFunctionMinimalList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["HogFunctionMinimal"][]; + }; + PaginatedHogFunctionTemplateList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["HogFunctionTemplate"][]; + }; + PaginatedInsightList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Insight"][]; + }; + PaginatedInsightVariableList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?page=4 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?page=2 + */ + previous?: string | null; + results: components["schemas"]["InsightVariable"][]; + }; + PaginatedIntegrationConfigList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["IntegrationConfig"][]; + }; + PaginatedKnowledgeSourceList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["KnowledgeSource"][]; + }; + PaginatedLLMPromptListList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["LLMPromptList"][]; + }; + PaginatedLLMProviderKeyList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["LLMProviderKey"][]; + }; + PaginatedLLMSkillListList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["LLMSkillList"][]; + }; + PaginatedLegalDocumentDTOList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["LegalDocumentDTO"][]; + }; + PaginatedLiveDebuggerBreakpointList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["LiveDebuggerBreakpoint"][]; + }; + PaginatedLogsAlertConfigurationList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["LogsAlertConfiguration"][]; + }; + PaginatedLogsAlertEventList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["LogsAlertEvent"][]; + }; + PaginatedLogsSamplingRuleList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["LogsSamplingRule"][]; + }; + PaginatedLogsViewList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["LogsView"][]; + }; + PaginatedMCPServerInstallationList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["MCPServerInstallation"][]; + }; + PaginatedMCPServerInstallationToolList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["MCPServerInstallationTool"][]; + }; + PaginatedMCPServerTemplateList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["MCPServerTemplate"][]; + }; + PaginatedNotebookMinimalList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["NotebookMinimal"][]; + }; + PaginatedObjectMediaPreviewList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ObjectMediaPreview"][]; + }; + PaginatedOrganizationDomainList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["OrganizationDomain"][]; + }; + PaginatedOrganizationIntegrationList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["OrganizationIntegration"][]; + }; + PaginatedOrganizationInviteList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["OrganizationInvite"][]; + }; + PaginatedOrganizationList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Organization"][]; + }; + PaginatedOrganizationMemberList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["OrganizationMember"][]; + }; + PaginatedOrganizationOAuthApplicationList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["OrganizationOAuthApplication"][]; + }; + PaginatedPauseStateResponseList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["PauseStateResponse"][]; + }; + PaginatedPersistedFolderList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["PersistedFolder"][]; + }; + PaginatedPersonRecordList: { + /** + * Format: uri + * @example https://app.posthog.com/api/projects/{project_id}/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example https://app.posthog.com/api/projects/{project_id}/accounts/?offset=400&limit=100 + */ + previous?: string | null; + /** @example 400 */ + count?: number; + results?: components["schemas"]["PersonRecord"][]; + }; + PaginatedPluginLogEntryList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["PluginLogEntry"][]; + }; + PaginatedProductTourList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ProductTour"][]; + }; + PaginatedProjectBackwardCompatBasicList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ProjectBackwardCompatBasic"][]; + }; + PaginatedProjectSecretAPIKeyList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ProjectSecretAPIKey"][]; + }; + PaginatedQuarantinedIdentifierEntryList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["QuarantinedIdentifierEntry"][]; + }; + PaginatedReplayLensList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ReplayLens"][]; + }; + PaginatedReplayObservationList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ReplayObservation"][]; + }; + PaginatedRepoList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Repo"][]; + }; + PaginatedReviewQueueItemList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ReviewQueueItem"][]; + }; + PaginatedReviewQueueList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ReviewQueue"][]; + }; + PaginatedRoleExternalReferenceList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["RoleExternalReference"][]; + }; + PaginatedRoleList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Role"][]; + }; + PaginatedRoleMembershipList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["RoleMembership"][]; + }; + PaginatedRunList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Run"][]; + }; + PaginatedSandboxEnvironmentListList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["SandboxEnvironmentList"][]; + }; + PaginatedSchemaPropertyGroupList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["SchemaPropertyGroup"][]; + }; + PaginatedScoreDefinitionList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ScoreDefinition"][]; + }; + PaginatedSessionGroupSummaryMinimalList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["SessionGroupSummaryMinimal"][]; + }; + PaginatedSessionRecordingList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["SessionRecording"][]; + }; + PaginatedSessionRecordingPlaylistList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["SessionRecordingPlaylist"][]; + }; + PaginatedSignalReportList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["SignalReport"][]; + }; + PaginatedSignalSourceConfigList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["SignalSourceConfig"][]; + }; + PaginatedSnapshotHistoryEntryList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["SnapshotHistoryEntry"][]; + }; + PaginatedSnapshotList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Snapshot"][]; + }; + PaginatedSubscriptionDeliveryList: { + /** + * Format: uri + * @example http://api.example.org/accounts/?cursor=cD00ODY%3D" + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?cursor=cj0xJnA9NDg3 + */ + previous?: string | null; + results: components["schemas"]["SubscriptionDelivery"][]; + }; + PaginatedSubscriptionList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Subscription"][]; + }; + PaginatedSurveyList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Survey"][]; + }; + PaginatedTableList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Table"][]; + }; + PaginatedTaggerList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Tagger"][]; + }; + PaginatedTaskAutomationList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["TaskAutomation"][]; + }; + PaginatedTaskList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Task"][]; + }; + PaginatedTaskRunDetailList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["TaskRunDetail"][]; + }; + PaginatedTaskSummaryList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["TaskSummary"][]; + }; + PaginatedTeamBasicList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["TeamBasic"][]; + }; + PaginatedThresholdWithAlertList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ThresholdWithAlert"][]; + }; + PaginatedTicketList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["Ticket"][]; + }; + PaginatedTicketViewList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["TicketView"][]; + }; + PaginatedToleratedHashEntryList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ToleratedHashEntry"][]; + }; + PaginatedTraceReviewList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["TraceReview"][]; + }; + PaginatedTrendingInsightList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["TrendingInsight"][]; + }; + PaginatedUserGitHubIntegrationListResponseList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["UserGitHubIntegrationListResponse"][]; + }; + PaginatedUserInterviewList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["UserInterview"][]; + }; + PaginatedUserList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["User"][]; + }; + PaginatedViewLinkList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["ViewLink"][]; + }; + PaginatedWebExperimentsAPIList: { + /** @example 123 */ + count: number; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=400&limit=100 + */ + next?: string | null; + /** + * Format: uri + * @example http://api.example.org/accounts/?offset=200&limit=100 + */ + previous?: string | null; + results: components["schemas"]["WebExperimentsAPI"][]; + }; + /** @description Serializer mixin that handles tags for objects. */ + PatchedAction: { + readonly id?: number; + /** @description Name of the action (must be unique within the project). */ + name?: string | null; + /** @description Human-readable description of what this action represents. */ + description?: string; + tags?: unknown[]; + /** @description Whether to post a notification to Slack when this action is triggered. */ + post_to_slack?: boolean; + /** @description Custom Slack message format. Supports templates with event properties. */ + slack_message_format?: string; + /** @description Action steps defining trigger conditions. Each step matches events by name, properties, URL, or element attributes. Multiple steps are OR-ed together. */ + steps?: components["schemas"]["ActionStepJSON"][]; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + deleted?: boolean; + readonly is_calculating?: boolean; + /** Format: date-time */ + last_calculated_at?: string; + readonly team_id?: number; + /** @default true */ + readonly is_action: boolean; + readonly bytecode_error?: string | null; + /** + * Format: date-time + * @description ISO 8601 timestamp when the action was pinned, or null if not pinned. Set any value to pin, null to unpin. + */ + pinned_at?: string | null; + readonly creation_context?: string | null; + /** create in folder */ + _create_in_folder?: string; + /** @description The effective access level the user has for this object */ + readonly user_access_level?: string | null; + }; + PatchedAddPersonsToStaticCohortRequest: { + /** @description List of person UUIDs to add to the cohort */ + person_ids?: string[]; + }; + PatchedAlert: { + /** Format: uuid */ + readonly id?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string; + /** @description Insight ID monitored by this alert. Note: Response returns full InsightBasicSerializer object. */ + insight?: number; + /** @description Human-readable name for the alert. */ + name?: string; + /** @description User IDs to subscribe to this alert. Note: Response returns full UserBasicSerializer object. */ + subscribed_users?: number[]; + /** @description Threshold configuration with bounds and type for evaluating the alert. */ + threshold?: components["schemas"]["Threshold"]; + /** @description Alert condition type. Determines how the value is evaluated: absolute_value, relative_increase, or relative_decrease. */ + condition?: components["schemas"]["AlertCondition"] | null; + /** @description Current alert state: Firing, Not firing, Errored, or Snoozed. */ + readonly state?: string; + /** @description Whether the alert is actively being evaluated. */ + enabled?: boolean; + /** Format: date-time */ + readonly last_notified_at?: string | null; + /** Format: date-time */ + readonly last_checked_at?: string | null; + /** Format: date-time */ + readonly next_check_at?: string | null; + /** @description Alert check results. By default returns the last 5. Use checks_date_from and checks_date_to (e.g. '-24h', '-7d') to get checks within a time window, checks_limit to cap how many are returned (default 5, max 500), and checks_offset to skip the newest N checks for pagination (0-based). Newest checks first. Only populated on retrieve. */ + readonly checks?: components["schemas"]["AlertCheck"][]; + /** @description Total alert checks matching the retrieve filters (date window). Only set on alert retrieve; omitted otherwise. */ + readonly checks_total?: number | null; + /** @description Trends-specific alert configuration. Includes series_index (which series to monitor) and check_ongoing_interval (whether to check the current incomplete interval). */ + config?: components["schemas"]["TrendsAlertConfig"] | null; + detector_config?: components["schemas"]["DetectorConfig"] | null; + /** + * @description How often the alert is checked: hourly, daily, weekly, or monthly. + * + * * `hourly` - hourly + * * `daily` - daily + * * `weekly` - weekly + * * `monthly` - monthly + */ + calculation_interval?: components["schemas"]["CalculationIntervalEnum"]; + /** @description Snooze the alert until this time. Pass a relative date string (e.g. '2h', '1d') or null to unsnooze. */ + snoozed_until?: string | null; + /** @description Skip alert evaluation on weekends (Saturday and Sunday, local to project timezone). */ + skip_weekend?: boolean | null; + /** @description Blocked local time windows (HH:MM in the project timezone). Interval is half-open [start, end): start inclusive, end exclusive. Use blocked_windows array of {start, end}. Null disables. */ + schedule_restriction?: components["schemas"]["AlertScheduleRestriction"] | null; + /** + * Format: double + * @description The last calculated value from the most recent alert check. + */ + readonly last_value?: number | null; + /** @description When enabled, an investigation agent runs on the state transition to firing and writes findings to a Notebook linked from the alert check. Only effective for detector-based (anomaly) alerts. */ + investigation_agent_enabled?: boolean; + /** @description When enabled (and investigation_agent_enabled is on), notification dispatch is held until the investigation agent produces a verdict. Notifications are suppressed when the verdict is false_positive (and optionally when inconclusive). A safety-net task force-fires after a few minutes if the investigation stalls. */ + investigation_gates_notifications?: boolean; + /** + * @description How to handle an 'inconclusive' verdict when notifications are gated. 'notify' is the safe default — an agent that can't be sure is itself useful signal. + * + * * `notify` - Notify + * * `suppress` - Suppress + */ + investigation_inconclusive_action?: components["schemas"]["InvestigationInconclusiveActionEnum"]; + }; + PatchedAnnotation: { + readonly id?: number; + /** @description Annotation text shown on charts to describe the change, release, or incident. */ + content?: string | null; + /** + * Format: date-time + * @description When this annotation happened (ISO 8601 timestamp). Used to position it on charts. + */ + date_marker?: string | null; + /** + * @description Who created this annotation. Use `USR` for user-created notes and `GIT` for bot/deployment notes. + * + * * `USR` - user + * * `GIT` - GitHub + */ + creation_type?: components["schemas"]["CreationTypeEnum"]; + dashboard_item?: number | null; + dashboard_id?: number | null; + readonly dashboard_name?: string | null; + readonly insight_short_id?: string | null; + readonly insight_name?: string | null; + readonly insight_derived_name?: string | null; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string | null; + /** Format: date-time */ + readonly updated_at?: string; + /** @description Soft-delete flag. Set to true to hide the annotation, or false to restore it. */ + deleted?: boolean; + /** + * @description Annotation visibility scope: `project`, `organization`, `dashboard`, or `dashboard_item`. `recording` is deprecated and rejected. + * + * * `dashboard_item` - insight + * * `dashboard` - dashboard + * * `project` - project + * * `organization` - organization + * * `recording` - recording + */ + scope?: components["schemas"]["AnnotationScopeEnum"]; + }; + PatchedApprovalPolicy: { + /** Format: uuid */ + readonly id?: string; + action_key?: string; + conditions?: unknown; + approver_config?: unknown; + allow_self_approve?: boolean; + bypass_org_membership_levels?: unknown; + bypass_roles?: string[]; + /** @description Auto-expire change requests after this duration */ + expires_after?: string; + enabled?: boolean; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string | null; + }; + /** + * @description Request body for create/partial_update on BatchExportViewSet. + * + * Mirrors the writeable fields of `BatchExportSerializer` but uses a polymorphic + * `destination` schema so integration_id is marked required on the types that need + * it. Responses continue to use `BatchExportSerializer`. + */ + PatchedBatchExportRequest: { + /** @description Human-readable name for the batch export. */ + name?: string; + /** + * @description Which data model to export (events, persons, sessions). + * + * * `events` - Events + * * `persons` - Persons + * * `sessions` - Sessions + */ + model?: components["schemas"]["ModelEnum"]; + /** @description Destination configuration. Required integration_id is enforced per destination type. */ + destination?: Omit; + /** + * @description How often the batch export should run. + * + * * `hour` - hour + * * `day` - day + * * `week` - week + * * `every 5 minutes` - every 5 minutes + * * `every 15 minutes` - every 15 minutes + */ + interval?: components["schemas"]["IntervalEnum"]; + /** @description Whether the batch export is paused. */ + paused?: boolean; + /** @description Optional HogQL SELECT defining a custom model schema. Only recommended in advanced use cases. */ + hogql_query?: string; + filters?: unknown; + /** @description IANA timezone name (e.g. 'America/New_York', 'Europe/London', 'UTC') controlling daily and weekly interval boundaries. */ + timezone?: string | null; + /** @description Day-of-week offset for weekly intervals (0=Sunday, 6=Saturday). */ + offset_day?: number | null; + /** @description Hour-of-day offset (0-23) for daily and weekly intervals. */ + offset_hour?: number | null; + }; + PatchedClusteringJob: { + /** Format: uuid */ + readonly id?: string; + name?: string; + analysis_level?: components["schemas"]["ClusteringJobAnalysisLevelEnum"]; + event_filters?: unknown; + enabled?: boolean; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + }; + PatchedCohort: { + readonly id?: number; + name?: string | null; + description?: string; + groups?: unknown; + deleted?: boolean; + filters?: components["schemas"]["CohortFilters"] | null; + query?: unknown; + readonly version?: number | null; + readonly pending_version?: number | null; + readonly is_calculating?: boolean; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string | null; + /** Format: date-time */ + readonly last_calculation?: string | null; + /** Format: date-time */ + readonly last_backfill_person_properties_at?: string | null; + readonly errors_calculating?: number; + readonly last_error_message?: string | null; + readonly count?: number | null; + is_static?: boolean; + /** + * @description Type of cohort based on filter complexity + * + * * `static` - static + * * `person_property` - person_property + * * `behavioral` - behavioral + * * `realtime` - realtime + * * `analytical` - analytical + */ + cohort_type?: components["schemas"]["CohortTypeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + readonly experiment_set?: number[]; + /** create in folder */ + _create_in_folder?: string; + /** + * create static person ids + * @default [] + */ + _create_static_person_ids: string[]; + }; + PatchedComment: { + /** Format: uuid */ + readonly id?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + deleted?: boolean | null; + mentions?: number[]; + slug?: string; + /** + * @description Whether this comment is an actionable task that can be marked complete. Tasks render with a checkbox in the UI and can be filtered as a separate kind. Cannot be set on replies (source_comment) or emoji reactions. Immutable after creation. + * @default false + */ + is_task: boolean; + /** @description The user who marked this task complete. Null for open tasks and non-task comments. */ + readonly completed_by?: components["schemas"]["UserBasic"] | null; + content?: string | null; + rich_content?: unknown; + readonly version?: number; + /** Format: date-time */ + readonly created_at?: string; + item_id?: string | null; + item_context?: unknown; + scope?: string; + /** + * Format: date-time + * @description ISO timestamp when the task was marked complete. Only meaningful when is_task is true. Read-only — toggled via the /complete and /reopen actions, not via PATCH. + */ + readonly completed_at?: string | null; + /** Format: uuid */ + source_comment?: string | null; + }; + PatchedConversation: { + /** Format: uuid */ + readonly id?: string; + readonly status?: components["schemas"]["ConversationStatus"]; + /** @description Title of the conversation. */ + readonly title?: string | null; + readonly user?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string | null; + /** Format: date-time */ + readonly updated_at?: string | null; + readonly type?: components["schemas"]["ConversationType"]; + /** @description Whether this conversation was created during an impersonated session (e.g., by support agents). Internal conversations are hidden from customers. */ + readonly is_internal?: boolean | null; + /** @description Unique key for Slack thread: '{workspace_id}:{channel}:{thread_ts}' */ + readonly slack_thread_key?: string | null; + /** @description Slack workspace subdomain (e.g. 'posthog' for posthog.slack.com) */ + readonly slack_workspace_domain?: string | null; + readonly messages?: { + [key: string]: unknown; + }[]; + readonly has_unsupported_content?: boolean; + readonly agent_mode?: string | null; + readonly is_sandbox?: boolean; + /** + * @description Return pending approval cards as structured data. + * + * Combines metadata from conversation.approval_decisions with payload from checkpoint + * interrupts (single source of truth for payload data). + */ + readonly pending_approvals?: { + [key: string]: unknown; + }[]; + }; + PatchedCustomerJourney: { + /** Format: uuid */ + readonly id?: string; + insight?: number; + name?: string; + description?: string | null; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: number | null; + /** Format: date-time */ + readonly updated_at?: string | null; + }; + PatchedCustomerProfileConfig: { + /** Format: uuid */ + readonly id?: string; + scope?: components["schemas"]["CustomerProfileConfigScopeEnum"]; + content?: unknown; + sidebar?: unknown; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string | null; + }; + /** @description Serializer mixin that handles tags for objects. */ + PatchedDashboard: { + readonly id?: number; + name?: string | null; + description?: string; + pinned?: boolean; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + last_accessed_at?: string | null; + /** Format: date-time */ + readonly last_viewed_at?: string | null; + readonly is_shared?: boolean; + deleted?: boolean; + readonly creation_mode?: components["schemas"]["CreationModeEnum"]; + readonly filters?: { + [key: string]: unknown; + }; + readonly variables?: { + [key: string]: unknown; + } | null; + /** @description Custom color mapping for breakdown values. */ + breakdown_colors?: unknown; + /** @description ID of the color theme used for chart visualizations. */ + data_color_theme_id?: number | null; + tags?: unknown[]; + restriction_level?: components["schemas"]["RestrictionLevelEnum"]; + readonly effective_restriction_level?: components["schemas"]["EffectivePrivilegeLevelEnum"]; + readonly effective_privilege_level?: components["schemas"]["EffectivePrivilegeLevelEnum"]; + /** @description The effective access level the user has for this object */ + readonly user_access_level?: string | null; + readonly access_control_version?: string; + /** Format: date-time */ + last_refresh?: string | null; + readonly persisted_filters?: { + [key: string]: unknown; + } | null; + readonly persisted_variables?: { + [key: string]: unknown; + } | null; + readonly team_id?: number; + /** @description List of quick filter IDs associated with this dashboard */ + quick_filter_ids?: string[] | null; + readonly tiles?: { + [key: string]: unknown; + }[] | null; + /** @description Template key to create the dashboard from a predefined template. */ + use_template?: string; + /** @description ID of an existing dashboard to duplicate. */ + use_dashboard?: number | null; + /** + * @description When deleting, also delete insights that are only on this dashboard. + * @default false + */ + delete_insights: boolean; + /** create in folder */ + _create_in_folder?: string; + }; + PatchedDashboardTemplate: { + /** Format: uuid */ + readonly id?: string; + template_name?: string | null; + dashboard_description?: string | null; + dashboard_filters?: unknown; + tags?: string[] | null; + tiles?: unknown; + variables?: unknown; + deleted?: boolean | null; + /** Format: date-time */ + readonly created_at?: string | null; + readonly created_by?: components["schemas"]["UserBasic"]; + image_url?: string | null; + readonly team_id?: number | null; + scope?: components["schemas"]["DashboardTemplateScopeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + availability_contexts?: string[] | null; + /** @description Manually curated; used to highlight templates in the UI. */ + is_featured?: boolean; + }; + PatchedDataColorTheme: { + readonly id?: number; + name?: string; + colors?: unknown; + readonly is_global?: boolean; + /** Format: date-time */ + readonly created_at?: string | null; + readonly created_by?: components["schemas"]["UserBasic"]; + }; + /** + * @description Shared methods for DataWarehouseSavedQuery serializers. + * + * This mixin is intended to be used with serializers.ModelSerializer subclasses. + */ + PatchedDataWarehouseSavedQuery: { + /** Format: uuid */ + readonly id?: string; + deleted?: boolean | null; + /** @description Unique name for the view. Used as the table name in HogQL queries and the node name in the data modeling Node. */ + name?: string; + /** @description HogQL query definition as a JSON object with a "query" key containing the SQL string and a "kind" key containing the query type. Example: {"query": "SELECT * FROM events LIMIT 100", "kind": "HogQLQuery"} */ + query?: unknown; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string; + readonly sync_frequency?: string | null; + readonly columns?: { + [key: string]: unknown; + }[]; + /** + * @description The status of when this SavedQuery last ran. + * + * * `Cancelled` - Cancelled + * * `Modified` - Modified + * * `Completed` - Completed + * * `Failed` - Failed + * * `Running` - Running + */ + readonly status?: components["schemas"]["SavedQueryStatusEnum"] | components["schemas"]["NullEnum"]; + /** Format: date-time */ + readonly last_run_at?: string | null; + readonly managed_viewset_kind?: string | null; + /** + * Format: uuid + * @description Optional folder ID used to organize this view in the SQL editor sidebar. + */ + folder_id?: string | null; + /** @description Folder name used to organize this view in the SQL editor sidebar. */ + readonly folder_name?: string | null; + readonly latest_error?: string | null; + /** @description Activity log ID from the last known edit. Used for conflict detection. */ + edited_history_id?: string | null; + readonly latest_history_id?: number | null; + /** @description If true, skip column inference and validation. For saving drafts. */ + soft_update?: boolean | null; + /** + * Format: uuid + * @description Optional DAG to place this view into + */ + dag_id?: string | null; + readonly is_materialized?: boolean | null; + /** + * @description Where this SavedQuery is created. + * + * * `data_warehouse` - Data Warehouse + * * `endpoint` - Endpoint + * * `managed_viewset` - Managed Viewset + */ + readonly origin?: components["schemas"]["OriginEnum"] | components["schemas"]["NullEnum"]; + /** @description Whether this view is for testing only and will auto-expire. */ + is_test?: boolean; + /** + * Format: date-time + * @description When this test view should be automatically deleted. + */ + readonly expires_at?: string | null; + /** @description The effective access level the user has for this object */ + readonly user_access_level?: string | null; + }; + /** @description Mixin for serializers to add user access control fields */ + PatchedDataWarehouseSavedQueryFolder: { + /** Format: uuid */ + readonly id?: string; + /** @description Display name for the folder used to organize saved queries in the SQL editor sidebar. */ + name?: string; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + readonly view_count?: number; + /** @description The effective access level the user has for this object */ + readonly user_access_level?: string | null; + }; + PatchedDataset: { + /** Format: uuid */ + readonly id?: string; + name?: string; + description?: string | null; + metadata?: unknown; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string | null; + deleted?: boolean | null; + readonly created_by?: components["schemas"]["UserBasic"]; + readonly team?: number; + }; + PatchedDatasetItem: { + /** Format: uuid */ + readonly id?: string; + /** Format: uuid */ + dataset?: string; + input?: unknown; + output?: unknown; + metadata?: unknown; + ref_trace_id?: string | null; + /** Format: date-time */ + ref_timestamp?: string | null; + ref_source_id?: string | null; + deleted?: boolean | null; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string | null; + readonly created_by?: components["schemas"]["UserBasic"]; + readonly team?: number; + }; + PatchedDesktopRecording: { + /** Format: uuid */ + readonly id?: string; + readonly team?: number; + readonly created_by?: number | null; + /** Format: uuid */ + readonly sdk_upload_id?: string; + /** Format: uuid */ + recall_recording_id?: string | null; + platform?: components["schemas"]["MeetingPlatformEnum"]; + meeting_title?: string | null; + /** Format: uri */ + meeting_url?: string | null; + duration_seconds?: number | null; + status?: components["schemas"]["DesktopRecordingStatusEnum"]; + notes?: string | null; + error_message?: string | null; + /** Format: uri */ + video_url?: string | null; + /** Format: int64 */ + video_size_bytes?: number | null; + /** @description List of participant names */ + participants?: string[]; + readonly transcript_text?: string; + /** @description Transcript segments with timestamps */ + transcript_segments?: components["schemas"]["TranscriptSegment"][]; + summary?: string | null; + /** @description AI-extracted tasks from transcript */ + extracted_tasks?: components["schemas"]["DesktopRecordingTask"][]; + /** Format: date-time */ + tasks_generated_at?: string | null; + /** Format: date-time */ + summary_generated_at?: string | null; + /** Format: date-time */ + started_at?: string; + /** Format: date-time */ + completed_at?: string | null; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + }; + PatchedEarlyAccessFeature: { + /** Format: uuid */ + readonly id?: string; + readonly feature_flag?: components["schemas"]["MinimalFeatureFlag"]; + /** @description The name of the early access feature. */ + name?: string; + /** @description A longer description of what this early access feature does, shown to users in the opt-in UI. */ + description?: string; + /** + * @description Lifecycle stage. Valid values: draft, concept, alpha, beta, general-availability, archived. Moving to an active stage (alpha/beta/general-availability) enables the feature flag for opted-in users. + * + * * `draft` - draft + * * `concept` - concept + * * `alpha` - alpha + * * `beta` - beta + * * `general-availability` - general availability + * * `archived` - archived + */ + stage?: components["schemas"]["StageEnum"]; + /** + * Format: uri + * @description URL to external documentation for this feature. Shown to users in the opt-in UI. + */ + documentation_url?: string; + /** @description Feature flag payload for this early access feature */ + readonly payload?: { + [key: string]: unknown; + }; + /** Format: date-time */ + readonly created_at?: string; + }; + PatchedElement: { + text?: string | null; + tag_name?: string | null; + attr_class?: string[] | null; + href?: string | null; + attr_id?: string | null; + nth_child?: number | null; + nth_of_type?: number | null; + attributes?: unknown; + order?: number | null; + }; + /** @description Schema for creating/updating endpoints. OpenAPI docs only — validation uses Pydantic. */ + PatchedEndpointRequest: { + /** @description Unique URL-safe name. Must start with a letter, only letters/numbers/hyphens/underscores, max 128 chars. */ + name?: string | null; + /** @description HogQL or insight query this endpoint executes. Changing this auto-creates a new version. */ + query?: unknown; + /** @description Human-readable description of what this endpoint returns. */ + description?: string | null; + /** @description How fresh the data should be, in seconds. Must be one of: 900 (15 min), 1800 (30 min), 3600 (1 h), 21600 (6 h), 43200 (12 h), 86400 (24 h, default), 604800 (7 d). Controls cache TTL and materialization sync frequency. */ + data_freshness_seconds?: number | null; + /** @description Whether this endpoint is available for execution via the API. */ + is_active?: boolean | null; + /** @description Whether query results are materialized to S3. */ + is_materialized?: boolean | null; + /** @description Short ID of the insight this endpoint was derived from. */ + derived_from_insight?: string | null; + /** @description Target a specific version for updates (defaults to current version). */ + version?: number | null; + /** @description Per-column bucket overrides for range variable materialization. Keys are column names, values are bucket keys. */ + bucket_overrides?: { + [key: string]: unknown; + } | null; + /** @description Set to true to soft-delete this endpoint. */ + deleted?: boolean | null; + }; + /** @description Serializer mixin that handles tags for objects. */ + PatchedEnterpriseEventDefinition: { + /** Format: uuid */ + readonly id?: string; + name?: string; + owner?: number | null; + description?: string | null; + tags?: unknown[]; + /** Format: date-time */ + readonly created_at?: string | null; + /** Format: date-time */ + readonly updated_at?: string; + readonly updated_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly last_seen_at?: string | null; + /** Format: date-time */ + readonly last_updated_at?: string; + verified?: boolean; + /** Format: date-time */ + readonly verified_at?: string | null; + readonly verified_by?: components["schemas"]["UserBasic"]; + hidden?: boolean | null; + enforcement_mode?: components["schemas"]["EnforcementModeEnum"]; + /** @description Name of a single property on this event that PostHog UIs should display alongside the event (for example `$pathname` on `$pageview`). When set, surfaces like the session replay inspector show the property's value next to the event name without the user having to open the event. */ + primary_property?: string | null; + readonly is_action?: boolean; + readonly action_id?: number; + readonly is_calculating?: boolean; + /** Format: date-time */ + readonly last_calculated_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** @default false */ + post_to_slack: boolean; + default_columns?: string[]; + readonly media_preview_urls?: string[]; + }; + /** @description Serializer mixin that handles tags for objects. */ + PatchedEnterprisePropertyDefinition: { + /** Format: uuid */ + readonly id?: string; + readonly name?: string; + description?: string | null; + tags?: unknown[]; + readonly is_numerical?: boolean; + /** Format: date-time */ + readonly updated_at?: string; + readonly updated_by?: components["schemas"]["UserBasic"]; + readonly is_seen_on_filtered_events?: boolean | null; + property_type?: components["schemas"]["PropertyDefinitionTypeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + verified?: boolean; + /** Format: date-time */ + readonly verified_at?: string | null; + readonly verified_by?: components["schemas"]["UserBasic"]; + hidden?: boolean | null; + }; + PatchedErrorTrackingAssignmentRule: { + /** Format: uuid */ + readonly id?: string; + filters?: unknown; + readonly assignee?: { + /** @enum {string} */ + type?: "user" | "role"; + id?: number | string; + } | null; + order_key?: number; + disabled_data?: unknown; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + }; + PatchedErrorTrackingAssignmentRuleUpdateRequest: { + /** @description Property-group filters that define when this rule matches incoming error events. */ + filters?: components["schemas"]["PropertyGroupFilterValue"] | null; + /** @description User or role to assign matching issues to. */ + assignee?: components["schemas"]["ErrorTrackingAssignmentRuleAssigneeRequest"] | null; + }; + PatchedErrorTrackingGroupingRule: { + /** Format: uuid */ + readonly id?: string; + filters?: unknown; + readonly assignee?: { + /** @enum {string} */ + type?: "user" | "role"; + id?: number | string; + } | null; + description?: string | null; + /** @description Issue linked to this rule */ + readonly issue?: { + [key: string]: string; + } | null; + order_key?: number; + disabled_data?: unknown; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + }; + PatchedErrorTrackingIssueFull: { + /** Format: uuid */ + readonly id?: string; + status?: components["schemas"]["ErrorTrackingIssueFullStatusEnum"]; + name?: string | null; + description?: string | null; + /** Format: date-time */ + first_seen?: string; + assignee?: components["schemas"]["ErrorTrackingIssueAssignment"]; + external_issues?: components["schemas"]["ErrorTrackingExternalReferenceResult"][]; + readonly cohort?: { + id?: number; + name?: string; + } | null; + }; + PatchedErrorTrackingRelease: { + /** Format: uuid */ + readonly id?: string; + hash_id?: string; + readonly team_id?: number; + /** Format: date-time */ + readonly created_at?: string; + metadata?: unknown; + version?: string; + project?: string; + }; + PatchedErrorTrackingSettings: { + /** @description Maximum number of exception events ingested per bucket for the entire project. Null removes the limit. */ + project_rate_limit_value?: number | null; + /** @description Bucket window over which the project-wide rate limit applies, in minutes. */ + project_rate_limit_bucket_size_minutes?: number | null; + /** @description Maximum number of exception events ingested per bucket for each individual issue. Null removes the limit. */ + per_issue_rate_limit_value?: number | null; + /** @description Bucket window over which the per-issue rate limit applies, in minutes. */ + per_issue_rate_limit_bucket_size_minutes?: number | null; + }; + PatchedErrorTrackingSpikeDetectionConfig: { + /** @description Time to wait before alerting again for the same issue after a spike is detected. */ + snooze_duration_minutes?: number; + /** @description The factor by which the current exception count must exceed the baseline to be considered a spike. */ + multiplier?: number; + /** @description The minimum number of exceptions required in a 5-minute window before a spike can be detected. */ + threshold?: number; + }; + PatchedErrorTrackingSuppressionRule: { + /** Format: uuid */ + readonly id?: string; + filters?: unknown; + order_key?: number; + disabled_data?: unknown; + /** Format: double */ + sampling_rate?: number; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + }; + PatchedEvaluation: { + /** Format: uuid */ + readonly id?: string; + /** @description Name of the evaluation. */ + name?: string; + /** @description Optional description of what this evaluation checks. */ + description?: string; + /** @description Whether the evaluation runs automatically on new $ai_generation events. */ + enabled?: boolean; + readonly status?: components["schemas"]["EvaluationStatusEnum"]; + readonly status_reason?: components["schemas"]["StatusReasonEnum"] | components["schemas"]["NullEnum"]; + /** + * @description 'llm_judge' uses an LLM to score outputs against a prompt; 'hog' runs deterministic Hog code. + * + * * `llm_judge` - LLM as a judge + * * `hog` - Hog + */ + evaluation_type?: components["schemas"]["EvaluationTypeEnum"]; + /** @description Configuration dict. For 'llm_judge': {prompt}. For 'hog': {source}. */ + evaluation_config?: { + /** @description Evaluation criteria for the LLM judge. Describe what makes a good vs bad response. */ + prompt: string; + } | { + /** @description Hog source code. Must return true (pass), false (fail), or null for N/A. */ + source: string; + }; + /** + * @description Output format. Currently only 'boolean' is supported. + * + * * `boolean` - Boolean (Pass/Fail) + */ + output_type?: components["schemas"]["OutputTypeEnum"]; + /** @description Output config. For 'boolean' output_type: {allows_na} to permit N/A results. */ + output_config?: { + /** + * @description Whether the evaluation can return N/A for non-applicable generations. + * @default false + */ + allows_na: boolean; + }; + /** @description Optional trigger conditions to filter which events are evaluated. OR between condition sets, AND within each. */ + conditions?: unknown; + model_configuration?: components["schemas"]["ModelConfiguration"] | null; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** @description Set to true to soft-delete the evaluation. */ + deleted?: boolean; + }; + PatchedEvaluationReport: { + /** Format: uuid */ + readonly id?: string; + /** + * Format: uuid + * @description UUID of the evaluation this report config belongs to. + */ + evaluation?: string; + /** + * @description How report generation is triggered. 'every_n' fires once N new evaluation results have accumulated (subject to cooldown_minutes and daily_run_cap). 'scheduled' fires on the cadence defined by rrule + starts_at + timezone_name. + * + * * `scheduled` - Scheduled + * * `every_n` - Every N + */ + frequency?: components["schemas"]["EvaluationReportFrequencyEnum"]; + /** @description RFC 5545 recurrence rule string (e.g. 'FREQ=WEEKLY;BYDAY=MO'). Must not contain DTSTART — the anchor is set via starts_at. Required when frequency is 'scheduled'; ignored otherwise. */ + rrule?: string; + /** + * Format: date-time + * @description Anchor datetime for the rrule (ISO 8601, UTC — must end in 'Z'). Local-time interpretation is controlled by timezone_name. Required when frequency is 'scheduled'; ignored otherwise. + */ + starts_at?: string | null; + /** @description IANA timezone name used to expand the rrule in local time so e.g. '9am' stays at 9am across DST transitions (e.g. 'America/New_York'). Defaults to 'UTC'. */ + timezone_name?: string; + /** Format: date-time */ + readonly next_delivery_date?: string | null; + /** @description List of delivery targets. Each entry is either {type: 'email', value: 'user@example.com'} or {type: 'slack', integration_id: , channel: ''}. Slack integration_id must belong to this team. */ + delivery_targets?: unknown; + /** @description Maximum number of evaluation runs included in each report. Defaults to 200. */ + max_sample_size?: number; + /** @description Whether report delivery is active. Disabled configs do not fire. */ + enabled?: boolean; + /** @description Set to true to soft-delete this report config. */ + deleted?: boolean; + /** Format: date-time */ + readonly last_delivered_at?: string | null; + /** @description Optional custom instructions appended to the AI report prompt to steer focus, scope, or section choices without modifying the base prompt. */ + report_prompt_guidance?: string; + /** @description Number of new evaluation results that triggers a report (every_n mode only). Min 10, max 10000. Defaults to 100. Required when frequency is 'every_n'. */ + trigger_threshold?: number | null; + /** @description Minimum minutes between count-triggered reports to prevent spam (every_n mode only). Min 60, max 1440 (24 hours). Defaults to 60. */ + cooldown_minutes?: number; + /** @description Maximum count-triggered report runs per calendar day (UTC). Min 1, max 24 (one per cooldown window). Defaults to 10. */ + daily_run_cap?: number; + readonly created_by?: number | null; + /** Format: date-time */ + readonly created_at?: string; + }; + PatchedEventSchema: { + /** Format: uuid */ + readonly id?: string; + /** Format: uuid */ + event_definition?: string; + readonly property_group?: components["schemas"]["SchemaPropertyGroup"]; + /** Format: uuid */ + property_group_id?: string; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + }; + /** @description Mixin for serializers to add user access control fields */ + PatchedExperiment: { + readonly id?: number; + /** @description Name of the experiment. */ + name?: string; + /** @description Description of the experiment hypothesis and expected outcomes. */ + description?: string | null; + /** Format: date-time */ + start_date?: string | null; + /** Format: date-time */ + end_date?: string | null; + /** @description Unique key for the experiment's feature flag. Letters, numbers, hyphens, and underscores only. Search existing flags with the feature-flags-get-all tool first — reuse an existing flag when possible. */ + feature_flag_key?: string; + readonly feature_flag?: { + [key: string]: unknown; + }; + readonly holdout?: components["schemas"]["ExperimentHoldout"]; + /** @description ID of a holdout group to exclude from the experiment. */ + holdout_id?: number | null; + readonly exposure_cohort?: number | null; + /** @description Variant definitions and rollout configuration. Set feature_flag_variants to customize the split (default: 50/50 control/test). Each variant needs a key and split_percent (the variant's share of traffic); percentages must sum to 100. Set rollout_percentage (0-100, default 100) to limit what fraction of users enter the experiment. Set minimum_detectable_effect (percentage, suggest 20-30) to control statistical power. */ + parameters?: components["schemas"]["ExperimentParameters"] | null; + secondary_metrics?: unknown; + readonly saved_metrics?: components["schemas"]["ExperimentToSavedMetric"][]; + /** @description IDs of shared saved metrics to attach to this experiment. Each item has 'id' (saved metric ID) and 'metadata' with 'type' (primary or secondary). */ + saved_metrics_ids?: unknown[] | null; + filters?: unknown; + /** + * @description Whether the experiment is archived. + * @default false + */ + archived: boolean; + deleted?: boolean | null; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + /** + * @description Experiment type: web for frontend UI changes, product for backend/API changes. + * + * * `web` - web + * * `product` - product + */ + type?: components["schemas"]["ExperimentTypeEnum"] | components["schemas"]["NullEnum"]; + /** @description Exposure configuration including filter test accounts and custom exposure events. */ + exposure_criteria?: components["schemas"]["ExperimentApiExposureCriteria"] | null; + /** @description Primary experiment metrics. Each metric must have kind='ExperimentMetric' and a metric_type: 'mean' (set source to an EventsNode with an event name), 'funnel' (set series to an array of EventsNode steps), 'ratio' (set numerator and denominator EventsNode entries), or 'retention' (set start_event and completion_event). Use the event-definitions-list tool to find available events in the project. */ + metrics?: components["schemas"]["_ExperimentApiMetricsList"] | null; + /** @description Secondary metrics for additional measurements. Same format as primary metrics. */ + metrics_secondary?: components["schemas"]["_ExperimentApiMetricsList"] | null; + stats_config?: unknown; + scheduling_config?: unknown; + /** + * @description Suppresses the validation that rejects metrics referencing events not yet ingested by this project. REQUIRES explicit user confirmation before being set to true — never flip this silently to retry a failed call. The default validation catches typo'd event names and missing instrumentation. Set this to true only when the user has confirmed the event is intentional (e.g. they are about to instrument it). + * @default false + */ + allow_unknown_events: boolean; + /** create in folder */ + _create_in_folder?: string; + /** + * @description Experiment conclusion: won, lost, inconclusive, stopped_early, or invalid. + * + * * `won` - won + * * `lost` - lost + * * `inconclusive` - inconclusive + * * `stopped_early` - stopped_early + * * `invalid` - invalid + */ + conclusion?: components["schemas"]["ConclusionEnum"] | components["schemas"]["NullEnum"]; + /** @description Comment about the experiment conclusion. */ + conclusion_comment?: string | null; + primary_metrics_ordered_uuids?: unknown; + secondary_metrics_ordered_uuids?: unknown; + only_count_matured_users?: boolean; + /** + * @description When true, sync feature flag configuration from parameters to the linked feature flag. Draft experiments always sync regardless of update_feature_flag_params, so only required for non-drafts. + * @default false + */ + update_feature_flag_params: boolean; + /** @description Experiment lifecycle state: 'draft' (not yet launched), 'running' (launched with active feature flag), 'paused' (running with feature flag deactivated — virtual state derived from feature_flag.active, not stored), 'stopped' (ended). */ + readonly status?: components["schemas"]["ExperimentStatusEnum"]; + /** @description The effective access level the user has for this object */ + readonly user_access_level?: string | null; + }; + PatchedExperimentHoldout: { + readonly id?: number; + name?: string; + description?: string | null; + filters?: unknown; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + }; + /** @description Mixin for serializers to add user access control fields */ + PatchedExperimentSavedMetric: { + readonly id?: number; + name?: string; + description?: string | null; + query?: unknown; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + tags?: unknown[]; + /** @description The effective access level the user has for this object */ + readonly user_access_level?: string | null; + }; + PatchedExternalDataSchema: { + /** Format: uuid */ + readonly id?: string; + readonly name?: string; + readonly label?: string | null; + readonly table?: { + [key: string]: unknown; + } | null; + should_sync?: boolean; + /** Format: date-time */ + readonly last_synced_at?: string | null; + /** @description The latest error that occurred when syncing this schema. */ + readonly latest_error?: string | null; + readonly incremental?: boolean; + readonly status?: string | null; + /** + * @description Sync strategy: incremental, full_refresh, append, or cdc. + * + * * `full_refresh` - full_refresh + * * `incremental` - incremental + * * `append` - append + * * `webhook` - webhook + * * `cdc` - cdc + */ + sync_type?: components["schemas"]["SyncTypeEnum"] | components["schemas"]["NullEnum"]; + /** @description Column name used to track sync progress. */ + incremental_field?: string | null; + /** + * @description Data type of the incremental field. + * + * * `integer` - integer + * * `numeric` - numeric + * * `datetime` - datetime + * * `date` - date + * * `timestamp` - timestamp + * * `objectid` - objectid + */ + incremental_field_type?: components["schemas"]["IncrementalFieldTypeEnum"] | components["schemas"]["NullEnum"]; + /** + * @description How often to sync. + * + * * `never` - never + * * `1min` - 1min + * * `5min` - 5min + * * `15min` - 15min + * * `30min` - 30min + * * `1hour` - 1hour + * * `6hour` - 6hour + * * `12hour` - 12hour + * * `24hour` - 24hour + * * `7day` - 7day + * * `30day` - 30day + */ + sync_frequency?: components["schemas"]["SyncFrequencyEnum"] | components["schemas"]["NullEnum"]; + /** + * Format: time + * @description UTC time of day to run the sync (HH:MM:SS). + */ + sync_time_of_day?: string | null; + readonly description?: string | null; + /** @description Column names for primary key deduplication. */ + primary_key_columns?: string[] | null; + /** + * @description For CDC syncs: consolidated, cdc_only, or both. + * + * * `consolidated` - consolidated + * * `cdc_only` - cdc_only + * * `both` - both + */ + cdc_table_mode?: components["schemas"]["CdcTableModeEnum"] | components["schemas"]["NullEnum"]; + }; + PatchedExternalDataSourceBulkUpdateSchemas: { + /** @description Schema updates to apply in a single batch. */ + schemas?: components["schemas"]["ExternalDataSourceBulkUpdateSchema"][]; + }; + /** @description Mixin for serializers to add user access control fields */ + PatchedExternalDataSourceSerializers: { + /** Format: uuid */ + readonly id?: string; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: string | null; + /** + * @description How this source was created. Defaults to `api` on create when omitted. `web` for the in-app UI, `api` for direct API callers, `mcp` for agent/MCP tool calls. Ignored on update. + * + * * `web` - web + * * `api` - api + * * `mcp` - mcp + */ + created_via?: components["schemas"]["CreatedViaEnum"]; + readonly status?: string; + client_secret?: string; + account_id?: string; + readonly source_type?: components["schemas"]["ExternalDataSourceTypeEnum"]; + readonly latest_error?: string | null; + prefix?: string | null; + description?: string | null; + readonly access_method?: components["schemas"]["AccessMethodEnum"]; + /** + * @description Backend engine detected for the direct connection. + * + * * `duckdb` - duckdb + * * `postgres` - postgres + */ + readonly engine?: components["schemas"]["EngineEnum"] | components["schemas"]["NullEnum"]; + readonly last_run_at?: string | null; + readonly schemas?: { + [key: string]: unknown; + }[]; + job_inputs?: unknown; + readonly revenue_analytics_config?: components["schemas"]["ExternalDataSourceRevenueAnalyticsConfig"]; + /** @description The effective access level the user has for this object */ + readonly user_access_level?: string | null; + readonly supports_webhooks?: boolean; + }; + PatchedFeatureFlagPartialUpdateRequestSchema: { + /** @description Feature flag key. */ + key?: string; + /** @description Feature flag description (stored in the `name` field for backwards compatibility). */ + name?: string; + /** @description Feature flag targeting configuration. */ + filters?: components["schemas"]["FeatureFlagFiltersSchema"]; + /** @description Whether the feature flag is active. */ + active?: boolean; + /** @description Organizational tags for this feature flag. */ + tags?: string[]; + /** @description Evaluation contexts that control where this flag evaluates at runtime. */ + evaluation_contexts?: string[]; + }; + PatchedFileSystem: { + /** Format: uuid */ + readonly id?: string; + path?: string; + readonly depth?: number | null; + type?: string; + ref?: string | null; + href?: string | null; + meta?: unknown; + shortcut?: boolean | null; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly last_viewed_at?: string | null; + }; + PatchedFileSystemShortcut: { + /** Format: uuid */ + readonly id?: string; + path?: string; + type?: string; + ref?: string | null; + href?: string | null; + order?: number; + /** Format: date-time */ + readonly created_at?: string; + }; + PatchedGroupType: { + readonly group_type?: string; + readonly group_type_index?: number; + name_singular?: string | null; + name_plural?: string | null; + detail_dashboard?: number | null; + default_columns?: string[] | null; + /** Format: date-time */ + created_at?: string | null; + }; + PatchedGroupUsageMetric: { + /** Format: uuid */ + readonly id?: string; + /** @description Name of the usage metric. Must be unique per group type within the project. */ + name?: string; + /** + * @description How the metric value is formatted in the UI. One of `numeric` or `currency`. + * + * * `numeric` - numeric + * * `currency` - currency + * @default numeric + */ + format: components["schemas"]["GroupUsageMetricFormatEnum"]; + /** + * @description Rolling time window in days used to compute the metric. Defaults to 7. + * @default 7 + */ + interval: number; + /** + * @description Visual representation in the UI. One of `number` or `sparkline`. + * + * * `number` - number + * * `sparkline` - sparkline + * @default number + */ + display: components["schemas"]["GroupUsageMetricDisplayEnum"]; + /** + * @description Filter definition for the metric. Two shapes are accepted, discriminated by an optional `source` key. + * + * **Events** (default, when `source` is missing or `"events"`): HogFunction filter shape — `events: [...]`, optional `actions: [...]`, `properties: [...]`, `filter_test_accounts: bool`. + * + * **Data warehouse** (`source: "data_warehouse"`): `table_name` (synced DW table), `timestamp_field` (timestamp column or HogQL expression), `key_field` (column whose value matches the entity key). Currently DW metrics only render on group profiles — person profiles are not yet supported. + */ + filters?: { + [key: string]: unknown; + }; + /** + * @description Aggregation function. `count` counts matching events; `sum` sums the value of `math_property` on matching events. + * + * * `count` - count + * * `sum` - sum + * @default count + */ + math: components["schemas"]["MathEnum"]; + /** @description Required when `math` is `sum`; must be empty when `math` is `count`. For events metrics this is an event property name. For data warehouse metrics this is the column name (or HogQL expression) to sum on the DW table. */ + math_property?: string | null; + }; + PatchedHealthIssue: { + /** Format: uuid */ + readonly id?: string; + readonly kind?: string; + readonly severity?: components["schemas"]["HealthIssueSeverityEnum"]; + readonly status?: components["schemas"]["HealthIssueStatusEnum"]; + dismissed?: boolean; + readonly payload?: unknown; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + /** Format: date-time */ + readonly resolved_at?: string | null; + }; + PatchedHeatmapScreenshotResponse: { + /** Format: uuid */ + readonly id?: string; + readonly short_id?: string; + name?: string | null; + /** Format: uri */ + url?: string; + /** + * Format: uri + * @description URL for fetching heatmap data + */ + data_url?: string | null; + target_widths?: unknown; + type?: components["schemas"]["HeatmapScreenshotResponseTypeEnum"]; + readonly status?: components["schemas"]["HeatmapScreenshotResponseStatusEnum"]; + readonly has_content?: boolean; + readonly snapshots?: { + [key: string]: unknown; + }[]; + deleted?: boolean; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + readonly exception?: string | null; + }; + PatchedHogFlow: { + /** Format: uuid */ + readonly id?: string; + name?: string | null; + description?: string; + readonly version?: number; + status?: components["schemas"]["HogFlowStatusEnum"]; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly updated_at?: string; + trigger?: unknown; + trigger_masking?: components["schemas"]["HogFlowMasking"] | null; + conversion?: unknown; + exit_condition?: components["schemas"]["ExitConditionEnum"]; + edges?: unknown; + actions?: components["schemas"]["HogFlowAction"][]; + readonly abort_action?: string | null; + variables?: { + [key: string]: string; + }[]; + readonly billable_action_types?: unknown; + }; + PatchedHogFunction: { + /** Format: uuid */ + readonly id?: string; + /** + * @description Function type: destination, site_destination, internal_destination, source_webhook, warehouse_source_webhook, site_app, or transformation. + * + * * `destination` - Destination + * * `site_destination` - Site Destination + * * `internal_destination` - Internal Destination + * * `source_webhook` - Source Webhook + * * `warehouse_source_webhook` - Warehouse Source Webhook + * * `site_app` - Site App + * * `transformation` - Transformation + */ + type?: components["schemas"]["HogFunctionTypeEnum"] | components["schemas"]["NullEnum"]; + /** @description Display name for the function. */ + name?: string | null; + /** @description Human-readable description of what this function does. */ + description?: string; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly updated_at?: string; + /** @description Whether the function is active and processing events. */ + enabled?: boolean; + /** @description Soft-delete flag. Set to true to archive the function. */ + deleted?: boolean; + /** @description Source code. Hog language for most types; TypeScript for site_destination and site_app. */ + hog?: string; + readonly bytecode?: unknown; + readonly transpiled?: string | null; + /** @description Schema defining the configurable input parameters for this function. */ + inputs_schema?: components["schemas"]["InputsSchemaItem"][]; + /** @description Values for each input defined in inputs_schema. */ + inputs?: { + [key: string]: components["schemas"]["InputsItem"]; + }; + /** @description Event filters that control which events trigger this function. */ + filters?: components["schemas"]["HogFunctionFilters"]; + /** @description PII masking configuration with TTL, threshold, and hash expression. */ + masking?: components["schemas"]["HogFunctionMasking"] | null; + /** @description Event-to-destination field mappings. Only for destination and site_destination types. */ + mappings?: components["schemas"]["Mappings"][] | null; + /** @description URL for the function's icon displayed in the UI. */ + icon_url?: string | null; + readonly template?: components["schemas"]["HogFunctionTemplate"]; + /** @description ID of the template to create this function from. */ + template_id?: string | null; + readonly status?: components["schemas"]["HogFunctionStatus"] | null; + /** @description Execution priority for transformations. Lower values run first. */ + execution_order?: number | null; + /** create in folder */ + _create_in_folder?: string; + /** Format: uuid */ + readonly batch_export_id?: string | null; + }; + PatchedHogFunctionRearrange: { + /** @description Map of hog function UUIDs to their new execution_order values. */ + orders?: { + [key: string]: number; + }; + }; + /** @description Simplified serializer to speed response times when loading large amounts of objects. */ + PatchedInsight: { + readonly id?: number; + readonly short_id?: string; + name?: string | null; + derived_name?: string | null; + query?: components["schemas"]["_InsightQuerySchema"] | null; + order?: number | null; + deleted?: boolean; + /** + * @description DEPRECATED. Will be removed in a future release. Use dashboard_tiles instead. + * A dashboard ID for each of the dashboards that this insight is displayed on. + */ + dashboards?: number[]; + /** @description A dashboard tile ID and dashboard_id for each of the dashboards that this insight is displayed on. */ + readonly dashboard_tiles?: components["schemas"]["DashboardTileBasic"][]; + /** + * Format: date-time + * @description The datetime this insight's results were generated. + * If added to one or more dashboards the insight can be refreshed separately on each. + * Returns the appropriate last_refresh datetime for the context the insight is viewed in + * (see from_dashboard query parameter). + */ + readonly last_refresh?: string | null; + /** + * Format: date-time + * @description The target age of the cached results for this insight. + */ + readonly cache_target_age?: string | null; + /** + * Format: date-time + * @description The earliest possible datetime at which we'll allow the cached results for this insight to be refreshed + * by querying the database. + */ + readonly next_allowed_client_refresh?: string | null; + readonly result?: unknown; + readonly hasMore?: boolean | null; + readonly columns?: string[] | null; + /** Format: date-time */ + readonly created_at?: string | null; + readonly created_by?: components["schemas"]["UserBasic"]; + description?: string | null; + /** Format: date-time */ + readonly updated_at?: string; + tags?: unknown[]; + favorited?: boolean; + /** Format: date-time */ + readonly last_modified_at?: string; + readonly last_modified_by?: components["schemas"]["UserBasic"]; + readonly is_sample?: boolean; + readonly effective_restriction_level?: components["schemas"]["EffectivePrivilegeLevelEnum"]; + readonly effective_privilege_level?: components["schemas"]["EffectivePrivilegeLevelEnum"]; + /** @description The effective access level the user has for this object */ + readonly user_access_level?: string | null; + /** @description The timezone this chart is displayed in. */ + readonly timezone?: string | null; + readonly is_cached?: boolean; + readonly query_status?: unknown; + readonly hogql?: string | null; + readonly types?: unknown[] | null; + readonly resolved_date_range?: { + /** Format: date-time */ + date_from?: string; + /** Format: date-time */ + date_to?: string; + } | null; + /** create in folder */ + _create_in_folder?: string; + readonly alerts?: unknown[]; + /** Format: date-time */ + readonly last_viewed_at?: string | null; + }; + PatchedInsightVariable: { + /** + * Format: uuid + * @description UUID of the SQL variable. + */ + readonly id?: string; + /** @description Human-readable name for the SQL variable. */ + name?: string; + /** + * @description Variable type. Controls how the value is rendered and substituted in HogQL. + * + * * `String` - String + * * `Number` - Number + * * `Boolean` - Boolean + * * `List` - List + * * `Date` - Date + */ + type?: components["schemas"]["InsightVariableTypeEnum"]; + /** @description Default value used when a query references this variable. */ + default_value?: unknown; + /** @description ID of the user who created the SQL variable. */ + readonly created_by?: number | null; + /** + * Format: date-time + * @description Timestamp when the SQL variable was created. + */ + readonly created_at?: string; + /** @description Generated code-safe name used in HogQL as {variables.code_name}. Derived from name. */ + readonly code_name?: string | null; + /** @description Allowed values for List variables. Null for other variable types. */ + values?: unknown; + }; + /** @description Standard Integration serializer. */ + PatchedIntegrationConfig: { + readonly id?: number; + kind?: components["schemas"]["IntegrationKindEnum"]; + config?: unknown; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + readonly errors?: string; + readonly display_name?: string; + }; + PatchedJsSnippetVersion: { + /** @description Version pin: null for latest, "1.358.0" for exact, "1" for major, "1.358" for minor */ + js_snippet_version?: string | null; + }; + PatchedLLMPromptPublish: { + /** @description Full prompt payload to publish as a new version. Mutually exclusive with edits. */ + prompt?: unknown; + /** @description List of find/replace operations to apply to the current prompt version. Each edit's 'old' text must match exactly once. Edits are applied sequentially. Mutually exclusive with prompt. */ + edits?: components["schemas"]["LLMPromptEditOperation"][]; + /** @description Latest version you are editing from. Used for optimistic concurrency checks. */ + base_version?: number; + }; + PatchedLLMProviderKey: { + /** Format: uuid */ + readonly id?: string; + provider?: components["schemas"]["LLMProviderEnum"]; + name?: string; + readonly state?: components["schemas"]["LLMProviderKeyStateEnum"]; + readonly error_message?: string | null; + api_key?: string; + readonly api_key_masked?: string; + /** + * Format: uri + * @description Azure OpenAI endpoint URL + */ + azure_endpoint?: string; + /** @description Azure OpenAI API version */ + api_version?: string; + /** @description Azure endpoint (read-only, for display) */ + readonly azure_endpoint_display?: string | null; + /** @description Azure API version (read-only, for display) */ + readonly api_version_display?: string | null; + /** @default false */ + set_as_active: boolean; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly last_used_at?: string | null; + }; + PatchedLLMSkillPublish: { + /** @description Full skill body (SKILL.md instruction content) to publish as a new version. Mutually exclusive with edits. */ + body?: string; + /** @description List of find/replace operations to apply to the current skill body. Each edit's 'old' text must match exactly once. Edits are applied sequentially. Mutually exclusive with body. */ + edits?: components["schemas"]["LLMSkillEditOperation"][]; + /** @description Updated description for the new version. */ + description?: string; + /** @description License name or reference. */ + license?: string; + /** @description Environment requirements. */ + compatibility?: string; + /** @description List of pre-approved tools the skill may use. */ + allowed_tools?: string[]; + /** @description Arbitrary key-value metadata. */ + metadata?: { + [key: string]: unknown; + }; + /** @description Bundled files to include with this version. Replaces all files from the previous version. Mutually exclusive with file_edits. */ + files?: components["schemas"]["LLMSkillFileInput"][]; + /** @description Per-file find/replace updates. Each entry targets one existing file by path and applies sequential edits to its content. Non-targeted files carry forward unchanged. Cannot add, remove, or rename files — use 'files' for that. Mutually exclusive with files. */ + file_edits?: components["schemas"]["LLMSkillFileEdit"][]; + /** @description Latest version you are editing from. Used for optimistic concurrency checks. */ + base_version?: number; + }; + PatchedLiveDebuggerBreakpoint: { + /** Format: uuid */ + readonly id?: string; + repository?: string | null; + filename?: string; + line_number?: number; + enabled?: boolean; + condition?: string | null; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + }; + PatchedLogsAlertConfiguration: { + /** + * Format: uuid + * @description Unique identifier for this alert. + */ + readonly id?: string; + /** @description Human-readable name for this alert. Defaults to 'Untitled alert' on create when omitted. */ + name?: string; + /** + * @description Whether the alert is actively being evaluated. Disabling resets the state to not_firing. + * @default true + */ + enabled: boolean; + /** @description Filter criteria — subset of LogsViewerFilters. Must contain at least one of: severityLevels (list of severity strings), serviceNames (list of service name strings), or filterGroup (property filter group object). May be empty on draft alerts (enabled=false). */ + filters?: unknown; + /** + * @description Number of matching log entries that constitutes a threshold breach within the evaluation window. Defaults to 100. + * @default 100 + */ + threshold_count: number; + /** + * @description Whether the alert fires when the count is above or below the threshold. + * + * * `above` - Above + * * `below` - Below + * @default above + */ + threshold_operator: components["schemas"]["ThresholdOperatorEnum"]; + /** + * @description Time window in minutes over which log entries are counted. Allowed values: 5, 10, 15, 30, 60. + * @default 5 + */ + window_minutes: number; + /** @description How often the alert is evaluated, in minutes. Server-managed. */ + readonly check_interval_minutes?: number; + /** + * @description Current alert state: not_firing, firing, pending_resolve, errored, or snoozed. Server-managed. + * + * * `not_firing` - Not firing + * * `firing` - Firing + * * `pending_resolve` - Pending resolve + * * `errored` - Errored + * * `snoozed` - Snoozed + * * `broken` - Broken + */ + readonly state?: components["schemas"]["LogsAlertConfigurationStateEnum"]; + /** + * @description Total number of check periods in the sliding evaluation window for firing (M in N-of-M). + * @default 1 + */ + evaluation_periods: number; + /** + * @description How many periods within the evaluation window must breach the threshold to fire (N in N-of-M). + * @default 1 + */ + datapoints_to_alarm: number; + /** + * @description Minimum minutes between repeated notifications after the alert fires. 0 means no cooldown. + * @default 0 + */ + cooldown_minutes: number; + /** + * Format: date-time + * @description ISO 8601 timestamp until which the alert is snoozed. Set to null to unsnooze. + */ + snooze_until?: string | null; + /** + * Format: date-time + * @description When the next evaluation is scheduled. Server-managed. + */ + readonly next_check_at?: string | null; + /** + * Format: date-time + * @description When the last notification was sent. Server-managed. + */ + readonly last_notified_at?: string | null; + /** + * Format: date-time + * @description When the alert was last evaluated. Server-managed. + */ + readonly last_checked_at?: string | null; + /** @description Number of consecutive evaluation failures. Resets on success. Server-managed. */ + readonly consecutive_failures?: number; + /** @description Error message from the most recent errored check, or null if the alert's most recent check was successful. Sourced from LogsAlertEvent without denormalization so retention-aware cleanup rules stay the only source of truth. */ + readonly last_error_message?: string | null; + /** @description Continuous state intervals over the last 24h, ordered oldest-first. Each interval covers a span during which (state, enabled) was constant. Derived from LogsAlertEvent rows walked in chronological order; consecutive identical intervals are collapsed. Drives the 'Last 24h' status bar on the alert list. */ + readonly state_timeline?: components["schemas"]["LogsAlertStateInterval"][]; + /** @description Notification destination types configured for this alert — e.g. 'slack', 'webhook'. Empty list means no notifications will fire. One or more destinations should be added after creating an alert. */ + readonly destination_types?: components["schemas"]["NotificationDestinationTypeEnum"][]; + /** + * Format: date-time + * @description When the alert was first enabled. Null means the alert is still in draft state. + */ + readonly first_enabled_at?: string | null; + /** + * Format: date-time + * @description When the alert was created. + */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** + * Format: date-time + * @description When the alert was last modified. + */ + readonly updated_at?: string | null; + }; + PatchedLogsSamplingRule: { + /** + * Format: uuid + * @description Unique identifier for this sampling rule. + */ + readonly id?: string; + /** @description User-visible label for this rule. */ + name?: string; + /** + * @description When false, the rule is ignored by ingestion and listing UIs that show active rules only. + * @default false + */ + enabled: boolean; + /** @description Lower numbers are evaluated first; the first matching rule wins. Omit to append after existing rules. */ + priority?: number | null; + /** + * @description Rule kind: severity_sampling, path_drop, or rate_limit (caps logs/sec for scope_service at ingestion). + * + * * `severity_sampling` - Severity-based reduction + * * `path_drop` - Path exclusion + * * `rate_limit` - Rate limit + */ + rule_type?: components["schemas"]["RuleTypeEnum"]; + /** @description If set, the rule applies only to this service name; null means all services. */ + scope_service?: string | null; + /** @description Optional regex matched against a path-like log attribute when present. */ + scope_path_pattern?: string | null; + /** @description Optional list of predicates over string attributes, e.g. [{"key":"http.route","op":"eq","value":"/api"}]. */ + scope_attribute_filters?: { + [key: string]: unknown; + }[]; + /** @description Type-specific JSON. For path_drop: object with required `patterns` (list of regex strings) and optional `match_attribute_key` (string). When `match_attribute_key` is omitted or empty, patterns match the same virtual path string as ingestion (url.path, http.path, http.route, path). When set, each pattern is tested only against that string attribute on the log record. For severity_sampling: object with `actions` per severity level and optional `always_keep`. For rate_limit: object with required `logs_per_second` (integer 1–1000000) and optional `burst_logs` (integer ≥ logs_per_second, max 60000000); rate_limit rules require non-null `scope_service` matching `service.name` on each log line. */ + config?: unknown; + /** @description Incremented on each update for worker cache coherency. */ + readonly version?: number; + readonly created_by?: number; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string | null; + }; + PatchedLogsView: { + /** Format: uuid */ + readonly id?: string; + readonly short_id?: string; + name?: string; + /** @description Filter criteria — subset of LogsViewerFilters. May contain severityLevels, serviceNames, searchTerm, filterGroup, dateRange, and other keys. */ + filters?: { + [key: string]: unknown; + }; + pinned?: boolean; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly updated_at?: string | null; + }; + PatchedMCPServerInstallationUpdate: { + display_name?: string; + description?: string; + is_enabled?: boolean; + }; + PatchedNotebook: { + /** + * Format: uuid + * @description UUID of the notebook. + */ + readonly id?: string; + /** @description Short alphanumeric identifier used in URLs and API lookups. */ + readonly short_id?: string; + /** @description Title of the notebook. */ + title?: string | null; + /** @description Notebook content as a ProseMirror JSON document structure. */ + content?: unknown; + /** @description Plain text representation of the notebook content for search. */ + text_content?: string | null; + /** @description Version number for optimistic concurrency control. Must match the current version when updating content. */ + version?: number; + /** @description Whether the notebook has been soft-deleted. */ + deleted?: boolean; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly last_modified_at?: string; + readonly last_modified_by?: components["schemas"]["UserBasic"]; + /** @description The effective access level the user has for this object */ + readonly user_access_level?: string | null; + /** create in folder */ + _create_in_folder?: string; + }; + PatchedObjectMediaPreview: { + /** Format: uuid */ + readonly id?: string; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string | null; + readonly media_url?: string; + /** @description Return 'uploaded' or 'exported' based on which media is set */ + readonly media_type?: string; + metadata?: unknown; + /** Format: uuid */ + uploaded_media_id?: string | null; + /** Format: uuid */ + exported_asset_id?: string | null; + /** Format: uuid */ + event_definition_id?: string | null; + }; + PatchedOrganization: { + /** Format: uuid */ + readonly id?: string; + name?: string; + readonly slug?: string; + /** Format: uuid */ + logo_media_id?: string | null; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + readonly membership_level?: components["schemas"]["EffectiveMembershipLevelEnum"]; + readonly plugins_access_level?: components["schemas"]["PluginsAccessLevelEnum"]; + readonly teams?: { + [key: string]: unknown; + }[]; + readonly projects?: { + [key: string]: unknown; + }[]; + readonly available_product_features?: unknown[] | null; + /** @description Legacy field; member-join emails are controlled per user in account notification settings. */ + readonly is_member_join_email_enabled?: boolean; + readonly metadata?: { + [key: string]: string; + }; + readonly customer_id?: string | null; + enforce_2fa?: boolean | null; + members_can_invite?: boolean | null; + members_can_use_personal_api_keys?: boolean; + allow_publicly_shared_resources?: boolean; + readonly member_count?: number; + is_ai_data_processing_approved?: boolean | null; + /** + * @description Default statistical method for new experiments in this organization. + * + * * `bayesian` - Bayesian + * * `frequentist` - Frequentist + */ + default_experiment_stats_method?: components["schemas"]["DefaultExperimentStatsMethodEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + /** @description Default setting for 'Discard client IP data' for new projects in this organization. */ + default_anonymize_ips?: boolean; + /** @description ID of the role to automatically assign to new members joining the organization */ + default_role_id?: string | null; + /** + * Active + * @description Set this to 'No' to temporarily disable an organization. + */ + readonly is_active?: boolean | null; + /** + * De-activated reason + * @description (optional) reason for why the organization has been de-activated. This will be displayed to users on the web app. + */ + readonly is_not_active_reason?: string | null; + /** @description Set to True when org deletion has been initiated. Blocks all UI access until the async task completes. */ + readonly is_pending_deletion?: boolean | null; + }; + PatchedOrganizationDomain: { + /** Format: uuid */ + readonly id?: string; + domain?: string; + /** @description Determines whether a domain is verified or not. */ + readonly is_verified?: boolean; + /** Format: date-time */ + readonly verified_at?: string | null; + readonly verification_challenge?: string; + jit_provisioning_enabled?: boolean; + sso_enforcement?: string; + /** @description Returns whether SAML is configured for the instance. Does not validate the user has the required license (that check is performed in other places). */ + readonly has_saml?: boolean; + saml_entity_id?: string | null; + saml_acs_url?: string | null; + saml_x509_cert?: string | null; + /** @description Returns whether SCIM is configured and enabled for this domain. */ + readonly has_scim?: boolean; + scim_enabled?: boolean; + readonly scim_base_url?: string | null; + readonly scim_bearer_token?: string | null; + }; + /** @description Serializer for organization-level integrations. */ + PatchedOrganizationIntegration: { + /** Format: uuid */ + readonly id?: string; + readonly kind?: components["schemas"]["OrganizationIntegrationKindEnum"]; + readonly integration_id?: string | null; + readonly config?: unknown; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + }; + PatchedOrganizationMember: { + /** Format: uuid */ + readonly id?: string; + readonly user?: components["schemas"]["UserBasic"]; + level?: components["schemas"]["OrganizationMembershipLevelEnum"]; + /** Format: date-time */ + readonly joined_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + readonly is_2fa_enabled?: boolean; + readonly has_social_auth?: boolean; + /** Format: date-time */ + readonly last_login?: string; + }; + PatchedPersistedFolder: { + /** Format: uuid */ + readonly id?: string; + type?: components["schemas"]["PersistedFolderTypeEnum"]; + protocol?: string; + path?: string; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + }; + PatchedPersonRecord: { + /** @description Numeric person ID. */ + readonly id?: number; + /** @description Display name derived from person properties (email, name, or username). */ + readonly name?: string; + readonly distinct_ids?: string[]; + /** @description Key-value map of person properties set via $set and $set_once operations. */ + properties?: unknown; + /** + * Format: date-time + * @description When this person was first seen (ISO 8601). + */ + readonly created_at?: string; + /** + * Format: uuid + * @description Unique identifier (UUID) for this person. + */ + readonly uuid?: string; + /** + * Format: date-time + * @description Timestamp of the last event from this person, or null. + */ + readonly last_seen_at?: string | null; + }; + PatchedPinnedSceneTabs: { + /** @description Ordered list of pinned navigation tabs shown in the sidebar for the authenticated user within the current team. Send the full list to replace the existing pins; omit to leave them unchanged. */ + tabs?: components["schemas"]["PinnedSceneTab"][]; + /** @description Tab descriptor for the user's chosen home page — the destination opened when they click the PostHog logo or hit `/`. Set to a tab descriptor to pick a homepage, send `null` or `{}` to clear it and fall back to the project default. */ + homepage?: components["schemas"]["PinnedSceneTab"] | null; + }; + /** @description Serializer for creating and updating ProductTour. */ + PatchedProductTourSerializerCreateUpdateOnly: { + /** Format: uuid */ + readonly id?: string; + name?: string; + description?: string; + readonly internal_targeting_flag?: components["schemas"]["MinimalFeatureFlag"]; + readonly linked_flag?: components["schemas"]["MinimalFeatureFlag"]; + linked_flag_id?: number | null; + targeting_flag_filters?: unknown; + content?: unknown; + auto_launch?: boolean; + /** Format: date-time */ + start_date?: string | null; + /** Format: date-time */ + end_date?: string | null; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly updated_at?: string; + archived?: boolean; + /** + * @description Where the tour was created/updated from + * + * * `app` - app + * * `toolbar` - toolbar + * @default app + */ + creation_context: components["schemas"]["ProductTourSerializerCreateUpdateOnlyCreationContextEnum"]; + }; + /** + * @description Like `ProjectBasicSerializer`, but also works as a drop-in replacement for `TeamBasicSerializer` by way of + * passthrough fields. This allows the meaning of `Team` to change from "project" to "environment" without breaking + * backward compatibility of the REST API. + * Do not use this in greenfield endpoints! + */ + PatchedProjectBackwardCompat: { + readonly id?: number; + /** Format: uuid */ + readonly organization?: string; + /** @description Human-readable project name. */ + name?: string; + /** @description Short description of what the project is about. This is helpful to give our AI agents context about your project. */ + product_description?: string | null; + /** Format: date-time */ + readonly created_at?: string; + readonly effective_membership_level?: components["schemas"]["EffectiveMembershipLevelEnum"]; + readonly has_group_types?: boolean; + readonly group_types?: { + [key: string]: unknown; + }[]; + readonly live_events_token?: string | null; + /** Format: date-time */ + readonly updated_at?: string; + /** Format: uuid */ + readonly uuid?: string; + readonly api_token?: string; + app_urls?: (string | null)[]; + /** @description When true, PostHog drops the IP address from every ingested event. */ + anonymize_ips?: boolean; + completed_snippet_onboarding?: boolean; + readonly ingested_event?: boolean; + /** @description Filter groups that identify internal/test traffic to be excluded from insights. */ + test_account_filters?: unknown; + /** @description When true, new insights default to excluding internal/test users. */ + test_account_filters_default_checked?: boolean | null; + /** @description Regex rewrite rules that collapse dynamic path segments (e.g. user IDs) before displaying URLs in paths. */ + path_cleaning_filters?: unknown; + is_demo?: boolean; + /** + * @description IANA timezone used for date-based filters and reporting (e.g. `America/Los_Angeles`). + * + * * `Africa/Abidjan` - Africa/Abidjan + * * `Africa/Accra` - Africa/Accra + * * `Africa/Addis_Ababa` - Africa/Addis_Ababa + * * `Africa/Algiers` - Africa/Algiers + * * `Africa/Asmara` - Africa/Asmara + * * `Africa/Asmera` - Africa/Asmera + * * `Africa/Bamako` - Africa/Bamako + * * `Africa/Bangui` - Africa/Bangui + * * `Africa/Banjul` - Africa/Banjul + * * `Africa/Bissau` - Africa/Bissau + * * `Africa/Blantyre` - Africa/Blantyre + * * `Africa/Brazzaville` - Africa/Brazzaville + * * `Africa/Bujumbura` - Africa/Bujumbura + * * `Africa/Cairo` - Africa/Cairo + * * `Africa/Casablanca` - Africa/Casablanca + * * `Africa/Ceuta` - Africa/Ceuta + * * `Africa/Conakry` - Africa/Conakry + * * `Africa/Dakar` - Africa/Dakar + * * `Africa/Dar_es_Salaam` - Africa/Dar_es_Salaam + * * `Africa/Djibouti` - Africa/Djibouti + * * `Africa/Douala` - Africa/Douala + * * `Africa/El_Aaiun` - Africa/El_Aaiun + * * `Africa/Freetown` - Africa/Freetown + * * `Africa/Gaborone` - Africa/Gaborone + * * `Africa/Harare` - Africa/Harare + * * `Africa/Johannesburg` - Africa/Johannesburg + * * `Africa/Juba` - Africa/Juba + * * `Africa/Kampala` - Africa/Kampala + * * `Africa/Khartoum` - Africa/Khartoum + * * `Africa/Kigali` - Africa/Kigali + * * `Africa/Kinshasa` - Africa/Kinshasa + * * `Africa/Lagos` - Africa/Lagos + * * `Africa/Libreville` - Africa/Libreville + * * `Africa/Lome` - Africa/Lome + * * `Africa/Luanda` - Africa/Luanda + * * `Africa/Lubumbashi` - Africa/Lubumbashi + * * `Africa/Lusaka` - Africa/Lusaka + * * `Africa/Malabo` - Africa/Malabo + * * `Africa/Maputo` - Africa/Maputo + * * `Africa/Maseru` - Africa/Maseru + * * `Africa/Mbabane` - Africa/Mbabane + * * `Africa/Mogadishu` - Africa/Mogadishu + * * `Africa/Monrovia` - Africa/Monrovia + * * `Africa/Nairobi` - Africa/Nairobi + * * `Africa/Ndjamena` - Africa/Ndjamena + * * `Africa/Niamey` - Africa/Niamey + * * `Africa/Nouakchott` - Africa/Nouakchott + * * `Africa/Ouagadougou` - Africa/Ouagadougou + * * `Africa/Porto-Novo` - Africa/Porto-Novo + * * `Africa/Sao_Tome` - Africa/Sao_Tome + * * `Africa/Timbuktu` - Africa/Timbuktu + * * `Africa/Tripoli` - Africa/Tripoli + * * `Africa/Tunis` - Africa/Tunis + * * `Africa/Windhoek` - Africa/Windhoek + * * `America/Adak` - America/Adak + * * `America/Anchorage` - America/Anchorage + * * `America/Anguilla` - America/Anguilla + * * `America/Antigua` - America/Antigua + * * `America/Araguaina` - America/Araguaina + * * `America/Argentina/Buenos_Aires` - America/Argentina/Buenos_Aires + * * `America/Argentina/Catamarca` - America/Argentina/Catamarca + * * `America/Argentina/ComodRivadavia` - America/Argentina/ComodRivadavia + * * `America/Argentina/Cordoba` - America/Argentina/Cordoba + * * `America/Argentina/Jujuy` - America/Argentina/Jujuy + * * `America/Argentina/La_Rioja` - America/Argentina/La_Rioja + * * `America/Argentina/Mendoza` - America/Argentina/Mendoza + * * `America/Argentina/Rio_Gallegos` - America/Argentina/Rio_Gallegos + * * `America/Argentina/Salta` - America/Argentina/Salta + * * `America/Argentina/San_Juan` - America/Argentina/San_Juan + * * `America/Argentina/San_Luis` - America/Argentina/San_Luis + * * `America/Argentina/Tucuman` - America/Argentina/Tucuman + * * `America/Argentina/Ushuaia` - America/Argentina/Ushuaia + * * `America/Aruba` - America/Aruba + * * `America/Asuncion` - America/Asuncion + * * `America/Atikokan` - America/Atikokan + * * `America/Atka` - America/Atka + * * `America/Bahia` - America/Bahia + * * `America/Bahia_Banderas` - America/Bahia_Banderas + * * `America/Barbados` - America/Barbados + * * `America/Belem` - America/Belem + * * `America/Belize` - America/Belize + * * `America/Blanc-Sablon` - America/Blanc-Sablon + * * `America/Boa_Vista` - America/Boa_Vista + * * `America/Bogota` - America/Bogota + * * `America/Boise` - America/Boise + * * `America/Buenos_Aires` - America/Buenos_Aires + * * `America/Cambridge_Bay` - America/Cambridge_Bay + * * `America/Campo_Grande` - America/Campo_Grande + * * `America/Cancun` - America/Cancun + * * `America/Caracas` - America/Caracas + * * `America/Catamarca` - America/Catamarca + * * `America/Cayenne` - America/Cayenne + * * `America/Cayman` - America/Cayman + * * `America/Chicago` - America/Chicago + * * `America/Chihuahua` - America/Chihuahua + * * `America/Ciudad_Juarez` - America/Ciudad_Juarez + * * `America/Coral_Harbour` - America/Coral_Harbour + * * `America/Cordoba` - America/Cordoba + * * `America/Costa_Rica` - America/Costa_Rica + * * `America/Creston` - America/Creston + * * `America/Cuiaba` - America/Cuiaba + * * `America/Curacao` - America/Curacao + * * `America/Danmarkshavn` - America/Danmarkshavn + * * `America/Dawson` - America/Dawson + * * `America/Dawson_Creek` - America/Dawson_Creek + * * `America/Denver` - America/Denver + * * `America/Detroit` - America/Detroit + * * `America/Dominica` - America/Dominica + * * `America/Edmonton` - America/Edmonton + * * `America/Eirunepe` - America/Eirunepe + * * `America/El_Salvador` - America/El_Salvador + * * `America/Ensenada` - America/Ensenada + * * `America/Fort_Nelson` - America/Fort_Nelson + * * `America/Fort_Wayne` - America/Fort_Wayne + * * `America/Fortaleza` - America/Fortaleza + * * `America/Glace_Bay` - America/Glace_Bay + * * `America/Godthab` - America/Godthab + * * `America/Goose_Bay` - America/Goose_Bay + * * `America/Grand_Turk` - America/Grand_Turk + * * `America/Grenada` - America/Grenada + * * `America/Guadeloupe` - America/Guadeloupe + * * `America/Guatemala` - America/Guatemala + * * `America/Guayaquil` - America/Guayaquil + * * `America/Guyana` - America/Guyana + * * `America/Halifax` - America/Halifax + * * `America/Havana` - America/Havana + * * `America/Hermosillo` - America/Hermosillo + * * `America/Indiana/Indianapolis` - America/Indiana/Indianapolis + * * `America/Indiana/Knox` - America/Indiana/Knox + * * `America/Indiana/Marengo` - America/Indiana/Marengo + * * `America/Indiana/Petersburg` - America/Indiana/Petersburg + * * `America/Indiana/Tell_City` - America/Indiana/Tell_City + * * `America/Indiana/Vevay` - America/Indiana/Vevay + * * `America/Indiana/Vincennes` - America/Indiana/Vincennes + * * `America/Indiana/Winamac` - America/Indiana/Winamac + * * `America/Indianapolis` - America/Indianapolis + * * `America/Inuvik` - America/Inuvik + * * `America/Iqaluit` - America/Iqaluit + * * `America/Jamaica` - America/Jamaica + * * `America/Jujuy` - America/Jujuy + * * `America/Juneau` - America/Juneau + * * `America/Kentucky/Louisville` - America/Kentucky/Louisville + * * `America/Kentucky/Monticello` - America/Kentucky/Monticello + * * `America/Knox_IN` - America/Knox_IN + * * `America/Kralendijk` - America/Kralendijk + * * `America/La_Paz` - America/La_Paz + * * `America/Lima` - America/Lima + * * `America/Los_Angeles` - America/Los_Angeles + * * `America/Louisville` - America/Louisville + * * `America/Lower_Princes` - America/Lower_Princes + * * `America/Maceio` - America/Maceio + * * `America/Managua` - America/Managua + * * `America/Manaus` - America/Manaus + * * `America/Marigot` - America/Marigot + * * `America/Martinique` - America/Martinique + * * `America/Matamoros` - America/Matamoros + * * `America/Mazatlan` - America/Mazatlan + * * `America/Mendoza` - America/Mendoza + * * `America/Menominee` - America/Menominee + * * `America/Merida` - America/Merida + * * `America/Metlakatla` - America/Metlakatla + * * `America/Mexico_City` - America/Mexico_City + * * `America/Miquelon` - America/Miquelon + * * `America/Moncton` - America/Moncton + * * `America/Monterrey` - America/Monterrey + * * `America/Montevideo` - America/Montevideo + * * `America/Montreal` - America/Montreal + * * `America/Montserrat` - America/Montserrat + * * `America/Nassau` - America/Nassau + * * `America/New_York` - America/New_York + * * `America/Nipigon` - America/Nipigon + * * `America/Nome` - America/Nome + * * `America/Noronha` - America/Noronha + * * `America/North_Dakota/Beulah` - America/North_Dakota/Beulah + * * `America/North_Dakota/Center` - America/North_Dakota/Center + * * `America/North_Dakota/New_Salem` - America/North_Dakota/New_Salem + * * `America/Nuuk` - America/Nuuk + * * `America/Ojinaga` - America/Ojinaga + * * `America/Panama` - America/Panama + * * `America/Pangnirtung` - America/Pangnirtung + * * `America/Paramaribo` - America/Paramaribo + * * `America/Phoenix` - America/Phoenix + * * `America/Port-au-Prince` - America/Port-au-Prince + * * `America/Port_of_Spain` - America/Port_of_Spain + * * `America/Porto_Acre` - America/Porto_Acre + * * `America/Porto_Velho` - America/Porto_Velho + * * `America/Puerto_Rico` - America/Puerto_Rico + * * `America/Punta_Arenas` - America/Punta_Arenas + * * `America/Rainy_River` - America/Rainy_River + * * `America/Rankin_Inlet` - America/Rankin_Inlet + * * `America/Recife` - America/Recife + * * `America/Regina` - America/Regina + * * `America/Resolute` - America/Resolute + * * `America/Rio_Branco` - America/Rio_Branco + * * `America/Rosario` - America/Rosario + * * `America/Santa_Isabel` - America/Santa_Isabel + * * `America/Santarem` - America/Santarem + * * `America/Santiago` - America/Santiago + * * `America/Santo_Domingo` - America/Santo_Domingo + * * `America/Sao_Paulo` - America/Sao_Paulo + * * `America/Scoresbysund` - America/Scoresbysund + * * `America/Shiprock` - America/Shiprock + * * `America/Sitka` - America/Sitka + * * `America/St_Barthelemy` - America/St_Barthelemy + * * `America/St_Johns` - America/St_Johns + * * `America/St_Kitts` - America/St_Kitts + * * `America/St_Lucia` - America/St_Lucia + * * `America/St_Thomas` - America/St_Thomas + * * `America/St_Vincent` - America/St_Vincent + * * `America/Swift_Current` - America/Swift_Current + * * `America/Tegucigalpa` - America/Tegucigalpa + * * `America/Thule` - America/Thule + * * `America/Thunder_Bay` - America/Thunder_Bay + * * `America/Tijuana` - America/Tijuana + * * `America/Toronto` - America/Toronto + * * `America/Tortola` - America/Tortola + * * `America/Vancouver` - America/Vancouver + * * `America/Virgin` - America/Virgin + * * `America/Whitehorse` - America/Whitehorse + * * `America/Winnipeg` - America/Winnipeg + * * `America/Yakutat` - America/Yakutat + * * `America/Yellowknife` - America/Yellowknife + * * `Antarctica/Casey` - Antarctica/Casey + * * `Antarctica/Davis` - Antarctica/Davis + * * `Antarctica/DumontDUrville` - Antarctica/DumontDUrville + * * `Antarctica/Macquarie` - Antarctica/Macquarie + * * `Antarctica/Mawson` - Antarctica/Mawson + * * `Antarctica/McMurdo` - Antarctica/McMurdo + * * `Antarctica/Palmer` - Antarctica/Palmer + * * `Antarctica/Rothera` - Antarctica/Rothera + * * `Antarctica/South_Pole` - Antarctica/South_Pole + * * `Antarctica/Syowa` - Antarctica/Syowa + * * `Antarctica/Troll` - Antarctica/Troll + * * `Antarctica/Vostok` - Antarctica/Vostok + * * `Arctic/Longyearbyen` - Arctic/Longyearbyen + * * `Asia/Aden` - Asia/Aden + * * `Asia/Almaty` - Asia/Almaty + * * `Asia/Amman` - Asia/Amman + * * `Asia/Anadyr` - Asia/Anadyr + * * `Asia/Aqtau` - Asia/Aqtau + * * `Asia/Aqtobe` - Asia/Aqtobe + * * `Asia/Ashgabat` - Asia/Ashgabat + * * `Asia/Ashkhabad` - Asia/Ashkhabad + * * `Asia/Atyrau` - Asia/Atyrau + * * `Asia/Baghdad` - Asia/Baghdad + * * `Asia/Bahrain` - Asia/Bahrain + * * `Asia/Baku` - Asia/Baku + * * `Asia/Bangkok` - Asia/Bangkok + * * `Asia/Barnaul` - Asia/Barnaul + * * `Asia/Beirut` - Asia/Beirut + * * `Asia/Bishkek` - Asia/Bishkek + * * `Asia/Brunei` - Asia/Brunei + * * `Asia/Calcutta` - Asia/Calcutta + * * `Asia/Chita` - Asia/Chita + * * `Asia/Choibalsan` - Asia/Choibalsan + * * `Asia/Chongqing` - Asia/Chongqing + * * `Asia/Chungking` - Asia/Chungking + * * `Asia/Colombo` - Asia/Colombo + * * `Asia/Dacca` - Asia/Dacca + * * `Asia/Damascus` - Asia/Damascus + * * `Asia/Dhaka` - Asia/Dhaka + * * `Asia/Dili` - Asia/Dili + * * `Asia/Dubai` - Asia/Dubai + * * `Asia/Dushanbe` - Asia/Dushanbe + * * `Asia/Famagusta` - Asia/Famagusta + * * `Asia/Gaza` - Asia/Gaza + * * `Asia/Harbin` - Asia/Harbin + * * `Asia/Hebron` - Asia/Hebron + * * `Asia/Ho_Chi_Minh` - Asia/Ho_Chi_Minh + * * `Asia/Hong_Kong` - Asia/Hong_Kong + * * `Asia/Hovd` - Asia/Hovd + * * `Asia/Irkutsk` - Asia/Irkutsk + * * `Asia/Istanbul` - Asia/Istanbul + * * `Asia/Jakarta` - Asia/Jakarta + * * `Asia/Jayapura` - Asia/Jayapura + * * `Asia/Jerusalem` - Asia/Jerusalem + * * `Asia/Kabul` - Asia/Kabul + * * `Asia/Kamchatka` - Asia/Kamchatka + * * `Asia/Karachi` - Asia/Karachi + * * `Asia/Kashgar` - Asia/Kashgar + * * `Asia/Kathmandu` - Asia/Kathmandu + * * `Asia/Katmandu` - Asia/Katmandu + * * `Asia/Khandyga` - Asia/Khandyga + * * `Asia/Kolkata` - Asia/Kolkata + * * `Asia/Krasnoyarsk` - Asia/Krasnoyarsk + * * `Asia/Kuala_Lumpur` - Asia/Kuala_Lumpur + * * `Asia/Kuching` - Asia/Kuching + * * `Asia/Kuwait` - Asia/Kuwait + * * `Asia/Macao` - Asia/Macao + * * `Asia/Macau` - Asia/Macau + * * `Asia/Magadan` - Asia/Magadan + * * `Asia/Makassar` - Asia/Makassar + * * `Asia/Manila` - Asia/Manila + * * `Asia/Muscat` - Asia/Muscat + * * `Asia/Nicosia` - Asia/Nicosia + * * `Asia/Novokuznetsk` - Asia/Novokuznetsk + * * `Asia/Novosibirsk` - Asia/Novosibirsk + * * `Asia/Omsk` - Asia/Omsk + * * `Asia/Oral` - Asia/Oral + * * `Asia/Phnom_Penh` - Asia/Phnom_Penh + * * `Asia/Pontianak` - Asia/Pontianak + * * `Asia/Pyongyang` - Asia/Pyongyang + * * `Asia/Qatar` - Asia/Qatar + * * `Asia/Qostanay` - Asia/Qostanay + * * `Asia/Qyzylorda` - Asia/Qyzylorda + * * `Asia/Rangoon` - Asia/Rangoon + * * `Asia/Riyadh` - Asia/Riyadh + * * `Asia/Saigon` - Asia/Saigon + * * `Asia/Sakhalin` - Asia/Sakhalin + * * `Asia/Samarkand` - Asia/Samarkand + * * `Asia/Seoul` - Asia/Seoul + * * `Asia/Shanghai` - Asia/Shanghai + * * `Asia/Singapore` - Asia/Singapore + * * `Asia/Srednekolymsk` - Asia/Srednekolymsk + * * `Asia/Taipei` - Asia/Taipei + * * `Asia/Tashkent` - Asia/Tashkent + * * `Asia/Tbilisi` - Asia/Tbilisi + * * `Asia/Tehran` - Asia/Tehran + * * `Asia/Tel_Aviv` - Asia/Tel_Aviv + * * `Asia/Thimbu` - Asia/Thimbu + * * `Asia/Thimphu` - Asia/Thimphu + * * `Asia/Tokyo` - Asia/Tokyo + * * `Asia/Tomsk` - Asia/Tomsk + * * `Asia/Ujung_Pandang` - Asia/Ujung_Pandang + * * `Asia/Ulaanbaatar` - Asia/Ulaanbaatar + * * `Asia/Ulan_Bator` - Asia/Ulan_Bator + * * `Asia/Urumqi` - Asia/Urumqi + * * `Asia/Ust-Nera` - Asia/Ust-Nera + * * `Asia/Vientiane` - Asia/Vientiane + * * `Asia/Vladivostok` - Asia/Vladivostok + * * `Asia/Yakutsk` - Asia/Yakutsk + * * `Asia/Yangon` - Asia/Yangon + * * `Asia/Yekaterinburg` - Asia/Yekaterinburg + * * `Asia/Yerevan` - Asia/Yerevan + * * `Atlantic/Azores` - Atlantic/Azores + * * `Atlantic/Bermuda` - Atlantic/Bermuda + * * `Atlantic/Canary` - Atlantic/Canary + * * `Atlantic/Cape_Verde` - Atlantic/Cape_Verde + * * `Atlantic/Faeroe` - Atlantic/Faeroe + * * `Atlantic/Faroe` - Atlantic/Faroe + * * `Atlantic/Jan_Mayen` - Atlantic/Jan_Mayen + * * `Atlantic/Madeira` - Atlantic/Madeira + * * `Atlantic/Reykjavik` - Atlantic/Reykjavik + * * `Atlantic/South_Georgia` - Atlantic/South_Georgia + * * `Atlantic/St_Helena` - Atlantic/St_Helena + * * `Atlantic/Stanley` - Atlantic/Stanley + * * `Australia/ACT` - Australia/ACT + * * `Australia/Adelaide` - Australia/Adelaide + * * `Australia/Brisbane` - Australia/Brisbane + * * `Australia/Broken_Hill` - Australia/Broken_Hill + * * `Australia/Canberra` - Australia/Canberra + * * `Australia/Currie` - Australia/Currie + * * `Australia/Darwin` - Australia/Darwin + * * `Australia/Eucla` - Australia/Eucla + * * `Australia/Hobart` - Australia/Hobart + * * `Australia/LHI` - Australia/LHI + * * `Australia/Lindeman` - Australia/Lindeman + * * `Australia/Lord_Howe` - Australia/Lord_Howe + * * `Australia/Melbourne` - Australia/Melbourne + * * `Australia/NSW` - Australia/NSW + * * `Australia/North` - Australia/North + * * `Australia/Perth` - Australia/Perth + * * `Australia/Queensland` - Australia/Queensland + * * `Australia/South` - Australia/South + * * `Australia/Sydney` - Australia/Sydney + * * `Australia/Tasmania` - Australia/Tasmania + * * `Australia/Victoria` - Australia/Victoria + * * `Australia/West` - Australia/West + * * `Australia/Yancowinna` - Australia/Yancowinna + * * `Brazil/Acre` - Brazil/Acre + * * `Brazil/DeNoronha` - Brazil/DeNoronha + * * `Brazil/East` - Brazil/East + * * `Brazil/West` - Brazil/West + * * `CET` - CET + * * `CST6CDT` - CST6CDT + * * `Canada/Atlantic` - Canada/Atlantic + * * `Canada/Central` - Canada/Central + * * `Canada/Eastern` - Canada/Eastern + * * `Canada/Mountain` - Canada/Mountain + * * `Canada/Newfoundland` - Canada/Newfoundland + * * `Canada/Pacific` - Canada/Pacific + * * `Canada/Saskatchewan` - Canada/Saskatchewan + * * `Canada/Yukon` - Canada/Yukon + * * `Chile/Continental` - Chile/Continental + * * `Chile/EasterIsland` - Chile/EasterIsland + * * `Cuba` - Cuba + * * `EET` - EET + * * `EST` - EST + * * `EST5EDT` - EST5EDT + * * `Egypt` - Egypt + * * `Eire` - Eire + * * `Etc/GMT` - Etc/GMT + * * `Etc/GMT+0` - Etc/GMT+0 + * * `Etc/GMT+1` - Etc/GMT+1 + * * `Etc/GMT+10` - Etc/GMT+10 + * * `Etc/GMT+11` - Etc/GMT+11 + * * `Etc/GMT+12` - Etc/GMT+12 + * * `Etc/GMT+2` - Etc/GMT+2 + * * `Etc/GMT+3` - Etc/GMT+3 + * * `Etc/GMT+4` - Etc/GMT+4 + * * `Etc/GMT+5` - Etc/GMT+5 + * * `Etc/GMT+6` - Etc/GMT+6 + * * `Etc/GMT+7` - Etc/GMT+7 + * * `Etc/GMT+8` - Etc/GMT+8 + * * `Etc/GMT+9` - Etc/GMT+9 + * * `Etc/GMT-0` - Etc/GMT-0 + * * `Etc/GMT-1` - Etc/GMT-1 + * * `Etc/GMT-10` - Etc/GMT-10 + * * `Etc/GMT-11` - Etc/GMT-11 + * * `Etc/GMT-12` - Etc/GMT-12 + * * `Etc/GMT-13` - Etc/GMT-13 + * * `Etc/GMT-14` - Etc/GMT-14 + * * `Etc/GMT-2` - Etc/GMT-2 + * * `Etc/GMT-3` - Etc/GMT-3 + * * `Etc/GMT-4` - Etc/GMT-4 + * * `Etc/GMT-5` - Etc/GMT-5 + * * `Etc/GMT-6` - Etc/GMT-6 + * * `Etc/GMT-7` - Etc/GMT-7 + * * `Etc/GMT-8` - Etc/GMT-8 + * * `Etc/GMT-9` - Etc/GMT-9 + * * `Etc/GMT0` - Etc/GMT0 + * * `Etc/Greenwich` - Etc/Greenwich + * * `Etc/UCT` - Etc/UCT + * * `Etc/UTC` - Etc/UTC + * * `Etc/Universal` - Etc/Universal + * * `Etc/Zulu` - Etc/Zulu + * * `Europe/Amsterdam` - Europe/Amsterdam + * * `Europe/Andorra` - Europe/Andorra + * * `Europe/Astrakhan` - Europe/Astrakhan + * * `Europe/Athens` - Europe/Athens + * * `Europe/Belfast` - Europe/Belfast + * * `Europe/Belgrade` - Europe/Belgrade + * * `Europe/Berlin` - Europe/Berlin + * * `Europe/Bratislava` - Europe/Bratislava + * * `Europe/Brussels` - Europe/Brussels + * * `Europe/Bucharest` - Europe/Bucharest + * * `Europe/Budapest` - Europe/Budapest + * * `Europe/Busingen` - Europe/Busingen + * * `Europe/Chisinau` - Europe/Chisinau + * * `Europe/Copenhagen` - Europe/Copenhagen + * * `Europe/Dublin` - Europe/Dublin + * * `Europe/Gibraltar` - Europe/Gibraltar + * * `Europe/Guernsey` - Europe/Guernsey + * * `Europe/Helsinki` - Europe/Helsinki + * * `Europe/Isle_of_Man` - Europe/Isle_of_Man + * * `Europe/Istanbul` - Europe/Istanbul + * * `Europe/Jersey` - Europe/Jersey + * * `Europe/Kaliningrad` - Europe/Kaliningrad + * * `Europe/Kiev` - Europe/Kiev + * * `Europe/Kirov` - Europe/Kirov + * * `Europe/Kyiv` - Europe/Kyiv + * * `Europe/Lisbon` - Europe/Lisbon + * * `Europe/Ljubljana` - Europe/Ljubljana + * * `Europe/London` - Europe/London + * * `Europe/Luxembourg` - Europe/Luxembourg + * * `Europe/Madrid` - Europe/Madrid + * * `Europe/Malta` - Europe/Malta + * * `Europe/Mariehamn` - Europe/Mariehamn + * * `Europe/Minsk` - Europe/Minsk + * * `Europe/Monaco` - Europe/Monaco + * * `Europe/Moscow` - Europe/Moscow + * * `Europe/Nicosia` - Europe/Nicosia + * * `Europe/Oslo` - Europe/Oslo + * * `Europe/Paris` - Europe/Paris + * * `Europe/Podgorica` - Europe/Podgorica + * * `Europe/Prague` - Europe/Prague + * * `Europe/Riga` - Europe/Riga + * * `Europe/Rome` - Europe/Rome + * * `Europe/Samara` - Europe/Samara + * * `Europe/San_Marino` - Europe/San_Marino + * * `Europe/Sarajevo` - Europe/Sarajevo + * * `Europe/Saratov` - Europe/Saratov + * * `Europe/Simferopol` - Europe/Simferopol + * * `Europe/Skopje` - Europe/Skopje + * * `Europe/Sofia` - Europe/Sofia + * * `Europe/Stockholm` - Europe/Stockholm + * * `Europe/Tallinn` - Europe/Tallinn + * * `Europe/Tirane` - Europe/Tirane + * * `Europe/Tiraspol` - Europe/Tiraspol + * * `Europe/Ulyanovsk` - Europe/Ulyanovsk + * * `Europe/Uzhgorod` - Europe/Uzhgorod + * * `Europe/Vaduz` - Europe/Vaduz + * * `Europe/Vatican` - Europe/Vatican + * * `Europe/Vienna` - Europe/Vienna + * * `Europe/Vilnius` - Europe/Vilnius + * * `Europe/Volgograd` - Europe/Volgograd + * * `Europe/Warsaw` - Europe/Warsaw + * * `Europe/Zagreb` - Europe/Zagreb + * * `Europe/Zaporozhye` - Europe/Zaporozhye + * * `Europe/Zurich` - Europe/Zurich + * * `GB` - GB + * * `GB-Eire` - GB-Eire + * * `GMT` - GMT + * * `GMT+0` - GMT+0 + * * `GMT-0` - GMT-0 + * * `GMT0` - GMT0 + * * `Greenwich` - Greenwich + * * `HST` - HST + * * `Hongkong` - Hongkong + * * `Iceland` - Iceland + * * `Indian/Antananarivo` - Indian/Antananarivo + * * `Indian/Chagos` - Indian/Chagos + * * `Indian/Christmas` - Indian/Christmas + * * `Indian/Cocos` - Indian/Cocos + * * `Indian/Comoro` - Indian/Comoro + * * `Indian/Kerguelen` - Indian/Kerguelen + * * `Indian/Mahe` - Indian/Mahe + * * `Indian/Maldives` - Indian/Maldives + * * `Indian/Mauritius` - Indian/Mauritius + * * `Indian/Mayotte` - Indian/Mayotte + * * `Indian/Reunion` - Indian/Reunion + * * `Iran` - Iran + * * `Israel` - Israel + * * `Jamaica` - Jamaica + * * `Japan` - Japan + * * `Kwajalein` - Kwajalein + * * `Libya` - Libya + * * `MET` - MET + * * `MST` - MST + * * `MST7MDT` - MST7MDT + * * `Mexico/BajaNorte` - Mexico/BajaNorte + * * `Mexico/BajaSur` - Mexico/BajaSur + * * `Mexico/General` - Mexico/General + * * `NZ` - NZ + * * `NZ-CHAT` - NZ-CHAT + * * `Navajo` - Navajo + * * `PRC` - PRC + * * `PST8PDT` - PST8PDT + * * `Pacific/Apia` - Pacific/Apia + * * `Pacific/Auckland` - Pacific/Auckland + * * `Pacific/Bougainville` - Pacific/Bougainville + * * `Pacific/Chatham` - Pacific/Chatham + * * `Pacific/Chuuk` - Pacific/Chuuk + * * `Pacific/Easter` - Pacific/Easter + * * `Pacific/Efate` - Pacific/Efate + * * `Pacific/Enderbury` - Pacific/Enderbury + * * `Pacific/Fakaofo` - Pacific/Fakaofo + * * `Pacific/Fiji` - Pacific/Fiji + * * `Pacific/Funafuti` - Pacific/Funafuti + * * `Pacific/Galapagos` - Pacific/Galapagos + * * `Pacific/Gambier` - Pacific/Gambier + * * `Pacific/Guadalcanal` - Pacific/Guadalcanal + * * `Pacific/Guam` - Pacific/Guam + * * `Pacific/Honolulu` - Pacific/Honolulu + * * `Pacific/Johnston` - Pacific/Johnston + * * `Pacific/Kanton` - Pacific/Kanton + * * `Pacific/Kiritimati` - Pacific/Kiritimati + * * `Pacific/Kosrae` - Pacific/Kosrae + * * `Pacific/Kwajalein` - Pacific/Kwajalein + * * `Pacific/Majuro` - Pacific/Majuro + * * `Pacific/Marquesas` - Pacific/Marquesas + * * `Pacific/Midway` - Pacific/Midway + * * `Pacific/Nauru` - Pacific/Nauru + * * `Pacific/Niue` - Pacific/Niue + * * `Pacific/Norfolk` - Pacific/Norfolk + * * `Pacific/Noumea` - Pacific/Noumea + * * `Pacific/Pago_Pago` - Pacific/Pago_Pago + * * `Pacific/Palau` - Pacific/Palau + * * `Pacific/Pitcairn` - Pacific/Pitcairn + * * `Pacific/Pohnpei` - Pacific/Pohnpei + * * `Pacific/Ponape` - Pacific/Ponape + * * `Pacific/Port_Moresby` - Pacific/Port_Moresby + * * `Pacific/Rarotonga` - Pacific/Rarotonga + * * `Pacific/Saipan` - Pacific/Saipan + * * `Pacific/Samoa` - Pacific/Samoa + * * `Pacific/Tahiti` - Pacific/Tahiti + * * `Pacific/Tarawa` - Pacific/Tarawa + * * `Pacific/Tongatapu` - Pacific/Tongatapu + * * `Pacific/Truk` - Pacific/Truk + * * `Pacific/Wake` - Pacific/Wake + * * `Pacific/Wallis` - Pacific/Wallis + * * `Pacific/Yap` - Pacific/Yap + * * `Poland` - Poland + * * `Portugal` - Portugal + * * `ROC` - ROC + * * `ROK` - ROK + * * `Singapore` - Singapore + * * `Turkey` - Turkey + * * `UCT` - UCT + * * `US/Alaska` - US/Alaska + * * `US/Aleutian` - US/Aleutian + * * `US/Arizona` - US/Arizona + * * `US/Central` - US/Central + * * `US/East-Indiana` - US/East-Indiana + * * `US/Eastern` - US/Eastern + * * `US/Hawaii` - US/Hawaii + * * `US/Indiana-Starke` - US/Indiana-Starke + * * `US/Michigan` - US/Michigan + * * `US/Mountain` - US/Mountain + * * `US/Pacific` - US/Pacific + * * `US/Samoa` - US/Samoa + * * `UTC` - UTC + * * `Universal` - Universal + * * `W-SU` - W-SU + * * `WET` - WET + * * `Zulu` - Zulu + */ + timezone?: components["schemas"]["TimezoneEnum"]; + /** @description Element attributes that posthog-js should capture as action identifiers (e.g. `['data-attr']`). */ + data_attributes?: unknown; + /** @description Ordered list of person properties used to render a human-friendly display name in the UI. */ + person_display_name_properties?: string[] | null; + correlation_config?: unknown; + /** @description Disables posthog-js autocapture (clicks, page views) when true. */ + autocapture_opt_out?: boolean | null; + /** @description Enables automatic capture of JavaScript exceptions via the SDK. */ + autocapture_exceptions_opt_in?: boolean | null; + /** @description Enables automatic capture of Core Web Vitals performance metrics. */ + autocapture_web_vitals_opt_in?: boolean | null; + autocapture_web_vitals_allowed_metrics?: unknown; + autocapture_exceptions_errors_to_ignore?: unknown; + /** @description Enables capturing browser console logs alongside session replays. */ + capture_console_log_opt_in?: boolean | null; + /** @description Enables capturing performance timing and network requests. */ + capture_performance_opt_in?: boolean | null; + /** @description Enables session replay recording for this project. */ + session_recording_opt_in?: boolean; + /** + * Format: decimal + * @description Fraction of sessions to record, as a decimal string between `0.00` and `1.00` (e.g. `0.1` = 10%). + */ + session_recording_sample_rate?: string | null; + /** @description Skip saving sessions shorter than this many milliseconds. */ + session_recording_minimum_duration_milliseconds?: number | null; + session_recording_linked_flag?: unknown; + session_recording_network_payload_capture_config?: unknown; + session_recording_masking_config?: unknown; + session_recording_url_trigger_config?: unknown[] | null; + session_recording_url_blocklist_config?: unknown[] | null; + session_recording_event_trigger_config?: (string | null)[] | null; + session_recording_trigger_match_type_config?: string | null; + /** @description V2 trigger groups configuration for session recording. If present, takes precedence over legacy trigger fields. */ + session_recording_trigger_groups?: unknown; + /** + * @description How long to retain new session recordings. One of `30d`, `90d`, `1y`, or `5y` (availability depends on plan). + * + * * `30d` - 30 Days + * * `90d` - 90 Days + * * `1y` - 1 Year + * * `5y` - 5 Years + */ + session_recording_retention_period?: components["schemas"]["SessionRecordingRetentionPeriodEnum"]; + session_replay_config?: unknown; + survey_config?: unknown; + access_control?: boolean; + /** + * @description First day of the week for date range filters. 0 = Sunday, 1 = Monday. + * + * * `0` - Sunday + * * `1` - Monday + */ + week_start_day?: components["schemas"]["WeekStartDayEnum"] | components["schemas"]["NullEnum"]; + /** @description ID of the dashboard shown as the project's default landing dashboard. */ + primary_dashboard?: number | null; + live_events_columns?: string[] | null; + /** @description Origins permitted to record session replays and heatmaps. Empty list allows all origins. */ + recording_domains?: (string | null)[] | null; + readonly person_on_events_querying_enabled?: boolean; + inject_web_apps?: boolean | null; + extra_settings?: unknown; + modifiers?: unknown; + readonly default_modifiers?: { + [key: string]: unknown; + }; + has_completed_onboarding_for?: unknown; + /** @description Enables displaying surveys via posthog-js on allowed origins. */ + surveys_opt_in?: boolean | null; + /** @description Enables heatmap recording on pages that host posthog-js. */ + heatmaps_opt_in?: boolean | null; + readonly product_intents?: { + product_type?: string; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + onboarding_completed_at?: string | null; + /** Format: date-time */ + updated_at?: string; + }[]; + /** @description Default value for the `persist` option on newly created feature flags. */ + flags_persistence_default?: boolean | null; + readonly secret_api_token?: string | null; + readonly secret_api_token_backup?: string | null; + receive_org_level_activity_logs?: boolean | null; + /** + * @description Whether this project serves B2B or B2C customers. Used to optimize default UI layouts. + * + * * `b2b` - B2B + * * `b2c` - B2C + * * `other` - Other + */ + business_model?: components["schemas"]["BusinessModelEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + /** @description Enables the customer conversations / live chat product for this project. */ + conversations_enabled?: boolean | null; + conversations_settings?: unknown; + logs_settings?: unknown; + proactive_tasks_enabled?: boolean | null; + readonly available_setup_task_ids?: components["schemas"]["AvailableSetupTaskIdsEnum"][]; + }; + PatchedProjectSecretAPIKey: { + readonly id?: string; + label?: string; + readonly value?: string; + readonly mask_value?: string | null; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: number | null; + /** Format: date-time */ + readonly last_used_at?: string | null; + /** Format: date-time */ + readonly last_rolled_at?: string | null; + scopes?: string[]; + }; + PatchedRemovePersonRequest: { + /** + * Format: uuid + * @description Person UUID to remove from the cohort + */ + person_id?: string; + }; + PatchedReplayLens: { + /** Format: uuid */ + readonly id?: string; + /** @description Human-readable lens name. Unique within the team. */ + name?: string; + /** @description Free-form description shown in the lens management UI. */ + description?: string; + /** + * @description What the lens does: monitor, classifier, scorer, summarizer, or indexer. + * + * * `monitor` - Monitor + * * `classifier` - Classifier + * * `scorer` - Scorer + * * `summarizer` - Summarizer + * * `indexer` - Indexer + */ + lens_type?: components["schemas"]["LensTypeEnum"]; + /** @description Type-specific configuration. Always includes `prompt`; classifiers add `tags`, scorers add `scale`, etc. */ + lens_config?: unknown; + /** @description Persisted `RecordingsQuery` shape used to pick candidate sessions. `date_from`/`date_to` are stripped on save — the schedule controls time, not the user. */ + query?: unknown; + /** + * Format: double + * @description 0..1 random downsample applied after the query matches. Defaults to 1.0 (no downsampling). + */ + sampling_rate?: number; + /** + * @description LLM provider. v1 is Google-only. + * + * * `google` - Google + */ + provider?: components["schemas"]["LensProviderEnum"]; + /** + * @description Concrete model to use for this lens. + * + * * `gemini-3-flash` - Gemini 3 Flash + * * `gemini-3-flash-lite` - Gemini 3 Flash Lite + */ + model?: components["schemas"]["LensModelEnum"]; + /** @description When false, the reconciler removes the lens's Temporal schedule. On-demand triggers still work. */ + enabled?: boolean; + /** @description When true, the prompt is augmented with the Signal side mission and the lens emits PostHog Signals. */ + emits_signals?: boolean; + /** @description Increments on every config-changing save. Observations snapshot this value. */ + readonly lens_version?: number; + /** + * Format: date-time + * @description Watermark for the lens's last scheduled fire. Mirrors Temporal schedule state for recovery. + */ + readonly last_swept_at?: string; + /** Format: date-time */ + readonly created_at?: string; + /** @description User who created the lens. */ + readonly created_by?: components["schemas"]["UserBasic"] | null; + /** Format: date-time */ + readonly updated_at?: string; + }; + PatchedReviewQueueItemUpdate: { + /** + * Format: uuid + * @description Review queue ID that should own this pending trace. + */ + queue_id?: string; + }; + PatchedReviewQueueUpdate: { + /** @description Human-readable queue name. */ + name?: string; + }; + PatchedRole: { + /** Format: uuid */ + readonly id?: string; + name?: string; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** @description Members assigned to this role */ + readonly members?: { + [key: string]: unknown; + }[]; + readonly is_default?: boolean; + }; + PatchedSandboxEnvironment: { + /** Format: uuid */ + readonly id?: string; + name?: string; + network_access_level?: components["schemas"]["NetworkAccessLevelEnum"]; + /** @description List of allowed domains for custom network access */ + allowed_domains?: string[]; + /** @description Whether to include default trusted domains (GitHub, npm, PyPI) */ + include_default_domains?: boolean; + /** @description List of repositories this environment applies to (format: org/repo) */ + repositories?: string[]; + /** @description Encrypted environment variables (write-only, never returned in responses) */ + environment_variables?: unknown; + /** @description Whether this environment has any environment variables set */ + readonly has_environment_variables?: boolean; + /** @description If true, only the creator can see this environment. Otherwise visible to whole team. */ + private?: boolean; + /** @description If true, this environment is for internal use (e.g. signals pipeline) and should not be exposed to end users. */ + readonly internal?: boolean; + /** @description Computed domain allowlist based on network_access_level and allowed_domains */ + readonly effective_domains?: string[]; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + }; + PatchedSchemaPropertyGroup: { + /** Format: uuid */ + readonly id?: string; + name?: string; + description?: string; + properties?: components["schemas"]["SchemaPropertyGroupProperty"][]; + readonly events?: components["schemas"]["EventDefinitionBasic"][]; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + }; + PatchedScoreDefinitionMetadata: { + /** @description Updated scorer name. */ + name?: string; + /** @description Updated scorer description. */ + description?: string | null; + /** @description Whether the scorer is archived. */ + archived?: boolean; + }; + PatchedSessionGroupSummary: { + /** Format: uuid */ + readonly id?: string; + /** @description Title of the group session summary */ + readonly title?: string; + /** @description List of session replay IDs included in this group summary */ + readonly session_ids?: string[]; + /** @description Group summary in JSON format (EnrichedSessionGroupSummaryPatternsList schema) */ + readonly summary?: unknown; + /** @description Additional context passed to the summary (ExtraSummaryContext schema) */ + readonly extra_summary_context?: unknown; + /** @description Summary run metadata (SessionSummaryRunMeta schema) */ + readonly run_metadata?: unknown; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + readonly team?: number; + }; + PatchedSessionRecording: { + readonly id?: string; + readonly distinct_id?: string | null; + readonly viewed?: boolean; + readonly viewers?: string[]; + readonly recording_duration?: number; + readonly active_seconds?: number | null; + readonly inactive_seconds?: number | null; + /** Format: date-time */ + readonly start_time?: string | null; + /** Format: date-time */ + readonly end_time?: string | null; + readonly click_count?: number | null; + readonly keypress_count?: number | null; + readonly mouse_activity_count?: number | null; + readonly console_log_count?: number | null; + readonly console_warn_count?: number | null; + readonly console_error_count?: number | null; + readonly start_url?: string | null; + person?: components["schemas"]["MinimalPerson"]; + readonly retention_period_days?: number | null; + /** Format: date-time */ + readonly expiry_time?: string | null; + readonly recording_ttl?: number | null; + readonly snapshot_source?: string | null; + readonly snapshot_library?: string | null; + readonly ongoing?: boolean; + /** Format: double */ + readonly activity_score?: number | null; + readonly has_summary?: boolean; + readonly summary_outcome?: components["schemas"]["Outcome"] | null; + /** @description Load external references (linked issues) for this recording */ + readonly external_references?: { + [key: string]: unknown; + }[]; + }; + PatchedSessionRecordingPlaylist: { + readonly id?: number; + readonly short_id?: string; + /** @description Human-readable name for the playlist. */ + name?: string | null; + derived_name?: string | null; + /** @description Optional description of the playlist's purpose or contents. */ + description?: string; + /** @description Whether this playlist is pinned to the top of the list. */ + pinned?: boolean; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** @description Set to true to soft-delete the playlist. */ + deleted?: boolean; + /** @description JSON object with recording filter criteria. Only used when type is 'filters'. Defines which recordings match this saved filter view. When updating a filters-type playlist, you must include the existing filters alongside any other changes — omitting filters will be treated as removing them. */ + filters?: unknown; + /** Format: date-time */ + readonly last_modified_at?: string; + readonly last_modified_by?: components["schemas"]["UserBasic"]; + readonly recordings_counts?: { + [key: string]: { + [key: string]: number | boolean | null; + }; + }; + /** + * @description Playlist type: 'collection' for manually curated recordings, 'filters' for saved filter views. Required on create, cannot be changed after. + * + * * `collection` - Collection + * * `filters` - Filters + */ + type?: components["schemas"]["SessionRecordingPlaylistTypeEnum"] | components["schemas"]["NullEnum"]; + /** @description Return whether this is a synthetic playlist */ + readonly is_synthetic?: boolean; + /** create in folder */ + _create_in_folder?: string; + }; + PatchedSessionSummariesConfig: { + /** @description Free-form description of the team's product, used to tailor AI-generated single-session replay summaries. Injected into the system prompt of every summary generated for this team via the replay page. */ + product_context?: string; + /** @description Team-defined tags layered on top of the fixed taxonomy, as a {name: description} map. Names must be lowercase snake_case (max 60 chars), descriptions max 200 chars, max 15 entries. */ + custom_tags?: { + [key: string]: string; + }; + }; + PatchedSignalSourceConfig: { + /** Format: uuid */ + readonly id?: string; + source_product?: components["schemas"]["SourceProductEnum"]; + source_type?: components["schemas"]["SignalSourceConfigSourceTypeEnum"]; + enabled?: boolean; + config?: unknown; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + readonly status?: string | null; + }; + /** @description Standard Subscription serializer. */ + PatchedSubscription: { + readonly id?: number; + /** @description Dashboard ID to subscribe to (mutually exclusive with insight on create). */ + dashboard?: number | null; + /** @description Insight ID to subscribe to (mutually exclusive with dashboard on create). */ + insight?: number | null; + readonly insight_short_id?: string | null; + readonly resource_name?: string | null; + /** @description List of insight IDs from the dashboard to include. Required for dashboard subscriptions, max 6. */ + dashboard_export_insights?: number[]; + /** + * @description Delivery channel: email, slack, or webhook. + * + * * `email` - Email + * * `slack` - Slack + * * `webhook` - Webhook + */ + target_type?: components["schemas"]["TargetTypeEnum"]; + /** @description Recipient(s): comma-separated email addresses for email, Slack channel name/ID for slack, or full URL for webhook. */ + target_value?: string; + /** + * @description How often to deliver: hourly, daily, weekly, monthly, or yearly. Hourly is feature-flagged and limited to one active subscription per organization. + * + * * `hourly` - Hourly + * * `daily` - Daily + * * `weekly` - Weekly + * * `monthly` - Monthly + * * `yearly` - Yearly + */ + frequency?: components["schemas"]["SubscriptionFrequencyEnum"]; + /** @description Interval multiplier (e.g. 2 with weekly frequency means every 2 weeks). Default 1. */ + interval?: number; + /** @description Days of week for weekly subscriptions: monday, tuesday, wednesday, thursday, friday, saturday, sunday. */ + byweekday?: ("monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday")[] | null; + /** @description Position within byweekday set for monthly frequency (e.g. 1 for first, -1 for last). */ + bysetpos?: number | null; + /** @description Total number of deliveries before the subscription stops. Null for unlimited. */ + count?: number | null; + /** + * Format: date-time + * @description When to start delivering (ISO 8601 datetime). + */ + start_date?: string; + /** + * Format: date-time + * @description When to stop delivering (ISO 8601 datetime). Null for indefinite. + */ + until_date?: string | null; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** @description Set to true to soft-delete. Subscriptions cannot be hard-deleted. */ + deleted?: boolean; + /** @description Whether the subscription is active. Set to false to pause delivery without deleting. Auto-set to false when the delivery integration becomes invalid. */ + enabled?: boolean; + /** @description Human-readable name for this subscription. */ + title?: string | null; + /** @description Human-readable schedule summary, e.g. 'sent daily'. */ + readonly summary?: string; + /** Format: date-time */ + readonly next_delivery_date?: string | null; + /** @description ID of a connected Slack integration. Required when target_type is slack. */ + integration_id?: number | null; + /** @description Optional message included in the invitation email when adding new recipients. */ + invite_message?: string | null; + summary_enabled?: boolean; + summary_prompt_guide?: string; + }; + PatchedSurveySerializerCreateUpdateOnlySchema: { + /** Format: uuid */ + readonly id?: string; + /** @description Survey name. */ + name?: string; + /** @description Survey description. */ + description?: string; + /** + * @description Survey type. + * + * * `popover` - popover + * * `widget` - widget + * * `external_survey` - external survey + * * `api` - api + */ + type?: components["schemas"]["SurveyType"]; + /** + * @description Survey scheduling behavior: 'once' = show once per user (default), 'recurring' = repeat based on iteration_count and iteration_frequency_days settings, 'always' = show every time conditions are met (mainly for widget surveys) + * + * * `once` - once + * * `recurring` - recurring + * * `always` - always + */ + schedule?: components["schemas"]["ScheduleEnum"] | components["schemas"]["NullEnum"]; + readonly linked_flag?: components["schemas"]["MinimalFeatureFlag"]; + /** @description The feature flag linked to this survey. */ + linked_flag_id?: number | null; + linked_insight_id?: number | null; + /** @description An existing targeting flag to use for this survey. */ + targeting_flag_id?: number; + readonly targeting_flag?: components["schemas"]["MinimalFeatureFlag"]; + readonly internal_targeting_flag?: components["schemas"]["MinimalFeatureFlag"]; + /** @description Target specific users based on their properties. Example: {groups: [{properties: [{key: 'email', value: ['@company.com'], operator: 'icontains'}], rollout_percentage: 100}]} */ + targeting_flag_filters?: components["schemas"]["FeatureFlagFiltersSchema"] | null; + /** @description Set to true to completely remove all targeting filters from the survey, making it visible to all users (subject to other display conditions like URL matching). */ + remove_targeting_flag?: boolean | null; + /** + * @description The `array` of questions included in the survey. Each question must conform to one of the defined question types: Basic, Link, Rating, or Multiple Choice. + * + * Basic (open-ended question) + * - `id`: The question ID + * - `type`: `open` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Link (a question with a link) + * - `id`: The question ID + * - `type`: `link` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `link`: The URL associated with the question. + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Rating (a question with a rating scale) + * - `id`: The question ID + * - `type`: `rating` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `display`: Display style of the rating (`number` or `emoji`). + * - `scale`: The scale of the rating (`number`). + * - `lowerBoundLabel`: Label for the lower bound of the scale. + * - `upperBoundLabel`: Label for the upper bound of the scale. + * - `isNpsQuestion`: Whether the question is an NPS rating. + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Multiple choice + * - `id`: The question ID + * - `type`: `single_choice` or `multiple_choice` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `choices`: An array of choices for the question. + * - `shuffleOptions`: Whether to shuffle the order of the choices (`boolean`). + * - `hasOpenChoice`: Whether the question allows an open-ended response (`boolean`). + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Branching logic can be one of the following types: + * + * Next question: Proceeds to the next question + * ```json + * { + * "type": "next_question" + * } + * ``` + * + * End: Ends the survey, optionally displaying a confirmation message. + * ```json + * { + * "type": "end" + * } + * ``` + * + * Response-based: Branches based on the response values. Available for the `rating` and `single_choice` question types. + * ```json + * { + * "type": "response_based", + * "responseValues": { + * "responseKey": "value" + * } + * } + * ``` + * + * Specific question: Proceeds to a specific question by index. + * ```json + * { + * "type": "specific_question", + * "index": 2 + * } + * ``` + * + * Translations: Each question can include inline translations. + * - `translations`: Object mapping language codes to translated fields. + * - Language codes: Any string - allows customers to use their own language keys (e.g., "es", "es-MX", "english", "french") + * - Translatable fields: `question`, `description`, `buttonText`, `choices`, `lowerBoundLabel`, `upperBoundLabel`, `link` + * + * Example with translations: + * ```json + * { + * "id": "uuid", + * "type": "rating", + * "question": "How satisfied are you?", + * "lowerBoundLabel": "Not satisfied", + * "upperBoundLabel": "Very satisfied", + * "translations": { + * "es": { + * "question": "¿Qué tan satisfecho estás?", + * "lowerBoundLabel": "No satisfecho", + * "upperBoundLabel": "Muy satisfecho" + * }, + * "fr": { + * "question": "Dans quelle mesure êtes-vous satisfait?" + * } + * } + * } + * ``` + */ + questions?: components["schemas"]["SurveyQuestionInputSchema"][] | null; + /** @description Display and targeting conditions for the survey. */ + conditions?: components["schemas"]["SurveyConditionsSchema"] | null; + /** @description Survey appearance customization. */ + appearance?: components["schemas"]["SurveyAppearanceSchema"] | null; + /** Format: date-time */ + readonly created_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** + * Format: date-time + * @description Setting this will launch the survey immediately. Don't add a start_date unless explicitly requested to do so. + */ + start_date?: string | null; + /** + * Format: date-time + * @description When the survey stopped being shown to users. Setting this will complete the survey. + */ + end_date?: string | null; + /** @description Archive state for the survey. */ + archived?: boolean; + /** @description The maximum number of responses before automatically stopping the survey. */ + responses_limit?: number | null; + /** @description For a recurring schedule, this field specifies the number of times the survey should be shown to the user. Use 1 for 'once every X days', higher numbers for multiple repetitions. Works together with iteration_frequency_days to determine the overall survey schedule. */ + iteration_count?: number | null; + /** @description For a recurring schedule, this field specifies the interval in days between each survey instance shown to the user, used alongside iteration_count for precise scheduling. */ + iteration_frequency_days?: number | null; + iteration_start_dates?: (string | null)[] | null; + current_iteration?: number | null; + /** Format: date-time */ + current_iteration_start_date?: string | null; + /** Format: date-time */ + response_sampling_start_date?: string | null; + response_sampling_interval_type?: components["schemas"]["ResponseSamplingIntervalTypeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + response_sampling_interval?: number | null; + response_sampling_limit?: number | null; + response_sampling_daily_limits?: unknown; + /** @description When at least one question is answered, the response is stored (true). The response is stored when all questions are answered (false). */ + enable_partial_responses?: boolean | null; + enable_iframe_embedding?: boolean | null; + translations?: unknown; + /** create in folder */ + _create_in_folder?: string; + form_content?: unknown; + }; + /** @description Mixin for serializers to add user access control fields */ + PatchedTable: { + /** Format: uuid */ + readonly id?: string; + deleted?: boolean | null; + name?: string; + format?: components["schemas"]["TableFormatEnum"]; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string; + url_pattern?: string; + credential?: components["schemas"]["Credential"]; + readonly columns?: { + [key: string]: unknown; + }[]; + readonly external_data_source?: components["schemas"]["SimpleExternalDataSourceSerializers"]; + readonly external_schema?: { + [key: string]: unknown; + } | null; + options?: { + [key: string]: unknown; + }; + /** @description The effective access level the user has for this object */ + readonly user_access_level?: string | null; + }; + PatchedTaggerUpdate: { + name?: string; + description?: string; + enabled?: boolean; + /** @default llm */ + tagger_type: components["schemas"]["TaggerTypeEnum"]; + /** @description Tagger configuration. For tagger_type 'llm': {prompt, tags, min_tags?, max_tags?}. For tagger_type 'hog': {source, tags?}. */ + tagger_config?: components["schemas"]["TaggerConfig"]; + /** @description Conditions that scope when the tagger runs */ + conditions?: components["schemas"]["TaggerCondition"][]; + model_configuration?: components["schemas"]["TaggerModelConfigurationWrite"] | null; + deleted?: boolean; + }; + PatchedTask: { + /** Format: uuid */ + readonly id?: string; + readonly task_number?: number | null; + readonly slug?: string; + title?: string; + title_manually_set?: boolean; + description?: string; + origin_product?: components["schemas"]["OriginProductEnum"]; + repository?: string | null; + /** @description GitHub integration for this task */ + github_integration?: number | null; + /** + * Format: uuid + * @description User-scoped GitHub integration to use for user-authored cloud runs. + */ + github_user_integration?: string | null; + /** Format: uuid */ + signal_report?: string | null; + signal_report_task_relationship?: components["schemas"]["SignalReportTaskRelationshipEnum"]; + /** @description JSON schema for the task. This is used to validate the output of the task. */ + json_schema?: unknown; + /** @description If true, this task is for internal use and should not be exposed to end users. */ + internal?: boolean; + /** @description Latest run details for this task */ + readonly latest_run?: { + [key: string]: unknown; + } | null; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** @description Custom prompt for CI fixes. If blank, a default prompt will be used. */ + ci_prompt?: string | null; + }; + PatchedTaskAutomation: { + /** Format: uuid */ + readonly id?: string; + name?: string; + prompt?: string; + repository?: string; + github_integration?: number | null; + cron_expression?: string; + timezone?: string; + template_id?: string | null; + enabled?: boolean; + /** Format: date-time */ + readonly last_run_at?: string | null; + readonly last_run_status?: string | null; + readonly last_task_id?: string | null; + readonly last_task_run_id?: string | null; + readonly last_error?: string | null; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + }; + PatchedTaskRunSetOutputRequest: { + /** @description Output data from the run. Validated against the task's json_schema if one is set. */ + output?: unknown; + }; + PatchedTaskRunUpdate: { + /** + * @description Current execution status + * + * * `not_started` - not_started + * * `queued` - queued + * * `in_progress` - in_progress + * * `completed` - completed + * * `failed` - failed + * * `cancelled` - cancelled + */ + status?: components["schemas"]["TaskRunUpdateStatusEnum"]; + /** @description Git branch name to associate with the task */ + branch?: string | null; + /** @description Current stage of the run (e.g. research, plan, build) */ + stage?: string | null; + /** @description Output from the run */ + output?: unknown; + /** @description State of the run */ + state?: unknown; + /** @description State keys to remove atomically before applying any state updates. */ + state_remove_keys?: string[]; + /** @description Error message if execution failed */ + error_message?: string | null; + /** + * @description Transition a cloud run to local. Use the resume_in_cloud action to move a run into cloud. + * + * * `local` - local + */ + environment?: components["schemas"]["TaskRunUpdateEnvironmentEnum"]; + }; + PatchedTeam: { + readonly id?: number; + /** Format: uuid */ + readonly uuid?: string; + name?: string; + access_control?: boolean; + /** Format: uuid */ + readonly organization?: string; + /** Format: int64 */ + readonly project_id?: number; + readonly api_token?: string; + readonly secret_api_token?: string | null; + readonly secret_api_token_backup?: string | null; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + readonly ingested_event?: boolean; + readonly default_modifiers?: { + [key: string]: unknown; + }; + readonly person_on_events_querying_enabled?: boolean; + /** @description The effective access level the user has for this object */ + readonly user_access_level?: string | null; + app_urls?: (string | null)[]; + anonymize_ips?: boolean; + completed_snippet_onboarding?: boolean; + test_account_filters?: unknown; + test_account_filters_default_checked?: boolean | null; + path_cleaning_filters?: unknown; + is_demo?: boolean; + timezone?: components["schemas"]["TimezoneEnum"]; + data_attributes?: unknown; + person_display_name_properties?: string[] | null; + correlation_config?: unknown; + autocapture_opt_out?: boolean | null; + autocapture_exceptions_opt_in?: boolean | null; + autocapture_web_vitals_opt_in?: boolean | null; + autocapture_web_vitals_allowed_metrics?: unknown; + autocapture_exceptions_errors_to_ignore?: unknown; + capture_console_log_opt_in?: boolean | null; + logs_settings?: unknown; + capture_performance_opt_in?: boolean | null; + session_recording_opt_in?: boolean; + /** Format: decimal */ + session_recording_sample_rate?: string | null; + session_recording_minimum_duration_milliseconds?: number | null; + session_recording_linked_flag?: unknown; + session_recording_network_payload_capture_config?: unknown; + session_recording_masking_config?: unknown; + session_recording_url_trigger_config?: unknown[] | null; + session_recording_url_blocklist_config?: unknown[] | null; + session_recording_event_trigger_config?: (string | null)[] | null; + session_recording_trigger_match_type_config?: string | null; + /** @description V2 trigger groups configuration for session recording. If present, takes precedence over legacy trigger fields. */ + session_recording_trigger_groups?: unknown; + session_recording_retention_period?: components["schemas"]["SessionRecordingRetentionPeriodEnum"]; + session_replay_config?: unknown; + survey_config?: unknown; + week_start_day?: components["schemas"]["WeekStartDayEnum"] | components["schemas"]["NullEnum"]; + primary_dashboard?: number | null; + live_events_columns?: string[] | null; + recording_domains?: (string | null)[] | null; + cookieless_server_hash_mode?: components["schemas"]["CookielessServerHashModeEnum"] | components["schemas"]["NullEnum"]; + human_friendly_comparison_periods?: boolean | null; + inject_web_apps?: boolean | null; + extra_settings?: unknown; + modifiers?: unknown; + has_completed_onboarding_for?: unknown; + surveys_opt_in?: boolean | null; + heatmaps_opt_in?: boolean | null; + flags_persistence_default?: boolean | null; + feature_flag_confirmation_enabled?: boolean | null; + feature_flag_confirmation_message?: string | null; + /** @description Whether to automatically apply default evaluation contexts to new feature flags */ + default_evaluation_contexts_enabled?: boolean | null; + /** @description Whether to require at least one evaluation context tag when creating new feature flags */ + require_evaluation_contexts?: boolean | null; + capture_dead_clicks?: boolean | null; + default_data_theme?: number | null; + revenue_analytics_config?: components["schemas"]["TeamRevenueAnalyticsConfig"]; + marketing_analytics_config?: components["schemas"]["TeamMarketingAnalyticsConfig"]; + customer_analytics_config?: components["schemas"]["TeamCustomerAnalyticsConfig"]; + onboarding_tasks?: unknown; + /** @default USD */ + base_currency: components["schemas"]["BaseCurrencyEnum"]; + web_analytics_pre_aggregated_tables_enabled?: boolean | null; + receive_org_level_activity_logs?: boolean | null; + /** + * @description Whether this project serves B2B or B2C customers, used to optimize the UI layout. + * + * * `b2b` - B2B + * * `b2c` - B2C + * * `other` - Other + */ + business_model?: components["schemas"]["BusinessModelEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + conversations_enabled?: boolean | null; + conversations_settings?: unknown; + proactive_tasks_enabled?: boolean | null; + readonly effective_membership_level?: components["schemas"]["EffectiveMembershipLevelEnum"]; + readonly has_group_types?: boolean; + readonly group_types?: { + [key: string]: unknown; + }[]; + readonly live_events_token?: string | null; + readonly product_intents?: { + [key: string]: unknown; + }[]; + readonly managed_viewsets?: { + [key: string]: boolean; + }; + readonly available_setup_task_ids?: components["schemas"]["AvailableSetupTaskIdsEnum"][]; + }; + /** @description Serializer mixin that handles tags for objects. */ + PatchedTicket: { + /** Format: uuid */ + readonly id?: string; + readonly ticket_number?: number; + readonly channel_source?: components["schemas"]["ChannelSourceEnum"]; + readonly channel_detail?: components["schemas"]["ChannelDetailEnum"] | components["schemas"]["NullEnum"]; + readonly distinct_id?: string; + /** + * @description Ticket status: new, open, pending, on_hold, or resolved + * + * * `new` - New + * * `open` - Open + * * `pending` - Pending + * * `on_hold` - On hold + * * `resolved` - Resolved + */ + status?: components["schemas"]["TicketStatusEnum"]; + /** + * @description Ticket priority: low, medium, or high. Null if unset. + * + * * `low` - Low + * * `medium` - Medium + * * `high` - High + */ + priority?: components["schemas"]["PriorityEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + readonly assignee?: components["schemas"]["TicketAssignment"]; + /** @description Customer-provided traits such as name and email */ + anonymous_traits?: unknown; + ai_resolved?: boolean; + escalation_reason?: string | null; + /** Format: date-time */ + readonly created_at?: string; + /** Format: date-time */ + readonly updated_at?: string; + readonly message_count?: number; + /** Format: date-time */ + readonly last_message_at?: string | null; + readonly last_message_text?: string | null; + readonly unread_team_count?: number; + readonly unread_customer_count?: number; + readonly session_id?: string | null; + readonly session_context?: unknown; + /** + * Format: date-time + * @description SLA deadline set via workflows. Null means no SLA. + */ + sla_due_at?: string | null; + /** Format: date-time */ + snoozed_until?: string | null; + readonly slack_channel_id?: string | null; + readonly slack_thread_ts?: string | null; + readonly slack_team_id?: string | null; + readonly email_subject?: string | null; + /** Format: email */ + readonly email_from?: string | null; + readonly email_to?: string | null; + readonly cc_participants?: unknown; + readonly github_repo?: string | null; + readonly github_issue_number?: number | null; + readonly person?: components["schemas"]["TicketPerson"] | null; + tags?: unknown[]; + }; + PatchedToolApprovalUpdate: { + approval_state?: components["schemas"]["ToolApprovalUpdateApprovalStateEnum"]; + }; + PatchedTraceReviewUpdate: { + /** @description Trace ID for the review. Only one active review can exist per trace and team. */ + trace_id?: string; + /** @description Optional comment or reasoning for the review. */ + comment?: string | null; + /** @description Full desired score set for this review. Omit scorers you want to leave blank. */ + scores?: components["schemas"]["TraceReviewScoreWrite"][]; + /** + * Format: uuid + * @description Optional review queue ID for queue-context saves. When provided, the matching pending queue item is cleared after the review is saved. If omitted, any pending queue item for the same trace is cleared. + */ + queue_id?: string | null; + }; + PatchedUpdateRepoRequestInput: { + baseline_file_paths?: { + [key: string]: string; + } | null; + enable_pr_comments?: boolean | null; + }; + /** + * @description PATCH payload for text sources. Both fields optional, at least one + * required. `text` triggers a re-chunk; `name` alone does not. + */ + PatchedUpdateTextSource: { + /** @description New human label for the source. */ + name?: string; + /** @description Replacement text. Omit to keep the existing content. */ + text?: string; + }; + PatchedUser: { + /** Format: date-time */ + readonly date_joined?: string; + /** Format: uuid */ + readonly uuid?: string; + readonly distinct_id?: string | null; + first_name?: string; + last_name?: string; + /** + * Email address + * Format: email + */ + email?: string; + /** + * Pending email address awaiting verification + * Format: email + */ + readonly pending_email?: string | null; + readonly is_email_verified?: boolean | null; + /** @description Map of notification preferences. Keys include `plugin_disabled`, `all_weekly_report_disabled`, `project_weekly_digest_disabled`, `error_tracking_weekly_digest_project_enabled`, `web_analytics_weekly_digest_project_enabled`, `organization_member_join_email_disabled`, `data_pipeline_error_threshold` (number between 0.0 and 1.0), and other per-topic switches. Values are either booleans, or (for per-project/per-resource keys) a map of IDs to booleans. Only the keys you send are updated — other preferences stay as-is. */ + notification_settings?: { + [key: string]: unknown; + }; + /** @description Whether PostHog should anonymize events captured for this user when identified. */ + anonymize_data?: boolean | null; + allow_impersonation?: boolean | null; + toolbar_mode?: components["schemas"]["ToolbarModeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + readonly has_password?: boolean; + readonly id?: number; + /** + * Staff status + * @description Designates whether the user can log into this admin site. + */ + is_staff?: boolean; + readonly is_impersonated?: boolean | null; + readonly is_impersonated_until?: string | null; + readonly is_impersonated_read_only?: boolean | null; + readonly sensitive_session_expires_at?: string | null; + readonly team?: components["schemas"]["TeamBasic"]; + readonly organization?: components["schemas"]["Organization"]; + readonly organizations?: components["schemas"]["OrganizationBasic"][]; + set_current_organization?: string; + set_current_team?: string; + password?: string; + /** @description The user's current password. Required when changing `password` if the user already has a usable password set. */ + current_password?: string; + events_column_config?: unknown; + readonly is_2fa_enabled?: boolean; + readonly has_social_auth?: boolean; + readonly has_sso_enforcement?: boolean; + has_seen_product_intro_for?: unknown; + readonly scene_personalisation?: components["schemas"]["ScenePersonalisationBasic"][]; + theme_mode?: components["schemas"]["ThemeModeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + hedgehog_config?: unknown; + allow_sidebar_suggestions?: boolean | null; + shortcut_position?: components["schemas"]["ShortcutPositionEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + role_at_organization?: components["schemas"]["RoleAtOrganizationEnum"]; + /** @description Whether passkeys are enabled for 2FA authentication. Users can disable this to use only TOTP for 2FA while keeping passkeys for login. */ + passkeys_enabled_for_2fa?: boolean | null; + /** Format: date-time */ + readonly onboarding_skipped_at?: string | null; + readonly onboarding_skipped_reason?: components["schemas"]["OnboardingSkippedReasonEnum"] | components["schemas"]["NullEnum"]; + /** Format: uuid */ + readonly onboarding_skipped_organization_id?: string | null; + /** Format: uuid */ + readonly onboarding_delegated_to_invite?: string | null; + /** + * Format: uuid + * @description Organization ID of the pending delegation invite, if any. Used by the frontend to scope the 'waiting for teammate' UI to the org where delegation was initiated. + */ + readonly onboarding_delegated_to_organization_id?: string | null; + /** Format: date-time */ + readonly onboarding_delegation_accepted_at?: string | null; + readonly is_organization_first_user?: boolean | null; + /** @description Real-time notification types that currently have a live dispatch site. Drives the in-app notifications settings UI. Read-only. */ + readonly active_realtime_notification_types?: string[]; + readonly pending_invites?: components["schemas"]["PendingInvite"][]; + }; + PatchedUserInterview: { + /** Format: uuid */ + readonly id?: string; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string; + interviewee_emails?: string[]; + readonly transcript?: string; + summary?: string; + /** Format: uri */ + audio?: string; + }; + PatchedViewLink: { + /** Format: uuid */ + readonly id?: string; + deleted?: boolean | null; + readonly created_by?: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at?: string; + source_table_name?: string; + source_table_key?: string; + joining_table_name?: string; + joining_table_key?: string; + field_name?: string; + configuration?: unknown; + }; + /** @description Serializer for the exposed /api/web_experiments endpoint, to be used in posthog-js and for headless APIs. */ + PatchedWebExperimentsAPI: { + readonly id?: number; + name?: string; + /** Format: date-time */ + created_at?: string; + readonly feature_flag_key?: string; + /** + * @description Variants for the web experiment. Example: + * + * { + * "control": { + * "transforms": [ + * { + * "text": "Here comes Superman!", + * "html": "", + * "selector": "#page > #body > .header h1" + * } + * ], + * "conditions": "None", + * "rollout_percentage": 50 + * }, + * } + */ + variants?: unknown; + }; + /** PathCleaningFilter */ + PathCleaningFilter: { + /** + * Alias + * @default null + */ + alias: string | null; + /** + * Order + * @default null + */ + order: number | null; + /** + * Regex + * @default null + */ + regex: string | null; + }; + /** + * PathType + * @enum {string} + */ + PathType: "$pageview" | "$screen" | "custom_event" | "hogql"; + /** PathsFilter */ + PathsFilter: { + /** + * Edgelimit + * @default 50 + */ + edgeLimit: number | null; + /** + * Endpoint + * @default null + */ + endPoint: string | null; + /** + * Excludeevents + * @default null + */ + excludeEvents: string[] | null; + /** + * Includeeventtypes + * @default null + */ + includeEventTypes: components["schemas"]["PathType"][] | null; + /** + * Localpathcleaningfilters + * @default null + */ + localPathCleaningFilters: components["schemas"]["PathCleaningFilter"][] | null; + /** + * Maxedgeweight + * @default null + */ + maxEdgeWeight: number | null; + /** + * Minedgeweight + * @default null + */ + minEdgeWeight: number | null; + /** + * Pathdropoffkey + * @description Relevant only within actors query + * @default null + */ + pathDropoffKey: string | null; + /** + * Pathendkey + * @description Relevant only within actors query + * @default null + */ + pathEndKey: string | null; + /** + * Pathgroupings + * @default null + */ + pathGroupings: string[] | null; + /** + * Pathreplacements + * @default null + */ + pathReplacements: boolean | null; + /** + * Pathstartkey + * @description Relevant only within actors query + * @default null + */ + pathStartKey: string | null; + /** + * Pathshogqlexpression + * @default null + */ + pathsHogQLExpression: string | null; + /** + * Showfullurls + * @default null + */ + showFullUrls: boolean | null; + /** + * Startpoint + * @default null + */ + startPoint: string | null; + /** + * Steplimit + * @default 5 + */ + stepLimit: number | null; + }; + /** PathsLink */ + PathsLink: { + /** Average Conversion Time */ + average_conversion_time: number; + /** Source */ + source: string; + /** Target */ + target: string; + /** Value */ + value: number; + }; + /** PathsQuery */ + PathsQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation + * @default null + */ + aggregation_group_type_index: number | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization + * @default null + */ + dataColorTheme: number | null; + /** + * @description Date range for the query + * @default null + */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Filtertestaccounts + * @description Exclude internal and test users by applying the respective filters + * @default false + */ + filterTestAccounts: boolean | null; + /** + * @description Used for displaying paths in relation to funnel steps. + * @default null + */ + funnelPathsFilter: components["schemas"]["FunnelPathsFilter"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "PathsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @description Properties specific to the paths insight */ + pathsFilter: components["schemas"]["PathsFilter"]; + /** + * Properties + * @description Property filters for all series + * @default [] + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | components["schemas"]["PropertyGroupFilter"] | null; + /** @default null */ + response: components["schemas"]["PathsQueryResponse"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** + * @description Tags that will be added to the Query log comment + * @default null + */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** PathsQueryResponse */ + PathsQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["PathsLink"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + PauseResponse: { + /** @description Always 'paused'. */ + status: string; + /** + * Format: date-time + * @description The timestamp the pipeline is paused until. + */ + paused_until: string; + }; + PauseStateResponse: { + /** + * Format: date-time + * @description The timestamp the pipeline is paused until, or null if not paused/not running. + */ + paused_until: string | null; + }; + PauseUntilRequest: { + /** + * Format: date-time + * @description Pause the grouping pipeline until this timestamp (ISO 8601). + */ + timestamp: string; + }; + /** @description Shape of each item in UserSerializer.pending_invites. */ + PendingInvite: { + id: string; + /** Format: email */ + target_email: string; + organization_id: string; + organization_name: string; + /** Format: date-time */ + created_at: string; + }; + PersistedFolder: { + /** Format: uuid */ + readonly id: string; + type: components["schemas"]["PersistedFolderTypeEnum"]; + protocol?: string; + path?: string; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + /** + * @description * `home` - Home + * * `pinned` - Pinned + * * `custom_products` - Custom Products + * @enum {string} + */ + PersistedFolderTypeEnum: "home" | "pinned" | "custom_products"; + /** Person */ + Person: { + /** Distinct Ids */ + distinct_ids: string[]; + /** + * Is Identified + * @default null + */ + is_identified: boolean | null; + /** Properties */ + properties: { + [key: string]: unknown; + }; + }; + PersonBulkDeleteRequest: { + /** @description A list of PostHog person UUIDs to delete (max 1000). */ + ids?: string[]; + /** @description A list of distinct IDs whose associated persons will be deleted (max 1000). */ + distinct_ids?: string[]; + /** + * @description If true, queue deletion of all events associated with these persons. + * @default false + */ + delete_events: boolean; + /** + * @description If true, queue deletion of all recordings associated with these persons. + * @default false + */ + delete_recordings: boolean; + /** + * @description If true, keep the person records but delete their events and recordings. + * @default false + */ + keep_person: boolean; + }; + PersonBulkDeleteResponse: { + /** @description Number of persons matched by the provided IDs or distinct IDs. */ + persons_found: number; + /** @description Number of person records deleted from the database. 0 if keep_person was true. */ + persons_deleted: number; + /** @description Whether event deletion was requested for the matched persons. If a deletion was already queued for a person, it will not be duplicated. */ + events_queued_for_deletion: boolean; + /** @description Whether recording deletion was requested for the matched persons. If a deletion was already queued for a person, it will not be duplicated. */ + recordings_queued_for_deletion: boolean; + /** @description Persons that could not be deleted. Each entry contains 'person_uuid'. Contact support if this persists. */ + deletion_errors?: { + [key: string]: unknown; + }[]; + }; + PersonDeletePropertyRequest: { + /** @description The property key to remove from this person. */ + $unset: string; + }; + /** PersonFilter */ + PersonFilter: { + /** + * Bytecode + * @default null + */ + bytecode: unknown[] | null; + /** + * Bytecode Error + * @default null + */ + bytecode_error: string | null; + /** + * Conditionhash + * @default null + */ + conditionHash: string | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + type: "person"; + /** Key */ + key: string; + /** + * Operator + * @default null + */ + operator: string | null; + /** + * Value + * @default null + */ + value: unknown; + /** + * Negation + * @default false + */ + negation: boolean; + }; + /** @description Serializer for the point-in-time query metadata. */ + PersonPropertiesAtTimeMetadata: { + /** @description The timestamp that was queried in ISO format */ + queried_timestamp: string; + /** @description Whether $set_once operations were included */ + include_set_once: boolean; + /** @description The distinct_id parameter used in the request */ + distinct_id_used: string | null; + /** @description The person_id parameter used in the request */ + person_id_used: string | null; + /** @description Whether the query used 'distinct_id' or 'person_id' mode */ + query_mode: string; + /** @description All distinct_ids that were queried for this person */ + distinct_ids_queried: string[]; + /** @description Number of distinct_ids associated with this person */ + distinct_ids_count: number; + }; + /** @description Serializer for the point-in-time person properties response. */ + PersonPropertiesAtTimeResponse: { + /** @description The person ID */ + id: number; + /** @description The person's display name */ + name: string; + /** @description All distinct IDs associated with this person */ + distinct_ids: string[]; + /** @description Person properties as they existed at the specified time */ + properties: { + [key: string]: string | null; + }; + /** + * Format: date-time + * @description When the person was first created + */ + created_at: string; + /** + * Format: uuid + * @description The person's UUID + */ + uuid: string; + /** + * Format: date-time + * @description When the person was last seen + */ + last_seen_at: string | null; + /** @description Metadata about the point-in-time query */ + point_in_time_metadata: components["schemas"]["PersonPropertiesAtTimeMetadata"]; + }; + /** PersonPropertyFilter */ + PersonPropertyFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + /** + * Type + * @description Person properties + * @default person + * @constant + */ + type: "person"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + PersonRecord: { + /** @description Numeric person ID. */ + readonly id: number; + /** @description Display name derived from person properties (email, name, or username). */ + readonly name: string; + readonly distinct_ids: string[]; + /** @description Key-value map of person properties set via $set and $set_once operations. */ + properties?: unknown; + /** + * Format: date-time + * @description When this person was first seen (ISO 8601). + */ + readonly created_at: string; + /** + * Format: uuid + * @description Unique identifier (UUID) for this person. + */ + readonly uuid: string; + /** + * Format: date-time + * @description Timestamp of the last event from this person, or null. + */ + readonly last_seen_at: string | null; + }; + /** PersonType */ + PersonType: { + /** + * Created At + * @default null + */ + created_at: string | null; + /** Distinct Ids */ + distinct_ids: string[]; + /** + * Id + * @default null + */ + id: string | null; + /** + * Is Identified + * @default null + */ + is_identified: boolean | null; + /** + * Last Seen At + * @default null + */ + last_seen_at: string | null; + /** + * Name + * @default null + */ + name: string | null; + /** Properties */ + properties: { + [key: string]: unknown; + }; + /** + * Uuid + * @default null + */ + uuid: string | null; + }; + PersonUpdatePropertyRequest: { + /** @description The property key to set. */ + key: string; + /** @description The property value. Can be a string, number, boolean, or object. */ + value: unknown; + }; + /** + * PersonsArgMaxVersion + * @enum {string} + */ + PersonsArgMaxVersion: "auto" | "v1" | "v2"; + /** + * PersonsJoinMode + * @enum {string} + */ + PersonsJoinMode: "inner" | "left"; + /** PersonsNode */ + PersonsNode: { + /** + * Cohort + * @default null + */ + cohort: number | null; + /** + * Distinctid + * @default null + */ + distinctId: string | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "PersonsNode"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Response + * @default null + */ + response: { + [key: string]: unknown; + } | null; + /** + * Search + * @default null + */ + search: string | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** + * PersonsOnEventsMode + * @enum {string} + */ + PersonsOnEventsMode: "disabled" | "person_id_no_override_properties_on_events" | "person_id_override_properties_on_events" | "person_id_override_properties_joined"; + PinnedSceneTab: { + /** @description Stable identifier for the tab. Generated client-side; safe to omit on create. */ + id?: string; + /** @description URL pathname the tab points at — for example `/project/123/dashboard/45` or `/project/123/insights`. Combined with `search` and `hash` to reconstruct the destination. */ + pathname?: string; + /** @description Query string portion of the URL, including the leading `?`. Empty string when there is no query. */ + search?: string; + /** @description Fragment portion of the URL, including the leading `#`. Empty string when there is no fragment. */ + hash?: string; + /** @description Default tab title derived from the destination scene. Used when `customTitle` is not set. */ + title?: string; + /** @description Optional user-provided title that overrides `title` in the navigation UI. */ + customTitle?: string | null; + /** @description Icon key shown next to the tab in the sidebar — for example `dashboard`, `insight`, `blank`. */ + iconType?: string; + /** @description Scene identifier resolved from the pathname when known — used by the frontend for icon/title hints. */ + sceneId?: string | null; + /** @description Scene key (logic key) for the destination, paired with `sceneParams` for deeper routing context. */ + sceneKey?: string | null; + /** @description Free-form scene parameters captured at pin time, used by the frontend to rehydrate the destination. */ + sceneParams?: unknown; + /** @description Whether this entry is pinned. Always coerced to true on save — pass true or omit. */ + pinned?: boolean; + }; + PinnedSceneTabs: { + /** @description Ordered list of pinned navigation tabs shown in the sidebar for the authenticated user within the current team. Send the full list to replace the existing pins; omit to leave them unchanged. */ + tabs?: components["schemas"]["PinnedSceneTab"][]; + /** @description Tab descriptor for the user's chosen home page — the destination opened when they click the PostHog logo or hit `/`. Set to a tab descriptor to pick a homepage, send `null` or `{}` to clear it and fall back to the project default. */ + homepage?: components["schemas"]["PinnedSceneTab"] | null; + }; + PluginLogEntry: { + /** Format: uuid */ + id: string; + team_id: number; + plugin_id: number; + plugin_config_id: number; + /** Format: date-time */ + timestamp: string; + source: components["schemas"]["PluginLogEntrySourceEnum"]; + type: components["schemas"]["PluginLogEntryTypeEnum"]; + message: string; + /** Format: uuid */ + instance_id: string; + }; + /** + * @description * `SYSTEM` - SYSTEM + * * `PLUGIN` - PLUGIN + * * `CONSOLE` - CONSOLE + * @enum {string} + */ + PluginLogEntrySourceEnum: "SYSTEM" | "PLUGIN" | "CONSOLE"; + /** + * @description * `DEBUG` - DEBUG + * * `LOG` - LOG + * * `INFO` - INFO + * * `WARN` - WARN + * * `ERROR` - ERROR + * @enum {string} + */ + PluginLogEntryTypeEnum: "DEBUG" | "LOG" | "INFO" | "WARN" | "ERROR"; + /** + * @description * `0` - none + * * `3` - config + * * `6` - install + * * `9` - root + * @enum {integer} + */ + PluginsAccessLevelEnum: 0 | 3 | 6 | 9; + /** Population */ + Population: { + /** Both */ + both: number; + /** Exception Only */ + exception_only: number; + /** Neither */ + neither: number; + /** Success Only */ + success_only: number; + }; + /** + * Position + * @enum {string} + */ + Position: "start" | "end"; + /** + * @description * `user` - user + * * `bot` - bot + * @enum {string} + */ + PrAuthorshipModeEnum: "user" | "bot"; + /** + * PrecomputationMode + * @enum {string} + */ + PrecomputationMode: "precomputed" | "direct"; + /** PreprocessingConfig */ + PreprocessingConfig: { + /** + * Diffs N + * @description Order of differencing. 0 = raw values, 1 = first-order diffs (default: 0) + * @default null + */ + diffs_n: number | null; + /** + * Lags N + * @description Number of lag features. 0 = none, >0 = include n lagged values (default: 0) + * @default null + */ + lags_n: number | null; + /** + * Smooth N + * @description Moving average window size. 0 = no smoothing, >1 = smooth over n points (default: 0) + * @default null + */ + smooth_n: number | null; + }; + PrimaryPropertiesResponse: { + /** @description Mapping from event name to the team-configured primary property for that event. Names without a configured primary property are omitted; callers should fall back to the core taxonomy defaults for those. */ + primary_properties: { + [key: string]: string; + }; + }; + /** + * @description * `low` - Low + * * `medium` - Medium + * * `high` - High + * @enum {string} + */ + PriorityEnum: "low" | "medium" | "high"; + /** @description Read-only serializer for ProductTour. */ + ProductTour: { + /** Format: uuid */ + readonly id: string; + name: string; + description?: string; + readonly internal_targeting_flag: components["schemas"]["MinimalFeatureFlag"]; + readonly linked_flag: components["schemas"]["MinimalFeatureFlag"]; + /** @description Return the targeting flag filters, excluding the base exclusion properties. */ + readonly targeting_flag_filters: { + [key: string]: unknown; + } | null; + content?: unknown; + readonly draft_content: unknown; + readonly has_draft: boolean; + auto_launch?: boolean; + /** Format: date-time */ + start_date?: string | null; + /** Format: date-time */ + end_date?: string | null; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly updated_at: string; + archived?: boolean; + }; + /** @description Serializer for creating and updating ProductTour. */ + ProductTourSerializerCreateUpdateOnly: { + /** Format: uuid */ + readonly id: string; + name: string; + description?: string; + readonly internal_targeting_flag: components["schemas"]["MinimalFeatureFlag"]; + readonly linked_flag: components["schemas"]["MinimalFeatureFlag"]; + linked_flag_id?: number | null; + targeting_flag_filters?: unknown; + content?: unknown; + auto_launch?: boolean; + /** Format: date-time */ + start_date?: string | null; + /** Format: date-time */ + end_date?: string | null; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly updated_at: string; + archived?: boolean; + /** + * @description Where the tour was created/updated from + * + * * `app` - app + * * `toolbar` - toolbar + * @default app + */ + creation_context: components["schemas"]["ProductTourSerializerCreateUpdateOnlyCreationContextEnum"]; + }; + /** + * @description * `app` - app + * * `toolbar` - toolbar + * @enum {string} + */ + ProductTourSerializerCreateUpdateOnlyCreationContextEnum: "app" | "toolbar"; + /** + * @description Like `ProjectBasicSerializer`, but also works as a drop-in replacement for `TeamBasicSerializer` by way of + * passthrough fields. This allows the meaning of `Team` to change from "project" to "environment" without breaking + * backward compatibility of the REST API. + * Do not use this in greenfield endpoints! + */ + ProjectBackwardCompat: { + readonly id: number; + /** Format: uuid */ + readonly organization: string; + /** @description Human-readable project name. */ + name?: string; + /** @description Short description of what the project is about. This is helpful to give our AI agents context about your project. */ + product_description?: string | null; + /** Format: date-time */ + readonly created_at: string; + readonly effective_membership_level: components["schemas"]["EffectiveMembershipLevelEnum"]; + readonly has_group_types: boolean; + readonly group_types: { + [key: string]: unknown; + }[]; + readonly live_events_token: string | null; + /** Format: date-time */ + readonly updated_at: string; + /** Format: uuid */ + readonly uuid: string; + readonly api_token: string; + app_urls?: (string | null)[]; + /** @description When true, PostHog drops the IP address from every ingested event. */ + anonymize_ips?: boolean; + completed_snippet_onboarding?: boolean; + readonly ingested_event: boolean; + /** @description Filter groups that identify internal/test traffic to be excluded from insights. */ + test_account_filters?: unknown; + /** @description When true, new insights default to excluding internal/test users. */ + test_account_filters_default_checked?: boolean | null; + /** @description Regex rewrite rules that collapse dynamic path segments (e.g. user IDs) before displaying URLs in paths. */ + path_cleaning_filters?: unknown; + is_demo?: boolean; + /** + * @description IANA timezone used for date-based filters and reporting (e.g. `America/Los_Angeles`). + * + * * `Africa/Abidjan` - Africa/Abidjan + * * `Africa/Accra` - Africa/Accra + * * `Africa/Addis_Ababa` - Africa/Addis_Ababa + * * `Africa/Algiers` - Africa/Algiers + * * `Africa/Asmara` - Africa/Asmara + * * `Africa/Asmera` - Africa/Asmera + * * `Africa/Bamako` - Africa/Bamako + * * `Africa/Bangui` - Africa/Bangui + * * `Africa/Banjul` - Africa/Banjul + * * `Africa/Bissau` - Africa/Bissau + * * `Africa/Blantyre` - Africa/Blantyre + * * `Africa/Brazzaville` - Africa/Brazzaville + * * `Africa/Bujumbura` - Africa/Bujumbura + * * `Africa/Cairo` - Africa/Cairo + * * `Africa/Casablanca` - Africa/Casablanca + * * `Africa/Ceuta` - Africa/Ceuta + * * `Africa/Conakry` - Africa/Conakry + * * `Africa/Dakar` - Africa/Dakar + * * `Africa/Dar_es_Salaam` - Africa/Dar_es_Salaam + * * `Africa/Djibouti` - Africa/Djibouti + * * `Africa/Douala` - Africa/Douala + * * `Africa/El_Aaiun` - Africa/El_Aaiun + * * `Africa/Freetown` - Africa/Freetown + * * `Africa/Gaborone` - Africa/Gaborone + * * `Africa/Harare` - Africa/Harare + * * `Africa/Johannesburg` - Africa/Johannesburg + * * `Africa/Juba` - Africa/Juba + * * `Africa/Kampala` - Africa/Kampala + * * `Africa/Khartoum` - Africa/Khartoum + * * `Africa/Kigali` - Africa/Kigali + * * `Africa/Kinshasa` - Africa/Kinshasa + * * `Africa/Lagos` - Africa/Lagos + * * `Africa/Libreville` - Africa/Libreville + * * `Africa/Lome` - Africa/Lome + * * `Africa/Luanda` - Africa/Luanda + * * `Africa/Lubumbashi` - Africa/Lubumbashi + * * `Africa/Lusaka` - Africa/Lusaka + * * `Africa/Malabo` - Africa/Malabo + * * `Africa/Maputo` - Africa/Maputo + * * `Africa/Maseru` - Africa/Maseru + * * `Africa/Mbabane` - Africa/Mbabane + * * `Africa/Mogadishu` - Africa/Mogadishu + * * `Africa/Monrovia` - Africa/Monrovia + * * `Africa/Nairobi` - Africa/Nairobi + * * `Africa/Ndjamena` - Africa/Ndjamena + * * `Africa/Niamey` - Africa/Niamey + * * `Africa/Nouakchott` - Africa/Nouakchott + * * `Africa/Ouagadougou` - Africa/Ouagadougou + * * `Africa/Porto-Novo` - Africa/Porto-Novo + * * `Africa/Sao_Tome` - Africa/Sao_Tome + * * `Africa/Timbuktu` - Africa/Timbuktu + * * `Africa/Tripoli` - Africa/Tripoli + * * `Africa/Tunis` - Africa/Tunis + * * `Africa/Windhoek` - Africa/Windhoek + * * `America/Adak` - America/Adak + * * `America/Anchorage` - America/Anchorage + * * `America/Anguilla` - America/Anguilla + * * `America/Antigua` - America/Antigua + * * `America/Araguaina` - America/Araguaina + * * `America/Argentina/Buenos_Aires` - America/Argentina/Buenos_Aires + * * `America/Argentina/Catamarca` - America/Argentina/Catamarca + * * `America/Argentina/ComodRivadavia` - America/Argentina/ComodRivadavia + * * `America/Argentina/Cordoba` - America/Argentina/Cordoba + * * `America/Argentina/Jujuy` - America/Argentina/Jujuy + * * `America/Argentina/La_Rioja` - America/Argentina/La_Rioja + * * `America/Argentina/Mendoza` - America/Argentina/Mendoza + * * `America/Argentina/Rio_Gallegos` - America/Argentina/Rio_Gallegos + * * `America/Argentina/Salta` - America/Argentina/Salta + * * `America/Argentina/San_Juan` - America/Argentina/San_Juan + * * `America/Argentina/San_Luis` - America/Argentina/San_Luis + * * `America/Argentina/Tucuman` - America/Argentina/Tucuman + * * `America/Argentina/Ushuaia` - America/Argentina/Ushuaia + * * `America/Aruba` - America/Aruba + * * `America/Asuncion` - America/Asuncion + * * `America/Atikokan` - America/Atikokan + * * `America/Atka` - America/Atka + * * `America/Bahia` - America/Bahia + * * `America/Bahia_Banderas` - America/Bahia_Banderas + * * `America/Barbados` - America/Barbados + * * `America/Belem` - America/Belem + * * `America/Belize` - America/Belize + * * `America/Blanc-Sablon` - America/Blanc-Sablon + * * `America/Boa_Vista` - America/Boa_Vista + * * `America/Bogota` - America/Bogota + * * `America/Boise` - America/Boise + * * `America/Buenos_Aires` - America/Buenos_Aires + * * `America/Cambridge_Bay` - America/Cambridge_Bay + * * `America/Campo_Grande` - America/Campo_Grande + * * `America/Cancun` - America/Cancun + * * `America/Caracas` - America/Caracas + * * `America/Catamarca` - America/Catamarca + * * `America/Cayenne` - America/Cayenne + * * `America/Cayman` - America/Cayman + * * `America/Chicago` - America/Chicago + * * `America/Chihuahua` - America/Chihuahua + * * `America/Ciudad_Juarez` - America/Ciudad_Juarez + * * `America/Coral_Harbour` - America/Coral_Harbour + * * `America/Cordoba` - America/Cordoba + * * `America/Costa_Rica` - America/Costa_Rica + * * `America/Creston` - America/Creston + * * `America/Cuiaba` - America/Cuiaba + * * `America/Curacao` - America/Curacao + * * `America/Danmarkshavn` - America/Danmarkshavn + * * `America/Dawson` - America/Dawson + * * `America/Dawson_Creek` - America/Dawson_Creek + * * `America/Denver` - America/Denver + * * `America/Detroit` - America/Detroit + * * `America/Dominica` - America/Dominica + * * `America/Edmonton` - America/Edmonton + * * `America/Eirunepe` - America/Eirunepe + * * `America/El_Salvador` - America/El_Salvador + * * `America/Ensenada` - America/Ensenada + * * `America/Fort_Nelson` - America/Fort_Nelson + * * `America/Fort_Wayne` - America/Fort_Wayne + * * `America/Fortaleza` - America/Fortaleza + * * `America/Glace_Bay` - America/Glace_Bay + * * `America/Godthab` - America/Godthab + * * `America/Goose_Bay` - America/Goose_Bay + * * `America/Grand_Turk` - America/Grand_Turk + * * `America/Grenada` - America/Grenada + * * `America/Guadeloupe` - America/Guadeloupe + * * `America/Guatemala` - America/Guatemala + * * `America/Guayaquil` - America/Guayaquil + * * `America/Guyana` - America/Guyana + * * `America/Halifax` - America/Halifax + * * `America/Havana` - America/Havana + * * `America/Hermosillo` - America/Hermosillo + * * `America/Indiana/Indianapolis` - America/Indiana/Indianapolis + * * `America/Indiana/Knox` - America/Indiana/Knox + * * `America/Indiana/Marengo` - America/Indiana/Marengo + * * `America/Indiana/Petersburg` - America/Indiana/Petersburg + * * `America/Indiana/Tell_City` - America/Indiana/Tell_City + * * `America/Indiana/Vevay` - America/Indiana/Vevay + * * `America/Indiana/Vincennes` - America/Indiana/Vincennes + * * `America/Indiana/Winamac` - America/Indiana/Winamac + * * `America/Indianapolis` - America/Indianapolis + * * `America/Inuvik` - America/Inuvik + * * `America/Iqaluit` - America/Iqaluit + * * `America/Jamaica` - America/Jamaica + * * `America/Jujuy` - America/Jujuy + * * `America/Juneau` - America/Juneau + * * `America/Kentucky/Louisville` - America/Kentucky/Louisville + * * `America/Kentucky/Monticello` - America/Kentucky/Monticello + * * `America/Knox_IN` - America/Knox_IN + * * `America/Kralendijk` - America/Kralendijk + * * `America/La_Paz` - America/La_Paz + * * `America/Lima` - America/Lima + * * `America/Los_Angeles` - America/Los_Angeles + * * `America/Louisville` - America/Louisville + * * `America/Lower_Princes` - America/Lower_Princes + * * `America/Maceio` - America/Maceio + * * `America/Managua` - America/Managua + * * `America/Manaus` - America/Manaus + * * `America/Marigot` - America/Marigot + * * `America/Martinique` - America/Martinique + * * `America/Matamoros` - America/Matamoros + * * `America/Mazatlan` - America/Mazatlan + * * `America/Mendoza` - America/Mendoza + * * `America/Menominee` - America/Menominee + * * `America/Merida` - America/Merida + * * `America/Metlakatla` - America/Metlakatla + * * `America/Mexico_City` - America/Mexico_City + * * `America/Miquelon` - America/Miquelon + * * `America/Moncton` - America/Moncton + * * `America/Monterrey` - America/Monterrey + * * `America/Montevideo` - America/Montevideo + * * `America/Montreal` - America/Montreal + * * `America/Montserrat` - America/Montserrat + * * `America/Nassau` - America/Nassau + * * `America/New_York` - America/New_York + * * `America/Nipigon` - America/Nipigon + * * `America/Nome` - America/Nome + * * `America/Noronha` - America/Noronha + * * `America/North_Dakota/Beulah` - America/North_Dakota/Beulah + * * `America/North_Dakota/Center` - America/North_Dakota/Center + * * `America/North_Dakota/New_Salem` - America/North_Dakota/New_Salem + * * `America/Nuuk` - America/Nuuk + * * `America/Ojinaga` - America/Ojinaga + * * `America/Panama` - America/Panama + * * `America/Pangnirtung` - America/Pangnirtung + * * `America/Paramaribo` - America/Paramaribo + * * `America/Phoenix` - America/Phoenix + * * `America/Port-au-Prince` - America/Port-au-Prince + * * `America/Port_of_Spain` - America/Port_of_Spain + * * `America/Porto_Acre` - America/Porto_Acre + * * `America/Porto_Velho` - America/Porto_Velho + * * `America/Puerto_Rico` - America/Puerto_Rico + * * `America/Punta_Arenas` - America/Punta_Arenas + * * `America/Rainy_River` - America/Rainy_River + * * `America/Rankin_Inlet` - America/Rankin_Inlet + * * `America/Recife` - America/Recife + * * `America/Regina` - America/Regina + * * `America/Resolute` - America/Resolute + * * `America/Rio_Branco` - America/Rio_Branco + * * `America/Rosario` - America/Rosario + * * `America/Santa_Isabel` - America/Santa_Isabel + * * `America/Santarem` - America/Santarem + * * `America/Santiago` - America/Santiago + * * `America/Santo_Domingo` - America/Santo_Domingo + * * `America/Sao_Paulo` - America/Sao_Paulo + * * `America/Scoresbysund` - America/Scoresbysund + * * `America/Shiprock` - America/Shiprock + * * `America/Sitka` - America/Sitka + * * `America/St_Barthelemy` - America/St_Barthelemy + * * `America/St_Johns` - America/St_Johns + * * `America/St_Kitts` - America/St_Kitts + * * `America/St_Lucia` - America/St_Lucia + * * `America/St_Thomas` - America/St_Thomas + * * `America/St_Vincent` - America/St_Vincent + * * `America/Swift_Current` - America/Swift_Current + * * `America/Tegucigalpa` - America/Tegucigalpa + * * `America/Thule` - America/Thule + * * `America/Thunder_Bay` - America/Thunder_Bay + * * `America/Tijuana` - America/Tijuana + * * `America/Toronto` - America/Toronto + * * `America/Tortola` - America/Tortola + * * `America/Vancouver` - America/Vancouver + * * `America/Virgin` - America/Virgin + * * `America/Whitehorse` - America/Whitehorse + * * `America/Winnipeg` - America/Winnipeg + * * `America/Yakutat` - America/Yakutat + * * `America/Yellowknife` - America/Yellowknife + * * `Antarctica/Casey` - Antarctica/Casey + * * `Antarctica/Davis` - Antarctica/Davis + * * `Antarctica/DumontDUrville` - Antarctica/DumontDUrville + * * `Antarctica/Macquarie` - Antarctica/Macquarie + * * `Antarctica/Mawson` - Antarctica/Mawson + * * `Antarctica/McMurdo` - Antarctica/McMurdo + * * `Antarctica/Palmer` - Antarctica/Palmer + * * `Antarctica/Rothera` - Antarctica/Rothera + * * `Antarctica/South_Pole` - Antarctica/South_Pole + * * `Antarctica/Syowa` - Antarctica/Syowa + * * `Antarctica/Troll` - Antarctica/Troll + * * `Antarctica/Vostok` - Antarctica/Vostok + * * `Arctic/Longyearbyen` - Arctic/Longyearbyen + * * `Asia/Aden` - Asia/Aden + * * `Asia/Almaty` - Asia/Almaty + * * `Asia/Amman` - Asia/Amman + * * `Asia/Anadyr` - Asia/Anadyr + * * `Asia/Aqtau` - Asia/Aqtau + * * `Asia/Aqtobe` - Asia/Aqtobe + * * `Asia/Ashgabat` - Asia/Ashgabat + * * `Asia/Ashkhabad` - Asia/Ashkhabad + * * `Asia/Atyrau` - Asia/Atyrau + * * `Asia/Baghdad` - Asia/Baghdad + * * `Asia/Bahrain` - Asia/Bahrain + * * `Asia/Baku` - Asia/Baku + * * `Asia/Bangkok` - Asia/Bangkok + * * `Asia/Barnaul` - Asia/Barnaul + * * `Asia/Beirut` - Asia/Beirut + * * `Asia/Bishkek` - Asia/Bishkek + * * `Asia/Brunei` - Asia/Brunei + * * `Asia/Calcutta` - Asia/Calcutta + * * `Asia/Chita` - Asia/Chita + * * `Asia/Choibalsan` - Asia/Choibalsan + * * `Asia/Chongqing` - Asia/Chongqing + * * `Asia/Chungking` - Asia/Chungking + * * `Asia/Colombo` - Asia/Colombo + * * `Asia/Dacca` - Asia/Dacca + * * `Asia/Damascus` - Asia/Damascus + * * `Asia/Dhaka` - Asia/Dhaka + * * `Asia/Dili` - Asia/Dili + * * `Asia/Dubai` - Asia/Dubai + * * `Asia/Dushanbe` - Asia/Dushanbe + * * `Asia/Famagusta` - Asia/Famagusta + * * `Asia/Gaza` - Asia/Gaza + * * `Asia/Harbin` - Asia/Harbin + * * `Asia/Hebron` - Asia/Hebron + * * `Asia/Ho_Chi_Minh` - Asia/Ho_Chi_Minh + * * `Asia/Hong_Kong` - Asia/Hong_Kong + * * `Asia/Hovd` - Asia/Hovd + * * `Asia/Irkutsk` - Asia/Irkutsk + * * `Asia/Istanbul` - Asia/Istanbul + * * `Asia/Jakarta` - Asia/Jakarta + * * `Asia/Jayapura` - Asia/Jayapura + * * `Asia/Jerusalem` - Asia/Jerusalem + * * `Asia/Kabul` - Asia/Kabul + * * `Asia/Kamchatka` - Asia/Kamchatka + * * `Asia/Karachi` - Asia/Karachi + * * `Asia/Kashgar` - Asia/Kashgar + * * `Asia/Kathmandu` - Asia/Kathmandu + * * `Asia/Katmandu` - Asia/Katmandu + * * `Asia/Khandyga` - Asia/Khandyga + * * `Asia/Kolkata` - Asia/Kolkata + * * `Asia/Krasnoyarsk` - Asia/Krasnoyarsk + * * `Asia/Kuala_Lumpur` - Asia/Kuala_Lumpur + * * `Asia/Kuching` - Asia/Kuching + * * `Asia/Kuwait` - Asia/Kuwait + * * `Asia/Macao` - Asia/Macao + * * `Asia/Macau` - Asia/Macau + * * `Asia/Magadan` - Asia/Magadan + * * `Asia/Makassar` - Asia/Makassar + * * `Asia/Manila` - Asia/Manila + * * `Asia/Muscat` - Asia/Muscat + * * `Asia/Nicosia` - Asia/Nicosia + * * `Asia/Novokuznetsk` - Asia/Novokuznetsk + * * `Asia/Novosibirsk` - Asia/Novosibirsk + * * `Asia/Omsk` - Asia/Omsk + * * `Asia/Oral` - Asia/Oral + * * `Asia/Phnom_Penh` - Asia/Phnom_Penh + * * `Asia/Pontianak` - Asia/Pontianak + * * `Asia/Pyongyang` - Asia/Pyongyang + * * `Asia/Qatar` - Asia/Qatar + * * `Asia/Qostanay` - Asia/Qostanay + * * `Asia/Qyzylorda` - Asia/Qyzylorda + * * `Asia/Rangoon` - Asia/Rangoon + * * `Asia/Riyadh` - Asia/Riyadh + * * `Asia/Saigon` - Asia/Saigon + * * `Asia/Sakhalin` - Asia/Sakhalin + * * `Asia/Samarkand` - Asia/Samarkand + * * `Asia/Seoul` - Asia/Seoul + * * `Asia/Shanghai` - Asia/Shanghai + * * `Asia/Singapore` - Asia/Singapore + * * `Asia/Srednekolymsk` - Asia/Srednekolymsk + * * `Asia/Taipei` - Asia/Taipei + * * `Asia/Tashkent` - Asia/Tashkent + * * `Asia/Tbilisi` - Asia/Tbilisi + * * `Asia/Tehran` - Asia/Tehran + * * `Asia/Tel_Aviv` - Asia/Tel_Aviv + * * `Asia/Thimbu` - Asia/Thimbu + * * `Asia/Thimphu` - Asia/Thimphu + * * `Asia/Tokyo` - Asia/Tokyo + * * `Asia/Tomsk` - Asia/Tomsk + * * `Asia/Ujung_Pandang` - Asia/Ujung_Pandang + * * `Asia/Ulaanbaatar` - Asia/Ulaanbaatar + * * `Asia/Ulan_Bator` - Asia/Ulan_Bator + * * `Asia/Urumqi` - Asia/Urumqi + * * `Asia/Ust-Nera` - Asia/Ust-Nera + * * `Asia/Vientiane` - Asia/Vientiane + * * `Asia/Vladivostok` - Asia/Vladivostok + * * `Asia/Yakutsk` - Asia/Yakutsk + * * `Asia/Yangon` - Asia/Yangon + * * `Asia/Yekaterinburg` - Asia/Yekaterinburg + * * `Asia/Yerevan` - Asia/Yerevan + * * `Atlantic/Azores` - Atlantic/Azores + * * `Atlantic/Bermuda` - Atlantic/Bermuda + * * `Atlantic/Canary` - Atlantic/Canary + * * `Atlantic/Cape_Verde` - Atlantic/Cape_Verde + * * `Atlantic/Faeroe` - Atlantic/Faeroe + * * `Atlantic/Faroe` - Atlantic/Faroe + * * `Atlantic/Jan_Mayen` - Atlantic/Jan_Mayen + * * `Atlantic/Madeira` - Atlantic/Madeira + * * `Atlantic/Reykjavik` - Atlantic/Reykjavik + * * `Atlantic/South_Georgia` - Atlantic/South_Georgia + * * `Atlantic/St_Helena` - Atlantic/St_Helena + * * `Atlantic/Stanley` - Atlantic/Stanley + * * `Australia/ACT` - Australia/ACT + * * `Australia/Adelaide` - Australia/Adelaide + * * `Australia/Brisbane` - Australia/Brisbane + * * `Australia/Broken_Hill` - Australia/Broken_Hill + * * `Australia/Canberra` - Australia/Canberra + * * `Australia/Currie` - Australia/Currie + * * `Australia/Darwin` - Australia/Darwin + * * `Australia/Eucla` - Australia/Eucla + * * `Australia/Hobart` - Australia/Hobart + * * `Australia/LHI` - Australia/LHI + * * `Australia/Lindeman` - Australia/Lindeman + * * `Australia/Lord_Howe` - Australia/Lord_Howe + * * `Australia/Melbourne` - Australia/Melbourne + * * `Australia/NSW` - Australia/NSW + * * `Australia/North` - Australia/North + * * `Australia/Perth` - Australia/Perth + * * `Australia/Queensland` - Australia/Queensland + * * `Australia/South` - Australia/South + * * `Australia/Sydney` - Australia/Sydney + * * `Australia/Tasmania` - Australia/Tasmania + * * `Australia/Victoria` - Australia/Victoria + * * `Australia/West` - Australia/West + * * `Australia/Yancowinna` - Australia/Yancowinna + * * `Brazil/Acre` - Brazil/Acre + * * `Brazil/DeNoronha` - Brazil/DeNoronha + * * `Brazil/East` - Brazil/East + * * `Brazil/West` - Brazil/West + * * `CET` - CET + * * `CST6CDT` - CST6CDT + * * `Canada/Atlantic` - Canada/Atlantic + * * `Canada/Central` - Canada/Central + * * `Canada/Eastern` - Canada/Eastern + * * `Canada/Mountain` - Canada/Mountain + * * `Canada/Newfoundland` - Canada/Newfoundland + * * `Canada/Pacific` - Canada/Pacific + * * `Canada/Saskatchewan` - Canada/Saskatchewan + * * `Canada/Yukon` - Canada/Yukon + * * `Chile/Continental` - Chile/Continental + * * `Chile/EasterIsland` - Chile/EasterIsland + * * `Cuba` - Cuba + * * `EET` - EET + * * `EST` - EST + * * `EST5EDT` - EST5EDT + * * `Egypt` - Egypt + * * `Eire` - Eire + * * `Etc/GMT` - Etc/GMT + * * `Etc/GMT+0` - Etc/GMT+0 + * * `Etc/GMT+1` - Etc/GMT+1 + * * `Etc/GMT+10` - Etc/GMT+10 + * * `Etc/GMT+11` - Etc/GMT+11 + * * `Etc/GMT+12` - Etc/GMT+12 + * * `Etc/GMT+2` - Etc/GMT+2 + * * `Etc/GMT+3` - Etc/GMT+3 + * * `Etc/GMT+4` - Etc/GMT+4 + * * `Etc/GMT+5` - Etc/GMT+5 + * * `Etc/GMT+6` - Etc/GMT+6 + * * `Etc/GMT+7` - Etc/GMT+7 + * * `Etc/GMT+8` - Etc/GMT+8 + * * `Etc/GMT+9` - Etc/GMT+9 + * * `Etc/GMT-0` - Etc/GMT-0 + * * `Etc/GMT-1` - Etc/GMT-1 + * * `Etc/GMT-10` - Etc/GMT-10 + * * `Etc/GMT-11` - Etc/GMT-11 + * * `Etc/GMT-12` - Etc/GMT-12 + * * `Etc/GMT-13` - Etc/GMT-13 + * * `Etc/GMT-14` - Etc/GMT-14 + * * `Etc/GMT-2` - Etc/GMT-2 + * * `Etc/GMT-3` - Etc/GMT-3 + * * `Etc/GMT-4` - Etc/GMT-4 + * * `Etc/GMT-5` - Etc/GMT-5 + * * `Etc/GMT-6` - Etc/GMT-6 + * * `Etc/GMT-7` - Etc/GMT-7 + * * `Etc/GMT-8` - Etc/GMT-8 + * * `Etc/GMT-9` - Etc/GMT-9 + * * `Etc/GMT0` - Etc/GMT0 + * * `Etc/Greenwich` - Etc/Greenwich + * * `Etc/UCT` - Etc/UCT + * * `Etc/UTC` - Etc/UTC + * * `Etc/Universal` - Etc/Universal + * * `Etc/Zulu` - Etc/Zulu + * * `Europe/Amsterdam` - Europe/Amsterdam + * * `Europe/Andorra` - Europe/Andorra + * * `Europe/Astrakhan` - Europe/Astrakhan + * * `Europe/Athens` - Europe/Athens + * * `Europe/Belfast` - Europe/Belfast + * * `Europe/Belgrade` - Europe/Belgrade + * * `Europe/Berlin` - Europe/Berlin + * * `Europe/Bratislava` - Europe/Bratislava + * * `Europe/Brussels` - Europe/Brussels + * * `Europe/Bucharest` - Europe/Bucharest + * * `Europe/Budapest` - Europe/Budapest + * * `Europe/Busingen` - Europe/Busingen + * * `Europe/Chisinau` - Europe/Chisinau + * * `Europe/Copenhagen` - Europe/Copenhagen + * * `Europe/Dublin` - Europe/Dublin + * * `Europe/Gibraltar` - Europe/Gibraltar + * * `Europe/Guernsey` - Europe/Guernsey + * * `Europe/Helsinki` - Europe/Helsinki + * * `Europe/Isle_of_Man` - Europe/Isle_of_Man + * * `Europe/Istanbul` - Europe/Istanbul + * * `Europe/Jersey` - Europe/Jersey + * * `Europe/Kaliningrad` - Europe/Kaliningrad + * * `Europe/Kiev` - Europe/Kiev + * * `Europe/Kirov` - Europe/Kirov + * * `Europe/Kyiv` - Europe/Kyiv + * * `Europe/Lisbon` - Europe/Lisbon + * * `Europe/Ljubljana` - Europe/Ljubljana + * * `Europe/London` - Europe/London + * * `Europe/Luxembourg` - Europe/Luxembourg + * * `Europe/Madrid` - Europe/Madrid + * * `Europe/Malta` - Europe/Malta + * * `Europe/Mariehamn` - Europe/Mariehamn + * * `Europe/Minsk` - Europe/Minsk + * * `Europe/Monaco` - Europe/Monaco + * * `Europe/Moscow` - Europe/Moscow + * * `Europe/Nicosia` - Europe/Nicosia + * * `Europe/Oslo` - Europe/Oslo + * * `Europe/Paris` - Europe/Paris + * * `Europe/Podgorica` - Europe/Podgorica + * * `Europe/Prague` - Europe/Prague + * * `Europe/Riga` - Europe/Riga + * * `Europe/Rome` - Europe/Rome + * * `Europe/Samara` - Europe/Samara + * * `Europe/San_Marino` - Europe/San_Marino + * * `Europe/Sarajevo` - Europe/Sarajevo + * * `Europe/Saratov` - Europe/Saratov + * * `Europe/Simferopol` - Europe/Simferopol + * * `Europe/Skopje` - Europe/Skopje + * * `Europe/Sofia` - Europe/Sofia + * * `Europe/Stockholm` - Europe/Stockholm + * * `Europe/Tallinn` - Europe/Tallinn + * * `Europe/Tirane` - Europe/Tirane + * * `Europe/Tiraspol` - Europe/Tiraspol + * * `Europe/Ulyanovsk` - Europe/Ulyanovsk + * * `Europe/Uzhgorod` - Europe/Uzhgorod + * * `Europe/Vaduz` - Europe/Vaduz + * * `Europe/Vatican` - Europe/Vatican + * * `Europe/Vienna` - Europe/Vienna + * * `Europe/Vilnius` - Europe/Vilnius + * * `Europe/Volgograd` - Europe/Volgograd + * * `Europe/Warsaw` - Europe/Warsaw + * * `Europe/Zagreb` - Europe/Zagreb + * * `Europe/Zaporozhye` - Europe/Zaporozhye + * * `Europe/Zurich` - Europe/Zurich + * * `GB` - GB + * * `GB-Eire` - GB-Eire + * * `GMT` - GMT + * * `GMT+0` - GMT+0 + * * `GMT-0` - GMT-0 + * * `GMT0` - GMT0 + * * `Greenwich` - Greenwich + * * `HST` - HST + * * `Hongkong` - Hongkong + * * `Iceland` - Iceland + * * `Indian/Antananarivo` - Indian/Antananarivo + * * `Indian/Chagos` - Indian/Chagos + * * `Indian/Christmas` - Indian/Christmas + * * `Indian/Cocos` - Indian/Cocos + * * `Indian/Comoro` - Indian/Comoro + * * `Indian/Kerguelen` - Indian/Kerguelen + * * `Indian/Mahe` - Indian/Mahe + * * `Indian/Maldives` - Indian/Maldives + * * `Indian/Mauritius` - Indian/Mauritius + * * `Indian/Mayotte` - Indian/Mayotte + * * `Indian/Reunion` - Indian/Reunion + * * `Iran` - Iran + * * `Israel` - Israel + * * `Jamaica` - Jamaica + * * `Japan` - Japan + * * `Kwajalein` - Kwajalein + * * `Libya` - Libya + * * `MET` - MET + * * `MST` - MST + * * `MST7MDT` - MST7MDT + * * `Mexico/BajaNorte` - Mexico/BajaNorte + * * `Mexico/BajaSur` - Mexico/BajaSur + * * `Mexico/General` - Mexico/General + * * `NZ` - NZ + * * `NZ-CHAT` - NZ-CHAT + * * `Navajo` - Navajo + * * `PRC` - PRC + * * `PST8PDT` - PST8PDT + * * `Pacific/Apia` - Pacific/Apia + * * `Pacific/Auckland` - Pacific/Auckland + * * `Pacific/Bougainville` - Pacific/Bougainville + * * `Pacific/Chatham` - Pacific/Chatham + * * `Pacific/Chuuk` - Pacific/Chuuk + * * `Pacific/Easter` - Pacific/Easter + * * `Pacific/Efate` - Pacific/Efate + * * `Pacific/Enderbury` - Pacific/Enderbury + * * `Pacific/Fakaofo` - Pacific/Fakaofo + * * `Pacific/Fiji` - Pacific/Fiji + * * `Pacific/Funafuti` - Pacific/Funafuti + * * `Pacific/Galapagos` - Pacific/Galapagos + * * `Pacific/Gambier` - Pacific/Gambier + * * `Pacific/Guadalcanal` - Pacific/Guadalcanal + * * `Pacific/Guam` - Pacific/Guam + * * `Pacific/Honolulu` - Pacific/Honolulu + * * `Pacific/Johnston` - Pacific/Johnston + * * `Pacific/Kanton` - Pacific/Kanton + * * `Pacific/Kiritimati` - Pacific/Kiritimati + * * `Pacific/Kosrae` - Pacific/Kosrae + * * `Pacific/Kwajalein` - Pacific/Kwajalein + * * `Pacific/Majuro` - Pacific/Majuro + * * `Pacific/Marquesas` - Pacific/Marquesas + * * `Pacific/Midway` - Pacific/Midway + * * `Pacific/Nauru` - Pacific/Nauru + * * `Pacific/Niue` - Pacific/Niue + * * `Pacific/Norfolk` - Pacific/Norfolk + * * `Pacific/Noumea` - Pacific/Noumea + * * `Pacific/Pago_Pago` - Pacific/Pago_Pago + * * `Pacific/Palau` - Pacific/Palau + * * `Pacific/Pitcairn` - Pacific/Pitcairn + * * `Pacific/Pohnpei` - Pacific/Pohnpei + * * `Pacific/Ponape` - Pacific/Ponape + * * `Pacific/Port_Moresby` - Pacific/Port_Moresby + * * `Pacific/Rarotonga` - Pacific/Rarotonga + * * `Pacific/Saipan` - Pacific/Saipan + * * `Pacific/Samoa` - Pacific/Samoa + * * `Pacific/Tahiti` - Pacific/Tahiti + * * `Pacific/Tarawa` - Pacific/Tarawa + * * `Pacific/Tongatapu` - Pacific/Tongatapu + * * `Pacific/Truk` - Pacific/Truk + * * `Pacific/Wake` - Pacific/Wake + * * `Pacific/Wallis` - Pacific/Wallis + * * `Pacific/Yap` - Pacific/Yap + * * `Poland` - Poland + * * `Portugal` - Portugal + * * `ROC` - ROC + * * `ROK` - ROK + * * `Singapore` - Singapore + * * `Turkey` - Turkey + * * `UCT` - UCT + * * `US/Alaska` - US/Alaska + * * `US/Aleutian` - US/Aleutian + * * `US/Arizona` - US/Arizona + * * `US/Central` - US/Central + * * `US/East-Indiana` - US/East-Indiana + * * `US/Eastern` - US/Eastern + * * `US/Hawaii` - US/Hawaii + * * `US/Indiana-Starke` - US/Indiana-Starke + * * `US/Michigan` - US/Michigan + * * `US/Mountain` - US/Mountain + * * `US/Pacific` - US/Pacific + * * `US/Samoa` - US/Samoa + * * `UTC` - UTC + * * `Universal` - Universal + * * `W-SU` - W-SU + * * `WET` - WET + * * `Zulu` - Zulu + */ + timezone?: components["schemas"]["TimezoneEnum"]; + /** @description Element attributes that posthog-js should capture as action identifiers (e.g. `['data-attr']`). */ + data_attributes?: unknown; + /** @description Ordered list of person properties used to render a human-friendly display name in the UI. */ + person_display_name_properties?: string[] | null; + correlation_config?: unknown; + /** @description Disables posthog-js autocapture (clicks, page views) when true. */ + autocapture_opt_out?: boolean | null; + /** @description Enables automatic capture of JavaScript exceptions via the SDK. */ + autocapture_exceptions_opt_in?: boolean | null; + /** @description Enables automatic capture of Core Web Vitals performance metrics. */ + autocapture_web_vitals_opt_in?: boolean | null; + autocapture_web_vitals_allowed_metrics?: unknown; + autocapture_exceptions_errors_to_ignore?: unknown; + /** @description Enables capturing browser console logs alongside session replays. */ + capture_console_log_opt_in?: boolean | null; + /** @description Enables capturing performance timing and network requests. */ + capture_performance_opt_in?: boolean | null; + /** @description Enables session replay recording for this project. */ + session_recording_opt_in?: boolean; + /** + * Format: decimal + * @description Fraction of sessions to record, as a decimal string between `0.00` and `1.00` (e.g. `0.1` = 10%). + */ + session_recording_sample_rate?: string | null; + /** @description Skip saving sessions shorter than this many milliseconds. */ + session_recording_minimum_duration_milliseconds?: number | null; + session_recording_linked_flag?: unknown; + session_recording_network_payload_capture_config?: unknown; + session_recording_masking_config?: unknown; + session_recording_url_trigger_config?: unknown[] | null; + session_recording_url_blocklist_config?: unknown[] | null; + session_recording_event_trigger_config?: (string | null)[] | null; + session_recording_trigger_match_type_config?: string | null; + /** @description V2 trigger groups configuration for session recording. If present, takes precedence over legacy trigger fields. */ + session_recording_trigger_groups?: unknown; + /** + * @description How long to retain new session recordings. One of `30d`, `90d`, `1y`, or `5y` (availability depends on plan). + * + * * `30d` - 30 Days + * * `90d` - 90 Days + * * `1y` - 1 Year + * * `5y` - 5 Years + */ + session_recording_retention_period?: components["schemas"]["SessionRecordingRetentionPeriodEnum"]; + session_replay_config?: unknown; + survey_config?: unknown; + access_control?: boolean; + /** + * @description First day of the week for date range filters. 0 = Sunday, 1 = Monday. + * + * * `0` - Sunday + * * `1` - Monday + */ + week_start_day?: components["schemas"]["WeekStartDayEnum"] | components["schemas"]["NullEnum"]; + /** @description ID of the dashboard shown as the project's default landing dashboard. */ + primary_dashboard?: number | null; + live_events_columns?: string[] | null; + /** @description Origins permitted to record session replays and heatmaps. Empty list allows all origins. */ + recording_domains?: (string | null)[] | null; + readonly person_on_events_querying_enabled: boolean; + inject_web_apps?: boolean | null; + extra_settings?: unknown; + modifiers?: unknown; + readonly default_modifiers: { + [key: string]: unknown; + }; + has_completed_onboarding_for?: unknown; + /** @description Enables displaying surveys via posthog-js on allowed origins. */ + surveys_opt_in?: boolean | null; + /** @description Enables heatmap recording on pages that host posthog-js. */ + heatmaps_opt_in?: boolean | null; + readonly product_intents: { + product_type?: string; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + onboarding_completed_at?: string | null; + /** Format: date-time */ + updated_at?: string; + }[]; + /** @description Default value for the `persist` option on newly created feature flags. */ + flags_persistence_default?: boolean | null; + readonly secret_api_token: string | null; + readonly secret_api_token_backup: string | null; + receive_org_level_activity_logs?: boolean | null; + /** + * @description Whether this project serves B2B or B2C customers. Used to optimize default UI layouts. + * + * * `b2b` - B2B + * * `b2c` - B2C + * * `other` - Other + */ + business_model?: components["schemas"]["BusinessModelEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + /** @description Enables the customer conversations / live chat product for this project. */ + conversations_enabled?: boolean | null; + conversations_settings?: unknown; + logs_settings?: unknown; + proactive_tasks_enabled?: boolean | null; + readonly available_setup_task_ids: components["schemas"]["AvailableSetupTaskIdsEnum"][]; + }; + /** + * @description Like `ProjectBasicSerializer`, but also works as a drop-in replacement for `TeamBasicSerializer` by way of + * passthrough fields. This allows the meaning of `Team` to change from "project" to "environment" without breaking + * backward compatibility of the REST API. + * Do not use this in greenfield endpoints! + */ + ProjectBackwardCompatBasic: { + readonly id: number; + /** Format: uuid */ + readonly uuid: string; + /** Format: uuid */ + readonly organization: string; + readonly api_token: string; + readonly name: string; + readonly completed_snippet_onboarding: boolean; + readonly has_completed_onboarding_for: unknown; + readonly ingested_event: boolean; + readonly is_demo: boolean; + readonly timezone: components["schemas"]["TimezoneEnum"]; + readonly access_control: boolean; + }; + ProjectSecretAPIKey: { + readonly id: string; + label: string; + readonly value: string; + readonly mask_value: string | null; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: number | null; + /** Format: date-time */ + readonly last_used_at: string | null; + /** Format: date-time */ + readonly last_rolled_at: string | null; + scopes: string[]; + }; + Property: { + /** + * @description You can use a simplified version: + * ```json + * { + * "properties": [ + * { + * "key": "email", + * "value": "x@y.com", + * "operator": "exact", + * "type": "event" + * } + * ] + * } + * ``` + * + * Or you can create more complicated queries with AND and OR: + * ```json + * { + * "properties": { + * "type": "AND", + * "values": [ + * { + * "type": "OR", + * "values": [ + * {"key": "email", ...}, + * {"key": "email", ...} + * ] + * }, + * { + * "type": "AND", + * "values": [ + * {"key": "email", ...}, + * {"key": "email", ...} + * ] + * } + * ] + * ] + * } + * ``` + * + * + * * `AND` - AND + * * `OR` - OR + * @default AND + */ + type: components["schemas"]["PropertyGroupOperator"]; + values: components["schemas"]["PropertyItem"][]; + }; + /** + * @description * `DateTime` - DateTime + * * `String` - String + * * `Numeric` - Numeric + * * `Boolean` - Boolean + * * `Duration` - Duration + * @enum {string} + */ + PropertyDefinitionTypeEnum: "DateTime" | "String" | "Numeric" | "Boolean" | "Duration"; + /** + * @description * `event` - event + * * `event_metadata` - event_metadata + * * `feature` - feature + * * `person` - person + * * `cohort` - cohort + * * `element` - element + * * `static-cohort` - static-cohort + * * `dynamic-cohort` - dynamic-cohort + * * `precalculated-cohort` - precalculated-cohort + * * `group` - group + * * `recording` - recording + * * `log_entry` - log_entry + * * `behavioral` - behavioral + * * `session` - session + * * `hogql` - hogql + * * `data_warehouse` - data_warehouse + * * `data_warehouse_person_property` - data_warehouse_person_property + * * `error_tracking_issue` - error_tracking_issue + * * `log` - log + * * `log_attribute` - log_attribute + * * `log_resource_attribute` - log_resource_attribute + * * `span` - span + * * `span_attribute` - span_attribute + * * `span_resource_attribute` - span_resource_attribute + * * `revenue_analytics` - revenue_analytics + * * `flag` - flag + * * `workflow_variable` - workflow_variable + * @enum {string} + */ + PropertyFilterTypeEnum: "event" | "event_metadata" | "feature" | "person" | "cohort" | "element" | "static-cohort" | "dynamic-cohort" | "precalculated-cohort" | "group" | "recording" | "log_entry" | "behavioral" | "session" | "hogql" | "data_warehouse" | "data_warehouse_person_property" | "error_tracking_issue" | "log" | "log_attribute" | "log_resource_attribute" | "span" | "span_attribute" | "span_resource_attribute" | "revenue_analytics" | "flag" | "workflow_variable"; + /** PropertyGroupFilter */ + PropertyGroupFilter: { + type: components["schemas"]["FilterLogicalOperator"]; + /** Values */ + values: components["schemas"]["PropertyGroupFilterValue"][]; + }; + /** PropertyGroupFilterValue */ + PropertyGroupFilterValue: { + type: components["schemas"]["FilterLogicalOperator"]; + /** Values */ + values: (components["schemas"]["PropertyGroupFilterValue"] | components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[]; + }; + /** @enum {string} */ + PropertyGroupOperator: "AND" | "OR"; + /** + * @description * `cohort` - cohort + * * `person` - person + * * `group` - group + * @enum {string} + */ + PropertyGroupTypeEnum: "cohort" | "person" | "group"; + /** + * PropertyGroupsMode + * @enum {string} + */ + PropertyGroupsMode: "enabled" | "disabled" | "optimized"; + PropertyItem: { + /** @description Key of the property you're filtering on. For example `email` or `$current_url` */ + key: string; + /** @description Value of your filter. For example `test@example.com` or `https://example.com/test/`. Can be an array for an OR query, like `["test@example.com","ok@example.com"]` */ + value: string | number | boolean | (string | number)[]; + /** @default exact */ + operator: components["schemas"]["PropertyItemOperatorEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + /** @default event */ + type: components["schemas"]["PropertyFilterTypeEnum"] | components["schemas"]["BlankEnum"]; + }; + /** + * @description * `exact` - exact + * * `is_not` - is_not + * * `icontains` - icontains + * * `not_icontains` - not_icontains + * * `regex` - regex + * * `not_regex` - not_regex + * * `gt` - gt + * * `lt` - lt + * * `gte` - gte + * * `lte` - lte + * * `is_set` - is_set + * * `is_not_set` - is_not_set + * * `is_date_exact` - is_date_exact + * * `is_date_after` - is_date_after + * * `is_date_before` - is_date_before + * * `in` - in + * * `not_in` - not_in + * @enum {string} + */ + PropertyItemOperatorEnum: "exact" | "is_not" | "icontains" | "not_icontains" | "regex" | "not_regex" | "gt" | "lt" | "gte" | "lte" | "is_set" | "is_not_set" | "is_date_exact" | "is_date_after" | "is_date_before" | "in" | "not_in"; + /** + * PropertyMathType + * @enum {string} + */ + PropertyMathType: "avg" | "sum" | "min" | "max" | "median" | "p75" | "p90" | "p95" | "p99"; + /** + * PropertyOperator + * @enum {string} + */ + PropertyOperator: "exact" | "is_not" | "icontains" | "not_icontains" | "regex" | "not_regex" | "gt" | "gte" | "lt" | "lte" | "is_set" | "is_not_set" | "is_date_exact" | "is_date_before" | "is_date_after" | "between" | "not_between" | "min" | "max" | "in" | "not_in" | "is_cleaned_path_exact" | "flag_evaluates_to" | "semver_eq" | "semver_neq" | "semver_gt" | "semver_gte" | "semver_lt" | "semver_lte" | "semver_tilde" | "semver_caret" | "semver_wildcard" | "icontains_multi" | "not_icontains_multi"; + /** + * PropertyType + * @enum {string} + */ + PropertyType: "event" | "person"; + /** PropertyValueItem */ + PropertyValueItem: { + /** + * Count + * @default null + */ + count: number | null; + /** + * Name + * @default null + */ + name: string | number | boolean | null; + }; + /** PropertyValuesQuery */ + PropertyValuesQuery: { + /** + * Event Names + * @default null + */ + event_names: string[] | null; + /** + * Is Column + * @default null + */ + is_column: boolean | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "PropertyValuesQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Property Key */ + property_key: string; + property_type: components["schemas"]["PropertyType"]; + /** @default null */ + response: components["schemas"]["PropertyValuesQueryResponse"] | null; + /** + * Search Value + * @default null + */ + search_value: string | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** PropertyValuesQueryResponse */ + PropertyValuesQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["PropertyValueItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + ProvisionWarehouseRequest: { + /** @description Name for the new database */ + database_name: string; + }; + ProvisionWarehouseResponse: { + status: string; + team: string; + }; + ProxyRecord: { + /** + * Format: uuid + * @description Unique identifier for the proxy record. + */ + readonly id: string; + /** @description The custom domain to proxy through, e.g. 'e.example.com'. Must be a valid subdomain you control. */ + domain: string; + /** @description The CNAME target to add as a DNS record for your domain. Point your domain's CNAME to this value. */ + readonly target_cname: string; + /** + * @description Current provisioning status. Values: waiting (DNS verification pending), issuing (SSL certificate being issued), valid (proxy is live and working), warning (proxy has issues but is operational), erroring (proxy setup failed), deleting (removal in progress), timed_out (DNS verification timed out). + * + * * `waiting` - Waiting + * * `issuing` - Issuing + * * `valid` - Valid + * * `warning` - Warning + * * `erroring` - Erroring + * * `deleting` - Deleting + * * `timed_out` - Timed Out + */ + readonly status: components["schemas"]["ProxyRecordStatusEnum"]; + /** @description Human-readable status message with details about errors or warnings, if any. */ + readonly message: string | null; + /** + * Format: date-time + * @description When this proxy record was created. + */ + readonly created_at: string; + /** + * Format: date-time + * @description When this proxy record was last updated. + */ + readonly updated_at: string; + /** @description ID of the user who created this proxy record. */ + readonly created_by: number; + }; + ProxyRecordListResponse: { + results: components["schemas"]["ProxyRecord"][]; + /** @description Maximum number of proxy records allowed for this organization's current plan. */ + max_proxy_records: number; + }; + /** + * @description * `waiting` - Waiting + * * `issuing` - Issuing + * * `valid` - Valid + * * `warning` - Warning + * * `erroring` - Erroring + * * `deleting` - Deleting + * * `timed_out` - Timed Out + * @enum {string} + */ + ProxyRecordStatusEnum: "waiting" | "issuing" | "valid" | "warning" | "erroring" | "deleting" | "timed_out"; + QuarantineInput: { + identifier: string; + reason: string; + /** Format: date-time */ + expires_at?: string | null; + }; + QuarantinedIdentifierEntry: { + created_by?: components["schemas"]["UserBasicInfo"] | null; + /** Format: uuid */ + id: string; + identifier: string; + run_type: string; + reason: string; + /** Format: date-time */ + expires_at: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * QueryIndexUsage + * @enum {string} + */ + QueryIndexUsage: "undecisive" | "no" | "partial" | "yes"; + /** QueryLogTags */ + QueryLogTags: { + /** + * Name + * @description Name of the query, preferably unique. For example web_analytics_vitals + * @default null + */ + name: string | null; + /** + * Productkey + * @description Product responsible for this query. Use string, there's no need to churn the Schema when we add a new product * + * @default null + */ + productKey: string | null; + /** + * Scene + * @description Scene where this query is shown in the UI. Use string, there's no need to churn the Schema when we add a new Scene * + * @default null + */ + scene: string | null; + }; + /** QueryRequest */ + QueryRequest: { + /** + * Async + * @default null + */ + async: boolean | null; + /** + * Client Query Id + * @description Client provided query ID. Can be used to retrieve the status or cancel the query. + * @default null + */ + client_query_id: string | null; + /** @default null */ + filters_override: components["schemas"]["DashboardFilter"] | null; + /** + * @description Limit context for the query. Only 'posthog_ai' is allowed as a client-provided value. + * @default null + */ + limit_context: components["schemas"]["LimitContext"] | null; + /** + * Name + * @description Name given to a query. It's used to identify the query in the UI. Up to 128 characters for a name. + * @default null + */ + name: string | null; + /** + * Query + * @description Submit a JSON string representing a query for PostHog data analysis, for example a HogQL query. + * + * Example payload: + * + * ``` + * + * {"query": {"kind": "HogQLQuery", "query": "select * from events limit 100"}} + * + * ``` + * + * For more details on HogQL queries, see the [PostHog HogQL documentation](/docs/hogql#api-access). + */ + query: components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["PersonsNode"] | components["schemas"]["DataWarehouseNode"] | components["schemas"]["FunnelsDataWarehouseNode"] | components["schemas"]["LifecycleDataWarehouseNode"] | components["schemas"]["EventsQuery"] | components["schemas"]["SessionsQuery"] | components["schemas"]["ActorsQuery"] | components["schemas"]["GroupsQuery"] | components["schemas"]["InsightActorsQuery"] | components["schemas"]["InsightActorsQueryOptions"] | components["schemas"]["SessionsTimelineQuery"] | components["schemas"]["HogQuery"] | components["schemas"]["HogQLQuery"] | components["schemas"]["HogQLMetadata"] | components["schemas"]["HogQLAutocomplete"] | components["schemas"]["SessionAttributionExplorerQuery"] | components["schemas"]["RevenueExampleEventsQuery"] | components["schemas"]["RevenueExampleDataWarehouseTablesQuery"] | components["schemas"]["ErrorTrackingQuery"] | components["schemas"]["ErrorTrackingSimilarIssuesQuery"] | components["schemas"]["ErrorTrackingBreakdownsQuery"] | components["schemas"]["ErrorTrackingIssueCorrelationQuery"] | components["schemas"]["ExperimentFunnelsQuery"] | components["schemas"]["ExperimentTrendsQuery"] | components["schemas"]["ExperimentQuery"] | components["schemas"]["ExperimentExposureQuery"] | components["schemas"]["DocumentSimilarityQuery"] | components["schemas"]["WebOverviewQuery"] | components["schemas"]["WebStatsTableQuery"] | components["schemas"]["WebExternalClicksTableQuery"] | components["schemas"]["WebGoalsQuery"] | components["schemas"]["WebVitalsQuery"] | components["schemas"]["WebVitalsPathBreakdownQuery"] | components["schemas"]["WebPageURLSearchQuery"] | components["schemas"]["WebAnalyticsExternalSummaryQuery"] | components["schemas"]["WebNotableChangesQuery"] | components["schemas"]["RevenueAnalyticsGrossRevenueQuery"] | components["schemas"]["RevenueAnalyticsMetricsQuery"] | components["schemas"]["RevenueAnalyticsMRRQuery"] | components["schemas"]["RevenueAnalyticsOverviewQuery"] | components["schemas"]["RevenueAnalyticsTopCustomersQuery"] | components["schemas"]["MarketingAnalyticsTableQuery"] | components["schemas"]["MarketingAnalyticsAggregatedQuery"] | components["schemas"]["NonIntegratedConversionsTableQuery"] | components["schemas"]["DataVisualizationNode"] | components["schemas"]["DataTableNode"] | components["schemas"]["SavedInsightNode"] | components["schemas"]["InsightVizNode"] | components["schemas"]["TrendsQuery"] | components["schemas"]["FunnelsQuery"] | components["schemas"]["RetentionQuery"] | components["schemas"]["PathsQuery"] | components["schemas"]["StickinessQuery"] | components["schemas"]["LifecycleQuery"] | components["schemas"]["FunnelCorrelationQuery"] | components["schemas"]["DatabaseSchemaQuery"] | components["schemas"]["RecordingsQuery"] | components["schemas"]["LogsQuery"] | components["schemas"]["LogAttributesQuery"] | components["schemas"]["LogValuesQuery"] | components["schemas"]["TraceSpansQuery"] | components["schemas"]["TraceSpansAggregationQuery"] | components["schemas"]["TraceSpansTreeQuery"] | components["schemas"]["SuggestedQuestionsQuery"] | components["schemas"]["TeamTaxonomyQuery"] | components["schemas"]["EventTaxonomyQuery"] | components["schemas"]["ActorsPropertyTaxonomyQuery"] | components["schemas"]["TracesQuery"] | components["schemas"]["TraceQuery"] | components["schemas"]["TraceNeighborsQuery"] | components["schemas"]["VectorSearchQuery"] | components["schemas"]["UsageMetricsQuery"] | components["schemas"]["EndpointsUsageOverviewQuery"] | components["schemas"]["EndpointsUsageTableQuery"] | components["schemas"]["EndpointsUsageTrendsQuery"] | components["schemas"]["PropertyValuesQuery"]; + /** + * @description Whether results should be calculated sync or async, and how much to rely on the cache: + * - `'blocking'` - calculate synchronously (returning only when the query is done), UNLESS there are very fresh results in the cache + * - `'async'` - kick off background calculation (returning immediately with a query status), UNLESS there are very fresh results in the cache + * - `'lazy_async'` - kick off background calculation, UNLESS there are somewhat fresh results in the cache + * - `'force_blocking'` - calculate synchronously, even if fresh results are already cached + * - `'force_async'` - kick off background calculation, even if fresh results are already cached + * - `'force_cache'` - return cached data or a cache miss; always completes immediately as it never calculates Background calculation can be tracked using the `query_status` response field. + * @default blocking + */ + refresh: components["schemas"]["RefreshType"] | null; + /** + * Variables Override + * @default null + */ + variables_override: { + [key: string]: { + [key: string]: unknown; + }; + } | null; + }; + /** QueryResponseAlternative */ + QueryResponseAlternative: { + [key: string]: unknown; + } | components["schemas"]["QueryResponseAlternative1"] | components["schemas"]["QueryResponseAlternative2"] | components["schemas"]["QueryResponseAlternative3"] | components["schemas"]["QueryResponseAlternative4"] | components["schemas"]["QueryResponseAlternative5"] | components["schemas"]["QueryResponseAlternative6"] | components["schemas"]["QueryResponseAlternative7"] | components["schemas"]["QueryResponseAlternative8"] | components["schemas"]["QueryResponseAlternative9"] | components["schemas"]["QueryResponseAlternative10"] | components["schemas"]["QueryResponseAlternative11"] | components["schemas"]["QueryResponseAlternative14"] | components["schemas"]["QueryResponseAlternative15"] | components["schemas"]["QueryResponseAlternative16"] | components["schemas"]["QueryResponseAlternative17"] | components["schemas"]["QueryResponseAlternative18"] | components["schemas"]["QueryResponseAlternative19"] | components["schemas"]["QueryResponseAlternative20"] | components["schemas"]["QueryResponseAlternative21"] | components["schemas"]["QueryResponseAlternative22"] | components["schemas"]["QueryResponseAlternative23"] | components["schemas"]["QueryResponseAlternative24"] | components["schemas"]["QueryResponseAlternative25"] | components["schemas"]["QueryResponseAlternative27"] | components["schemas"]["QueryResponseAlternative28"] | components["schemas"]["QueryResponseAlternative29"] | components["schemas"]["QueryResponseAlternative30"] | components["schemas"]["QueryResponseAlternative31"] | components["schemas"]["QueryResponseAlternative32"] | components["schemas"]["QueryResponseAlternative33"] | components["schemas"]["QueryResponseAlternative34"] | components["schemas"]["QueryResponseAlternative35"] | components["schemas"]["QueryResponseAlternative36"] | components["schemas"]["QueryResponseAlternative37"] | components["schemas"]["QueryResponseAlternative38"] | unknown | components["schemas"]["QueryResponseAlternative39"] | components["schemas"]["QueryResponseAlternative40"] | components["schemas"]["QueryResponseAlternative41"] | components["schemas"]["QueryResponseAlternative42"] | components["schemas"]["QueryResponseAlternative43"] | components["schemas"]["QueryResponseAlternative44"] | components["schemas"]["QueryResponseAlternative45"] | components["schemas"]["QueryResponseAlternative47"] | components["schemas"]["QueryResponseAlternative48"] | components["schemas"]["QueryResponseAlternative49"] | components["schemas"]["QueryResponseAlternative50"] | components["schemas"]["QueryResponseAlternative51"] | components["schemas"]["QueryResponseAlternative52"] | components["schemas"]["QueryResponseAlternative53"] | components["schemas"]["QueryResponseAlternative54"] | components["schemas"]["QueryResponseAlternative55"] | components["schemas"]["QueryResponseAlternative57"] | components["schemas"]["QueryResponseAlternative58"] | components["schemas"]["QueryResponseAlternative59"] | components["schemas"]["QueryResponseAlternative60"] | components["schemas"]["QueryResponseAlternative62"] | components["schemas"]["QueryResponseAlternative63"] | components["schemas"]["QueryResponseAlternative64"] | components["schemas"]["QueryResponseAlternative65"] | components["schemas"]["QueryResponseAlternative66"] | components["schemas"]["QueryResponseAlternative67"] | components["schemas"]["QueryResponseAlternative68"] | components["schemas"]["QueryResponseAlternative69"] | components["schemas"]["QueryResponseAlternative70"] | components["schemas"]["QueryResponseAlternative72"] | components["schemas"]["QueryResponseAlternative73"] | components["schemas"]["QueryResponseAlternative74"] | components["schemas"]["QueryResponseAlternative75"] | components["schemas"]["QueryResponseAlternative76"] | components["schemas"]["QueryResponseAlternative77"] | components["schemas"]["QueryResponseAlternative78"] | components["schemas"]["QueryResponseAlternative79"] | components["schemas"]["QueryResponseAlternative80"] | components["schemas"]["QueryResponseAlternative81"] | components["schemas"]["QueryResponseAlternative82"] | components["schemas"]["QueryResponseAlternative83"] | components["schemas"]["QueryResponseAlternative84"] | components["schemas"]["QueryResponseAlternative85"] | components["schemas"]["QueryResponseAlternative87"] | components["schemas"]["QueryResponseAlternative88"] | components["schemas"]["QueryResponseAlternative89"] | components["schemas"]["QueryResponseAlternative90"] | components["schemas"]["QueryResponseAlternative91"] | components["schemas"]["QueryResponseAlternative92"] | components["schemas"]["QueryResponseAlternative93"]; + /** QueryResponseAlternative1 */ + QueryResponseAlternative1: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Nextcursor + * @description Cursor for fetching the next page of results + * @default null + */ + nextCursor: string | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** Types */ + types: string[]; + }; + /** QueryResponseAlternative10 */ + QueryResponseAlternative10: { + /** + * Incomplete List + * @description Whether or not the suggestions returned are complete + */ + incomplete_list: boolean; + /** Suggestions */ + suggestions: components["schemas"]["AutocompleteCompletionItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative11 */ + QueryResponseAlternative11: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative14 */ + QueryResponseAlternative14: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["ErrorTrackingIssue"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative15 */ + QueryResponseAlternative15: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["SimilarIssue"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative16 */ + QueryResponseAlternative16: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: { + [key: string]: components["schemas"]["Results"]; + }; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative17 */ + QueryResponseAlternative17: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["ErrorTrackingCorrelatedIssue"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative18 */ + QueryResponseAlternative18: { + /** Credible Intervals */ + credible_intervals: { + [key: string]: number[]; + }; + /** Expected Loss */ + expected_loss: number; + /** @default null */ + funnels_query: components["schemas"]["FunnelsQuery"] | null; + /** Insight */ + insight: { + [key: string]: unknown; + }[][]; + /** + * Kind + * @default ExperimentFunnelsQuery + * @constant + */ + kind: "ExperimentFunnelsQuery"; + /** Probability */ + probability: { + [key: string]: number; + }; + significance_code: components["schemas"]["ExperimentSignificanceCode"]; + /** Significant */ + significant: boolean; + /** + * Stats Version + * @default null + */ + stats_version: number | null; + /** Variants */ + variants: components["schemas"]["ExperimentVariantFunnelsBaseStats"][]; + }; + /** QueryResponseAlternative19 */ + QueryResponseAlternative19: { + /** @default null */ + count_query: components["schemas"]["TrendsQuery"] | null; + /** Credible Intervals */ + credible_intervals: { + [key: string]: number[]; + }; + /** @default null */ + exposure_query: components["schemas"]["TrendsQuery"] | null; + /** Insight */ + insight: { + [key: string]: unknown; + }[]; + /** + * Kind + * @default ExperimentTrendsQuery + * @constant + */ + kind: "ExperimentTrendsQuery"; + /** P Value */ + p_value: number; + /** Probability */ + probability: { + [key: string]: number; + }; + significance_code: components["schemas"]["ExperimentSignificanceCode"]; + /** Significant */ + significant: boolean; + /** + * Stats Version + * @default null + */ + stats_version: number | null; + /** Variants */ + variants: components["schemas"]["ExperimentVariantTrendsBaseStats"][]; + }; + /** QueryResponseAlternative2 */ + QueryResponseAlternative2: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** Types */ + types: string[]; + }; + /** QueryResponseAlternative20 */ + QueryResponseAlternative20: { + /** @default null */ + baseline: components["schemas"]["ExperimentStatsBaseValidated"] | null; + /** + * Breakdown Results + * @description Results grouped by breakdown value. When present, baseline and variant_results contain aggregated data. + * @default null + */ + breakdown_results: components["schemas"]["ExperimentBreakdownResult"][] | null; + /** + * Clickhouse Sql + * @default null + */ + clickhouse_sql: string | null; + /** + * Credible Intervals + * @default null + */ + credible_intervals: { + [key: string]: number[]; + } | null; + /** + * Hogql + * @default null + */ + hogql: string | null; + /** + * Insight + * @default null + */ + insight: { + [key: string]: unknown; + }[] | null; + /** + * Is Precomputed + * @description Whether exposures were served from the precomputation system + * @default null + */ + is_precomputed: boolean | null; + /** + * Kind + * @default ExperimentQuery + * @constant + */ + kind: "ExperimentQuery"; + /** + * Metric + * @default null + */ + metric: components["schemas"]["ExperimentMeanMetric"] | components["schemas"]["ExperimentFunnelMetric"] | components["schemas"]["ExperimentRatioMetric"] | components["schemas"]["ExperimentRetentionMetric"] | null; + /** + * P Value + * @default null + */ + p_value: number | null; + /** + * Probability + * @default null + */ + probability: { + [key: string]: number; + } | null; + /** @default null */ + significance_code: components["schemas"]["ExperimentSignificanceCode"] | null; + /** + * Significant + * @default null + */ + significant: boolean | null; + /** + * Stats Version + * @default null + */ + stats_version: number | null; + /** + * Variant Results + * @default null + */ + variant_results: components["schemas"]["ExperimentVariantResultFrequentist"][] | components["schemas"]["ExperimentVariantResultBayesian"][] | null; + /** + * Variants + * @default null + */ + variants: components["schemas"]["ExperimentVariantTrendsBaseStats"][] | components["schemas"]["ExperimentVariantFunnelsBaseStats"][] | null; + }; + /** QueryResponseAlternative21 */ + QueryResponseAlternative21: { + /** @default null */ + bias_risk: components["schemas"]["BiasRisk"] | null; + date_range: components["schemas"]["DateRange"]; + /** + * Kind + * @default ExperimentExposureQuery + * @constant + */ + kind: "ExperimentExposureQuery"; + /** @default null */ + sample_ratio_mismatch: components["schemas"]["SampleRatioMismatch"] | null; + /** Timeseries */ + timeseries: components["schemas"]["ExperimentExposureTimeSeries"][]; + /** Total Exposures */ + total_exposures: { + [key: string]: number; + }; + }; + /** QueryResponseAlternative22 */ + QueryResponseAlternative22: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["EmbeddingDistance"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative23 */ + QueryResponseAlternative23: { + /** + * Datefrom + * @default null + */ + dateFrom: string | null; + /** + * Dateto + * @default null + */ + dateTo: string | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["WebOverviewItem"][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Usedpreaggregatedtables + * @default null + */ + usedPreAggregatedTables: boolean | null; + }; + /** QueryResponseAlternative24 */ + QueryResponseAlternative24: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + /** + * Usedpreaggregatedtables + * @default null + */ + usedPreAggregatedTables: boolean | null; + }; + /** QueryResponseAlternative25 */ + QueryResponseAlternative25: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative27 */ + QueryResponseAlternative27: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["WebVitalsPathBreakdownResult"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative28 */ + QueryResponseAlternative28: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["PageURL"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative29 */ + QueryResponseAlternative29: { + /** Data */ + data: { + [key: string]: unknown; + }; + /** @default null */ + error: components["schemas"]["ExternalQueryError"] | null; + status: components["schemas"]["ExternalQueryStatus"]; + }; + /** QueryResponseAlternative3 */ + QueryResponseAlternative3: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** Limit */ + limit: number; + /** + * Missing Actors Count + * @default null + */ + missing_actors_count: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Offset */ + offset: number; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: string[] | null; + }; + /** QueryResponseAlternative30 */ + QueryResponseAlternative30: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["WebNotableChangeItem"][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Usedpreaggregatedtables + * @default null + */ + usedPreAggregatedTables: boolean | null; + }; + /** QueryResponseAlternative31 */ + QueryResponseAlternative31: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative32 */ + QueryResponseAlternative32: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative33 */ + QueryResponseAlternative33: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["RevenueAnalyticsMRRQueryResultItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative34 */ + QueryResponseAlternative34: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["RevenueAnalyticsOverviewItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative35 */ + QueryResponseAlternative35: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative36 */ + QueryResponseAlternative36: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["MarketingAnalyticsItem"][][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative37 */ + QueryResponseAlternative37: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: { + [key: string]: components["schemas"]["MarketingAnalyticsItem"]; + }; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative38 */ + QueryResponseAlternative38: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["MarketingAnalyticsItem"][][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative39 */ + QueryResponseAlternative39: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Nextcursor + * @description Cursor for fetching the next page of results + * @default null + */ + nextCursor: string | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** Types */ + types: string[]; + }; + /** QueryResponseAlternative4 */ + QueryResponseAlternative4: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** + * Kind + * @default GroupsQuery + * @constant + */ + kind: "GroupsQuery"; + /** Limit */ + limit: number; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Offset */ + offset: number; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** Types */ + types: string[]; + }; + /** QueryResponseAlternative40 */ + QueryResponseAlternative40: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** Limit */ + limit: number; + /** + * Missing Actors Count + * @default null + */ + missing_actors_count: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Offset */ + offset: number; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: string[] | null; + }; + /** QueryResponseAlternative41 */ + QueryResponseAlternative41: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** + * Kind + * @default GroupsQuery + * @constant + */ + kind: "GroupsQuery"; + /** Limit */ + limit: number; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Offset */ + offset: number; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** Types */ + types: string[]; + }; + /** QueryResponseAlternative42 */ + QueryResponseAlternative42: { + /** + * Clickhouse + * @description Executed ClickHouse query + * @default null + */ + clickhouse: string | null; + /** + * Columns + * @description Returned columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Explain + * @description Query explanation output + * @default null + */ + explain: string[] | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Query metadata output + * @default null + */ + metadata: components["schemas"]["HogQLMetadataResponse"] | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * Query + * @description Input query string + * @default null + */ + query: string | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @description Types of returned columns + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative43 */ + QueryResponseAlternative43: { + /** + * Datefrom + * @default null + */ + dateFrom: string | null; + /** + * Dateto + * @default null + */ + dateTo: string | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["WebOverviewItem"][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Usedpreaggregatedtables + * @default null + */ + usedPreAggregatedTables: boolean | null; + }; + /** QueryResponseAlternative44 */ + QueryResponseAlternative44: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + /** + * Usedpreaggregatedtables + * @default null + */ + usedPreAggregatedTables: boolean | null; + }; + /** QueryResponseAlternative45 */ + QueryResponseAlternative45: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative47 */ + QueryResponseAlternative47: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["WebVitalsPathBreakdownResult"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative48 */ + QueryResponseAlternative48: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative49 */ + QueryResponseAlternative49: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** Types */ + types: string[]; + }; + /** QueryResponseAlternative5 */ + QueryResponseAlternative5: { + /** + * Breakdown + * @default null + */ + breakdown: components["schemas"]["BreakdownItem"][] | null; + /** + * Breakdowns + * @default null + */ + breakdowns: components["schemas"]["MultipleBreakdownOptions"][] | null; + /** + * Compare + * @default null + */ + compare: components["schemas"]["CompareItem"][] | null; + /** + * Day + * @default null + */ + day: components["schemas"]["DayItem"][] | null; + /** + * Interval + * @default null + */ + interval: components["schemas"]["IntervalItem"][] | null; + /** + * Series + * @default null + */ + series: components["schemas"]["Series"][] | null; + /** + * Status + * @default null + */ + status: components["schemas"]["StatusItem"][] | null; + }; + /** QueryResponseAlternative50 */ + QueryResponseAlternative50: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative51 */ + QueryResponseAlternative51: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative52 */ + QueryResponseAlternative52: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["RevenueAnalyticsMRRQueryResultItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative53 */ + QueryResponseAlternative53: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["RevenueAnalyticsOverviewItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative54 */ + QueryResponseAlternative54: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative55 */ + QueryResponseAlternative55: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative57 */ + QueryResponseAlternative57: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["MarketingAnalyticsItem"][][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative58 */ + QueryResponseAlternative58: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: { + [key: string]: components["schemas"]["MarketingAnalyticsItem"]; + }; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative59 */ + QueryResponseAlternative59: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["MarketingAnalyticsItem"][][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative6 */ + QueryResponseAlternative6: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["TimelineEntry"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative60 */ + QueryResponseAlternative60: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["ErrorTrackingIssue"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative62 */ + QueryResponseAlternative62: { + /** Credible Intervals */ + credible_intervals: { + [key: string]: number[]; + }; + /** Expected Loss */ + expected_loss: number; + /** @default null */ + funnels_query: components["schemas"]["FunnelsQuery"] | null; + /** Insight */ + insight: { + [key: string]: unknown; + }[][]; + /** + * Kind + * @default ExperimentFunnelsQuery + * @constant + */ + kind: "ExperimentFunnelsQuery"; + /** Probability */ + probability: { + [key: string]: number; + }; + significance_code: components["schemas"]["ExperimentSignificanceCode"]; + /** Significant */ + significant: boolean; + /** + * Stats Version + * @default null + */ + stats_version: number | null; + /** Variants */ + variants: components["schemas"]["ExperimentVariantFunnelsBaseStats"][]; + }; + /** QueryResponseAlternative63 */ + QueryResponseAlternative63: { + /** @default null */ + count_query: components["schemas"]["TrendsQuery"] | null; + /** Credible Intervals */ + credible_intervals: { + [key: string]: number[]; + }; + /** @default null */ + exposure_query: components["schemas"]["TrendsQuery"] | null; + /** Insight */ + insight: { + [key: string]: unknown; + }[]; + /** + * Kind + * @default ExperimentTrendsQuery + * @constant + */ + kind: "ExperimentTrendsQuery"; + /** P Value */ + p_value: number; + /** Probability */ + probability: { + [key: string]: number; + }; + significance_code: components["schemas"]["ExperimentSignificanceCode"]; + /** Significant */ + significant: boolean; + /** + * Stats Version + * @default null + */ + stats_version: number | null; + /** Variants */ + variants: components["schemas"]["ExperimentVariantTrendsBaseStats"][]; + }; + /** QueryResponseAlternative64 */ + QueryResponseAlternative64: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["LLMTrace"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative65 */ + QueryResponseAlternative65: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative66 */ + QueryResponseAlternative66: { + /** + * Boxplot Data + * @default null + */ + boxplot_data: components["schemas"]["BoxPlotDatum"][] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @description Wether more breakdown values are available. + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: { + [key: string]: unknown; + }[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative67 */ + QueryResponseAlternative67: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative68 */ + QueryResponseAlternative68: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["RetentionResult"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative69 */ + QueryResponseAlternative69: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["PathsLink"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative7 */ + QueryResponseAlternative7: { + /** + * Bytecode + * @default null + */ + bytecode: unknown[] | null; + /** + * Coloredbytecode + * @default null + */ + coloredBytecode: unknown[] | null; + /** Results */ + results: unknown; + /** + * Stdout + * @default null + */ + stdout: string | null; + }; + /** QueryResponseAlternative70 */ + QueryResponseAlternative70: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: { + [key: string]: unknown; + }[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative72 */ + QueryResponseAlternative72: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + results: components["schemas"]["FunnelCorrelationResult"]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative73 */ + QueryResponseAlternative73: { + /** Joins */ + joins: components["schemas"]["DataWarehouseViewLink"][]; + /** Tables */ + tables: { + [key: string]: components["schemas"]["DatabaseSchemaPostHogTable"] | components["schemas"]["DatabaseSchemaSystemTable"] | components["schemas"]["DatabaseSchemaDataWarehouseTable"] | components["schemas"]["DatabaseSchemaViewTable"] | components["schemas"]["DatabaseSchemaManagedViewTable"] | components["schemas"]["DatabaseSchemaBatchExportTable"] | components["schemas"]["DatabaseSchemaMaterializedViewTable"] | components["schemas"]["DatabaseSchemaEndpointTable"]; + }; + }; + /** QueryResponseAlternative74 */ + QueryResponseAlternative74: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** Has Next */ + has_next: boolean; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Next Cursor + * @description Cursor for the next page. Contains the ordering value and session_id from the last record. + * @default null + */ + next_cursor: string | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["SessionRecordingType"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative75 */ + QueryResponseAlternative75: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Nextcursor + * @description Cursor for fetching the next page of results + * @default null + */ + nextCursor: string | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative76 */ + QueryResponseAlternative76: { + /** Count */ + count: number; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["LogAttributeResult"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative77 */ + QueryResponseAlternative77: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["LogValueResult"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative78 */ + QueryResponseAlternative78: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Nextcursor + * @description Cursor for fetching the next page of results + * @default null + */ + nextCursor: string | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative79 */ + QueryResponseAlternative79: { + /** + * Compare + * @description Result rows for the comparison period when `compareFilter.compare` is true. + * @default null + */ + compare: components["schemas"]["AggregatedSpanRow"][] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["AggregatedSpanRow"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative8 */ + QueryResponseAlternative8: { + /** + * Clickhouse + * @description Executed ClickHouse query + * @default null + */ + clickhouse: string | null; + /** + * Columns + * @description Returned columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Explain + * @description Query explanation output + * @default null + */ + explain: string[] | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Query metadata output + * @default null + */ + metadata: components["schemas"]["HogQLMetadataResponse"] | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * Query + * @description Input query string + * @default null + */ + query: string | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @description Types of returned columns + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative80 */ + QueryResponseAlternative80: { + /** + * Compare + * @description Result rows for the comparison period when `compareFilter.compare` is true. + * @default null + */ + compare: components["schemas"]["SpanTreeNode"][] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["SpanTreeNode"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative81 */ + QueryResponseAlternative81: { + /** Questions */ + questions: string[]; + }; + /** QueryResponseAlternative82 */ + QueryResponseAlternative82: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["TeamTaxonomyItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative83 */ + QueryResponseAlternative83: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["EventTaxonomyItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative84 */ + QueryResponseAlternative84: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["ActorsPropertyTaxonomyResponse"] | components["schemas"]["ActorsPropertyTaxonomyResponse"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative85 */ + QueryResponseAlternative85: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["LLMTrace"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative87 */ + QueryResponseAlternative87: { + /** + * Newertimestamp + * @description Timestamp of the newer trace + * @default null + */ + newerTimestamp: string | null; + /** + * Newertraceid + * @description ID of the newer trace (chronologically after current) + * @default null + */ + newerTraceId: string | null; + /** + * Oldertimestamp + * @description Timestamp of the older trace + * @default null + */ + olderTimestamp: string | null; + /** + * Oldertraceid + * @description ID of the older trace (chronologically before current) + * @default null + */ + olderTraceId: string | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative88 */ + QueryResponseAlternative88: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["VectorSearchResponseItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative89 */ + QueryResponseAlternative89: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["UsageMetric"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative9 */ + QueryResponseAlternative9: { + /** + * Ch Table Names + * @default null + */ + ch_table_names: string[] | null; + /** Errors */ + errors: components["schemas"]["HogQLNotice"][]; + /** @default null */ + isUsingIndices: components["schemas"]["QueryIndexUsage"] | null; + /** + * Isvalid + * @default null + */ + isValid: boolean | null; + /** Notices */ + notices: components["schemas"]["HogQLNotice"][]; + /** + * Query + * @default null + */ + query: string | null; + /** + * Table Names + * @default null + */ + table_names: string[] | null; + /** Warnings */ + warnings: components["schemas"]["HogQLNotice"][]; + }; + /** QueryResponseAlternative90 */ + QueryResponseAlternative90: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["EndpointsUsageOverviewItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative91 */ + QueryResponseAlternative91: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** QueryResponseAlternative92 */ + QueryResponseAlternative92: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: { + [key: string]: unknown; + }[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryResponseAlternative93 */ + QueryResponseAlternative93: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["PropertyValueItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** QueryStatus */ + QueryStatus: { + /** + * Complete + * @description Whether the query is still running. Will be true if the query is complete, even if it errored. Either result or error will be set. + * @default false + */ + complete: boolean | null; + /** + * Dashboard Id + * @default null + */ + dashboard_id: number | null; + /** + * End Time + * @description When did the query execution task finish (whether successfully or not). + * @default null + */ + end_time: string | null; + /** + * Error + * @description If the query failed, this will be set to true. More information can be found in the error_message field. + * @default false + */ + error: boolean | null; + /** + * Error Message + * @default null + */ + error_message: string | null; + /** + * Expiration Time + * @default null + */ + expiration_time: string | null; + /** Id */ + id: string; + /** + * Insight Id + * @default null + */ + insight_id: number | null; + /** + * Labels + * @default null + */ + labels: string[] | null; + /** + * Pickup Time + * @description When was the query execution task picked up by a worker. + * @default null + */ + pickup_time: string | null; + /** + * Query Async + * @description ONLY async queries use QueryStatus. + * @default true + * @constant + */ + query_async: true; + /** @default null */ + query_progress: components["schemas"]["ClickhouseQueryProgress"] | null; + /** + * Results + * @default null + */ + results: unknown; + /** + * Start Time + * @description When was query execution task enqueued. + * @default null + */ + start_time: string | null; + /** + * Task Id + * @default null + */ + task_id: string | null; + /** Team Id */ + team_id: number; + }; + /** QueryStatusResponse */ + QueryStatusResponse: { + query_status: components["schemas"]["QueryStatus"]; + }; + /** QueryTiming */ + QueryTiming: { + /** + * K + * @description Key. Shortened to 'k' to save on data. + */ + k: string; + /** + * T + * @description Time in seconds. Shortened to 't' to save on data. + */ + t: number; + }; + /** QueryUpgradeRequest */ + QueryUpgradeRequest: { + /** Query */ + query: components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["PersonsNode"] | components["schemas"]["DataWarehouseNode"] | components["schemas"]["FunnelsDataWarehouseNode"] | components["schemas"]["LifecycleDataWarehouseNode"] | components["schemas"]["EventsQuery"] | components["schemas"]["SessionsQuery"] | components["schemas"]["ActorsQuery"] | components["schemas"]["GroupsQuery"] | components["schemas"]["InsightActorsQuery"] | components["schemas"]["InsightActorsQueryOptions"] | components["schemas"]["SessionsTimelineQuery"] | components["schemas"]["HogQuery"] | components["schemas"]["HogQLQuery"] | components["schemas"]["HogQLMetadata"] | components["schemas"]["HogQLAutocomplete"] | components["schemas"]["SessionAttributionExplorerQuery"] | components["schemas"]["RevenueExampleEventsQuery"] | components["schemas"]["RevenueExampleDataWarehouseTablesQuery"] | components["schemas"]["ErrorTrackingQuery"] | components["schemas"]["ErrorTrackingSimilarIssuesQuery"] | components["schemas"]["ErrorTrackingBreakdownsQuery"] | components["schemas"]["ErrorTrackingIssueCorrelationQuery"] | components["schemas"]["ExperimentFunnelsQuery"] | components["schemas"]["ExperimentTrendsQuery"] | components["schemas"]["ExperimentQuery"] | components["schemas"]["ExperimentExposureQuery"] | components["schemas"]["DocumentSimilarityQuery"] | components["schemas"]["WebOverviewQuery"] | components["schemas"]["WebStatsTableQuery"] | components["schemas"]["WebExternalClicksTableQuery"] | components["schemas"]["WebGoalsQuery"] | components["schemas"]["WebVitalsQuery"] | components["schemas"]["WebVitalsPathBreakdownQuery"] | components["schemas"]["WebPageURLSearchQuery"] | components["schemas"]["WebAnalyticsExternalSummaryQuery"] | components["schemas"]["WebNotableChangesQuery"] | components["schemas"]["RevenueAnalyticsGrossRevenueQuery"] | components["schemas"]["RevenueAnalyticsMetricsQuery"] | components["schemas"]["RevenueAnalyticsMRRQuery"] | components["schemas"]["RevenueAnalyticsOverviewQuery"] | components["schemas"]["RevenueAnalyticsTopCustomersQuery"] | components["schemas"]["MarketingAnalyticsTableQuery"] | components["schemas"]["MarketingAnalyticsAggregatedQuery"] | components["schemas"]["NonIntegratedConversionsTableQuery"] | components["schemas"]["DataVisualizationNode"] | components["schemas"]["DataTableNode"] | components["schemas"]["SavedInsightNode"] | components["schemas"]["InsightVizNode"] | components["schemas"]["TrendsQuery"] | components["schemas"]["FunnelsQuery"] | components["schemas"]["RetentionQuery"] | components["schemas"]["PathsQuery"] | components["schemas"]["StickinessQuery"] | components["schemas"]["LifecycleQuery"] | components["schemas"]["FunnelCorrelationQuery"] | components["schemas"]["DatabaseSchemaQuery"] | components["schemas"]["RecordingsQuery"] | components["schemas"]["LogsQuery"] | components["schemas"]["LogAttributesQuery"] | components["schemas"]["LogValuesQuery"] | components["schemas"]["TraceSpansQuery"] | components["schemas"]["TraceSpansAggregationQuery"] | components["schemas"]["TraceSpansTreeQuery"] | components["schemas"]["SuggestedQuestionsQuery"] | components["schemas"]["TeamTaxonomyQuery"] | components["schemas"]["EventTaxonomyQuery"] | components["schemas"]["ActorsPropertyTaxonomyQuery"] | components["schemas"]["TracesQuery"] | components["schemas"]["TraceQuery"] | components["schemas"]["TraceNeighborsQuery"] | components["schemas"]["VectorSearchQuery"] | components["schemas"]["UsageMetricsQuery"] | components["schemas"]["EndpointsUsageOverviewQuery"] | components["schemas"]["EndpointsUsageTableQuery"] | components["schemas"]["EndpointsUsageTrendsQuery"] | components["schemas"]["PropertyValuesQuery"]; + }; + /** QueryUpgradeResponse */ + QueryUpgradeResponse: { + /** Query */ + query: components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["PersonsNode"] | components["schemas"]["DataWarehouseNode"] | components["schemas"]["FunnelsDataWarehouseNode"] | components["schemas"]["LifecycleDataWarehouseNode"] | components["schemas"]["EventsQuery"] | components["schemas"]["SessionsQuery"] | components["schemas"]["ActorsQuery"] | components["schemas"]["GroupsQuery"] | components["schemas"]["InsightActorsQuery"] | components["schemas"]["InsightActorsQueryOptions"] | components["schemas"]["SessionsTimelineQuery"] | components["schemas"]["HogQuery"] | components["schemas"]["HogQLQuery"] | components["schemas"]["HogQLMetadata"] | components["schemas"]["HogQLAutocomplete"] | components["schemas"]["SessionAttributionExplorerQuery"] | components["schemas"]["RevenueExampleEventsQuery"] | components["schemas"]["RevenueExampleDataWarehouseTablesQuery"] | components["schemas"]["ErrorTrackingQuery"] | components["schemas"]["ErrorTrackingSimilarIssuesQuery"] | components["schemas"]["ErrorTrackingBreakdownsQuery"] | components["schemas"]["ErrorTrackingIssueCorrelationQuery"] | components["schemas"]["ExperimentFunnelsQuery"] | components["schemas"]["ExperimentTrendsQuery"] | components["schemas"]["ExperimentQuery"] | components["schemas"]["ExperimentExposureQuery"] | components["schemas"]["DocumentSimilarityQuery"] | components["schemas"]["WebOverviewQuery"] | components["schemas"]["WebStatsTableQuery"] | components["schemas"]["WebExternalClicksTableQuery"] | components["schemas"]["WebGoalsQuery"] | components["schemas"]["WebVitalsQuery"] | components["schemas"]["WebVitalsPathBreakdownQuery"] | components["schemas"]["WebPageURLSearchQuery"] | components["schemas"]["WebAnalyticsExternalSummaryQuery"] | components["schemas"]["WebNotableChangesQuery"] | components["schemas"]["RevenueAnalyticsGrossRevenueQuery"] | components["schemas"]["RevenueAnalyticsMetricsQuery"] | components["schemas"]["RevenueAnalyticsMRRQuery"] | components["schemas"]["RevenueAnalyticsOverviewQuery"] | components["schemas"]["RevenueAnalyticsTopCustomersQuery"] | components["schemas"]["MarketingAnalyticsTableQuery"] | components["schemas"]["MarketingAnalyticsAggregatedQuery"] | components["schemas"]["NonIntegratedConversionsTableQuery"] | components["schemas"]["DataVisualizationNode"] | components["schemas"]["DataTableNode"] | components["schemas"]["SavedInsightNode"] | components["schemas"]["InsightVizNode"] | components["schemas"]["TrendsQuery"] | components["schemas"]["FunnelsQuery"] | components["schemas"]["RetentionQuery"] | components["schemas"]["PathsQuery"] | components["schemas"]["StickinessQuery"] | components["schemas"]["LifecycleQuery"] | components["schemas"]["FunnelCorrelationQuery"] | components["schemas"]["DatabaseSchemaQuery"] | components["schemas"]["RecordingsQuery"] | components["schemas"]["LogsQuery"] | components["schemas"]["LogAttributesQuery"] | components["schemas"]["LogValuesQuery"] | components["schemas"]["TraceSpansQuery"] | components["schemas"]["TraceSpansAggregationQuery"] | components["schemas"]["TraceSpansTreeQuery"] | components["schemas"]["SuggestedQuestionsQuery"] | components["schemas"]["TeamTaxonomyQuery"] | components["schemas"]["EventTaxonomyQuery"] | components["schemas"]["ActorsPropertyTaxonomyQuery"] | components["schemas"]["TracesQuery"] | components["schemas"]["TraceQuery"] | components["schemas"]["TraceNeighborsQuery"] | components["schemas"]["VectorSearchQuery"] | components["schemas"]["UsageMetricsQuery"] | components["schemas"]["EndpointsUsageOverviewQuery"] | components["schemas"]["EndpointsUsageTableQuery"] | components["schemas"]["EndpointsUsageTrendsQuery"] | components["schemas"]["PropertyValuesQuery"]; + }; + /** RETENTION */ + RETENTION: { + /** + * Hidelinegraph + * @default null + */ + hideLineGraph: boolean | null; + /** + * Hidesizecolumn + * @default null + */ + hideSizeColumn: boolean | null; + /** + * Usesmalllayout + * @default null + */ + useSmallLayout: boolean | null; + }; + /** + * @description * `later` - Later + * * `other` - Other + * @enum {string} + */ + ReasonEnum: "later" | "other"; + /** + * @description * `low` - low + * * `medium` - medium + * * `high` - high + * * `xhigh` - xhigh + * * `max` - max + * @enum {string} + */ + ReasoningEffortEnum: "low" | "medium" | "high" | "xhigh" | "max"; + RecomputeResult: { + run: components["schemas"]["Run"]; + counts_changed: boolean; + unresolved: number; + ci_rerun_triggered: boolean; + ci_rerun_error?: string | null; + }; + /** + * RecordingOrder + * @enum {string} + */ + RecordingOrder: "duration" | "recording_duration" | "inactive_seconds" | "active_seconds" | "start_time" | "console_error_count" | "click_count" | "keypress_count" | "mouse_activity_count" | "activity_score" | "recording_ttl"; + /** + * RecordingOrderDirection + * @enum {string} + */ + RecordingOrderDirection: "ASC" | "DESC"; + /** RecordingPropertyFilter */ + RecordingPropertyFilter: { + /** Key */ + key: components["schemas"]["DurationType"] | string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + /** + * Type + * @default recording + * @constant + */ + type: "recording"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + /** RecordingsQuery */ + RecordingsQuery: { + /** + * Actions + * @default null + */ + actions: { + [key: string]: unknown; + }[] | null; + /** + * After + * @description Cursor for pagination. Contains the ordering value and session_id from the last record of the previous page. + * @default null + */ + after: string | null; + /** @default null */ + comment_text: components["schemas"]["RecordingPropertyFilter"] | null; + /** + * Console Log Filters + * @default null + */ + console_log_filters: components["schemas"]["LogEntryPropertyFilter"][] | null; + /** + * Date From + * @default -3d + */ + date_from: string | null; + /** + * Date To + * @default null + */ + date_to: string | null; + /** + * Distinct Ids + * @default null + */ + distinct_ids: string[] | null; + /** + * Events + * @default null + */ + events: { + [key: string]: unknown; + }[] | null; + /** + * Filter Test Accounts + * @default null + */ + filter_test_accounts: boolean | null; + /** + * Having Predicates + * @default null + */ + having_predicates: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "RecordingsQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** @default AND */ + operand: components["schemas"]["FilterLogicalOperator"] | null; + /** @default start_time */ + order: components["schemas"]["RecordingOrder"] | null; + /** + * @description Replay originally had all ordering as descending by specifying the field name, this runs counter to Django behavior where the field name specifies ascending sorting (e.g. the_field_name) and -the_field_name would indicate descending order to avoid invalidating or migrating all existing filters we keep DESC as the default or allow specification of an explicit order direction here + * @default DESC + */ + order_direction: components["schemas"]["RecordingOrderDirection"] | null; + /** + * Person Uuid + * @default null + */ + person_uuid: string | null; + /** + * Properties + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** @default null */ + response: components["schemas"]["RecordingsQueryResponse"] | null; + /** + * Session Ids + * @default null + */ + session_ids: string[] | null; + /** + * Session Recording Id + * @description If provided, this recording will be fetched and prepended to the results, even if it doesn't match the filters + * @default null + */ + session_recording_id: string | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * User Modified Filters + * @default null + */ + user_modified_filters: { + [key: string]: unknown; + } | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** RecordingsQueryResponse */ + RecordingsQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** Has Next */ + has_next: boolean; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Next Cursor + * @description Cursor for the next page. Contains the ordering value and session_id from the last record. + * @default null + */ + next_cursor: string | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["SessionRecordingType"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** + * RefreshType + * @enum {string} + */ + RefreshType: "async" | "async_except_on_cache_miss" | "blocking" | "force_async" | "force_blocking" | "force_cache" | "lazy_async"; + ReorderTilesRequest: { + /** @description Array of tile IDs in the desired display order (top to bottom, left to right). */ + tile_order: number[]; + }; + ReplayLens: { + /** Format: uuid */ + readonly id: string; + /** @description Human-readable lens name. Unique within the team. */ + name: string; + /** @description Free-form description shown in the lens management UI. */ + description?: string; + /** + * @description What the lens does: monitor, classifier, scorer, summarizer, or indexer. + * + * * `monitor` - Monitor + * * `classifier` - Classifier + * * `scorer` - Scorer + * * `summarizer` - Summarizer + * * `indexer` - Indexer + */ + lens_type: components["schemas"]["LensTypeEnum"]; + /** @description Type-specific configuration. Always includes `prompt`; classifiers add `tags`, scorers add `scale`, etc. */ + lens_config: unknown; + /** @description Persisted `RecordingsQuery` shape used to pick candidate sessions. `date_from`/`date_to` are stripped on save — the schedule controls time, not the user. */ + query?: unknown; + /** + * Format: double + * @description 0..1 random downsample applied after the query matches. Defaults to 1.0 (no downsampling). + */ + sampling_rate?: number; + /** + * @description LLM provider. v1 is Google-only. + * + * * `google` - Google + */ + provider?: components["schemas"]["LensProviderEnum"]; + /** + * @description Concrete model to use for this lens. + * + * * `gemini-3-flash` - Gemini 3 Flash + * * `gemini-3-flash-lite` - Gemini 3 Flash Lite + */ + model: components["schemas"]["LensModelEnum"]; + /** @description When false, the reconciler removes the lens's Temporal schedule. On-demand triggers still work. */ + enabled?: boolean; + /** @description When true, the prompt is augmented with the Signal side mission and the lens emits PostHog Signals. */ + emits_signals?: boolean; + /** @description Increments on every config-changing save. Observations snapshot this value. */ + readonly lens_version: number; + /** + * Format: date-time + * @description Watermark for the lens's last scheduled fire. Mirrors Temporal schedule state for recovery. + */ + readonly last_swept_at: string; + /** Format: date-time */ + readonly created_at: string; + /** @description User who created the lens. */ + readonly created_by: components["schemas"]["UserBasic"] | null; + /** Format: date-time */ + readonly updated_at: string; + }; + ReplayObservation: { + /** Format: uuid */ + readonly id: string; + /** + * Format: uuid + * @description The lens that produced this observation. + */ + readonly lens_id: string; + /** @description Session recording id this lens was applied to. */ + readonly session_id: string; + /** + * @description Observation status (pending, running, succeeded, failed). + * + * * `pending` - Pending + * * `running` - Running + * * `succeeded` - Succeeded + * * `failed` - Failed + */ + readonly status: components["schemas"]["ObservationStatusEnum"]; + /** @description Populated on failure. Includes the malformed model response when validation fails. */ + readonly error_reason: string; + /** @description Temporal workflow id for progress queries and debugging. Empty until the workflow starts. */ + readonly workflow_id: string; + /** @description The `ReplayLens.lens_version` value at the moment the workflow ran. */ + readonly lens_version: number; + /** @description Snapshot of `ReplayLens.lens_config` at run time. Lens edits do not retroactively mutate observations. */ + readonly lens_config_snapshot: unknown; + /** @description Concrete model that ran the observation. */ + readonly model_used: string; + /** @description Concrete provider that ran the observation. */ + readonly provider_used: string; + /** + * @description Whether this observation came from the schedule or an on-demand request. + * + * * `schedule` - Schedule + * * `on_demand` - On demand + */ + readonly triggered_by: components["schemas"]["ObservationTriggerEnum"]; + /** @description User who triggered an on-demand observation. Null for scheduled observations. */ + readonly triggered_by_user: components["schemas"]["UserBasic"] | null; + /** Format: date-time */ + started_at?: string | null; + /** Format: date-time */ + completed_at?: string | null; + /** Format: date-time */ + readonly created_at: string; + }; + Repo: { + /** Format: uuid */ + id: string; + team_id: number; + repo_external_id: number; + repo_full_name: string; + baseline_file_paths: { + [key: string]: string; + }; + enable_pr_comments: boolean; + /** Format: date-time */ + created_at: string; + }; + RepositoryReadinessResponse: { + /** @description Normalized repository identifier */ + repository: string; + /** @description Repository classification */ + classification: string; + /** @description Whether the repository is excluded from readiness checks */ + excluded: boolean; + /** @description Tracking capability state */ + coreSuggestions: components["schemas"]["CapabilityState"]; + /** @description Computer vision capability state */ + replayInsights: components["schemas"]["CapabilityState"]; + /** @description Error tracking capability state */ + errorInsights: components["schemas"]["CapabilityState"]; + /** @description Overall readiness state */ + overall: string; + /** @description Count of replay-derived evidence tasks */ + evidenceTaskCount: number; + /** @description Lookback window in days */ + windowDays: number; + /** @description ISO timestamp when the response was generated */ + generatedAt: string; + /** @description Age of cached response in seconds */ + cacheAgeSeconds: number; + /** @description Scan evidence details */ + scan?: components["schemas"]["ScanEvidence"]; + }; + ResetPasswordResponse: { + username: string; + password: string; + }; + /** ResolvedDateRangeResponse */ + ResolvedDateRangeResponse: { + /** + * Date From + * Format: date-time + */ + date_from: string; + /** + * Date To + * Format: date-time + */ + date_to: string; + }; + /** Response */ + Response: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Nextcursor + * @description Cursor for fetching the next page of results + * @default null + */ + nextCursor: string | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** Types */ + types: string[]; + }; + /** Response1 */ + Response1: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** Limit */ + limit: number; + /** + * Missing Actors Count + * @default null + */ + missing_actors_count: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Offset */ + offset: number; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: string[] | null; + }; + /** Response10 */ + Response10: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** Types */ + types: string[]; + }; + /** Response11 */ + Response11: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** Response12 */ + Response12: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** Response13 */ + Response13: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["RevenueAnalyticsMRRQueryResultItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** Response14 */ + Response14: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["RevenueAnalyticsOverviewItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** Response15 */ + Response15: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** Response16 */ + Response16: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** Response18 */ + Response18: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["MarketingAnalyticsItem"][][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** Response19 */ + Response19: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: { + [key: string]: components["schemas"]["MarketingAnalyticsItem"]; + }; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** Response2 */ + Response2: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** + * Kind + * @default GroupsQuery + * @constant + */ + kind: "GroupsQuery"; + /** Limit */ + limit: number; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Offset */ + offset: number; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** Types */ + types: string[]; + }; + /** Response20 */ + Response20: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["MarketingAnalyticsItem"][][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** Response21 */ + Response21: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["ErrorTrackingIssue"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** Response22 */ + Response22: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["ErrorTrackingCorrelatedIssue"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** Response23 */ + Response23: { + /** Credible Intervals */ + credible_intervals: { + [key: string]: number[]; + }; + /** Expected Loss */ + expected_loss: number; + /** @default null */ + funnels_query: components["schemas"]["FunnelsQuery"] | null; + /** Insight */ + insight: { + [key: string]: unknown; + }[][]; + /** + * Kind + * @default ExperimentFunnelsQuery + * @constant + */ + kind: "ExperimentFunnelsQuery"; + /** Probability */ + probability: { + [key: string]: number; + }; + significance_code: components["schemas"]["ExperimentSignificanceCode"]; + /** Significant */ + significant: boolean; + /** + * Stats Version + * @default null + */ + stats_version: number | null; + /** Variants */ + variants: components["schemas"]["ExperimentVariantFunnelsBaseStats"][]; + }; + /** Response24 */ + Response24: { + /** @default null */ + count_query: components["schemas"]["TrendsQuery"] | null; + /** Credible Intervals */ + credible_intervals: { + [key: string]: number[]; + }; + /** @default null */ + exposure_query: components["schemas"]["TrendsQuery"] | null; + /** Insight */ + insight: { + [key: string]: unknown; + }[]; + /** + * Kind + * @default ExperimentTrendsQuery + * @constant + */ + kind: "ExperimentTrendsQuery"; + /** P Value */ + p_value: number; + /** Probability */ + probability: { + [key: string]: number; + }; + significance_code: components["schemas"]["ExperimentSignificanceCode"]; + /** Significant */ + significant: boolean; + /** + * Stats Version + * @default null + */ + stats_version: number | null; + /** Variants */ + variants: components["schemas"]["ExperimentVariantTrendsBaseStats"][]; + }; + /** Response25 */ + Response25: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["LLMTrace"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** Response26 */ + Response26: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** Response3 */ + Response3: { + /** + * Clickhouse + * @description Executed ClickHouse query + * @default null + */ + clickhouse: string | null; + /** + * Columns + * @description Returned columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Explain + * @description Query explanation output + * @default null + */ + explain: string[] | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Query metadata output + * @default null + */ + metadata: components["schemas"]["HogQLMetadataResponse"] | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * Query + * @description Input query string + * @default null + */ + query: string | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @description Types of returned columns + * @default null + */ + types: unknown[] | null; + }; + /** Response4 */ + Response4: { + /** + * Datefrom + * @default null + */ + dateFrom: string | null; + /** + * Dateto + * @default null + */ + dateTo: string | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["WebOverviewItem"][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Usedpreaggregatedtables + * @default null + */ + usedPreAggregatedTables: boolean | null; + }; + /** Response5 */ + Response5: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + /** + * Usedpreaggregatedtables + * @default null + */ + usedPreAggregatedTables: boolean | null; + }; + /** Response6 */ + Response6: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** Response8 */ + Response8: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["WebVitalsPathBreakdownResult"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** Response9 */ + Response9: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** + * @description * `day` - day + * * `week` - week + * * `month` - month + * @enum {string} + */ + ResponseSamplingIntervalTypeEnum: "day" | "week" | "month"; + /** + * @description * `21` - Everyone in the project can edit + * * `37` - Only those invited to this dashboard can edit + * @enum {integer} + */ + RestrictionLevelEnum: 21 | 37; + /** + * ResultCustomizationBy + * @enum {string} + */ + ResultCustomizationBy: "value" | "position"; + /** ResultCustomizationByPosition */ + ResultCustomizationByPosition: { + /** + * Assignmentby + * @default position + * @constant + */ + assignmentBy: "position"; + /** @default null */ + color: components["schemas"]["DataColorToken"] | null; + /** + * Hidden + * @default null + */ + hidden: boolean | null; + }; + /** ResultCustomizationByValue */ + ResultCustomizationByValue: { + /** + * Assignmentby + * @default value + * @constant + */ + assignmentBy: "value"; + /** @default null */ + color: components["schemas"]["DataColorToken"] | null; + /** + * Hidden + * @default null + */ + hidden: boolean | null; + }; + /** Results */ + Results: { + /** Total Count */ + total_count: number; + /** Values */ + values: components["schemas"]["BreakdownValue"][]; + }; + /** + * RetentionDashboardDisplayType + * @enum {string} + */ + RetentionDashboardDisplayType: "table_only" | "graph_only" | "all"; + /** RetentionEntity */ + RetentionEntity: { + /** + * Aggregation Target Field + * @description Data warehouse field used as the actor identifier + * @default null + */ + aggregation_target_field: string | null; + /** + * Custom Name + * @default null + */ + custom_name: string | null; + /** + * Id + * @default null + */ + id: string | number | null; + /** @default null */ + kind: components["schemas"]["RetentionEntityKind"] | null; + /** + * Name + * @default null + */ + name: string | null; + /** + * Order + * @default null + */ + order: number | null; + /** + * Properties + * @description filters on the event + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Table Name + * @description Data warehouse table name + * @default null + */ + table_name: string | null; + /** + * Timestamp Field + * @description Data warehouse timestamp field + * @default null + */ + timestamp_field: string | null; + /** @default null */ + type: components["schemas"]["EntityType"] | null; + /** + * Uuid + * @default null + */ + uuid: string | null; + }; + /** + * RetentionEntityKind + * @enum {string} + */ + RetentionEntityKind: "ActionsNode" | "EventsNode"; + /** RetentionFilter */ + RetentionFilter: { + /** + * Aggregationproperty + * @description The property to aggregate when aggregationType is sum or avg + * @default null + */ + aggregationProperty: string | null; + /** + * @description The type of property to aggregate on (event, person or data_warehouse). Defaults to event. + * @default event + */ + aggregationPropertyType: components["schemas"]["AggregationPropertyType1"] | null; + /** + * @description The aggregation type to use for retention + * @default count + */ + aggregationType: components["schemas"]["AggregationType"] | null; + /** + * Cumulative + * @default null + */ + cumulative: boolean | null; + /** + * Customaggregationtarget + * @description For data warehouse based retention insights when the aggregation target can't be mapped to persons or groups. + * @default null + */ + customAggregationTarget: boolean | null; + /** @default null */ + dashboardDisplay: components["schemas"]["RetentionDashboardDisplayType"] | null; + /** + * @description controls the display of the retention graph + * @default null + */ + display: components["schemas"]["ChartDisplayType"] | null; + /** + * Goallines + * @default null + */ + goalLines: components["schemas"]["GoalLine"][] | null; + /** @default null */ + meanRetentionCalculation: components["schemas"]["MeanRetentionCalculation"] | null; + /** + * Minimumoccurrences + * @default null + */ + minimumOccurrences: number | null; + /** @default Day */ + period: components["schemas"]["RetentionPeriod"] | null; + /** + * Retentioncustombrackets + * @description Custom brackets for retention calculations + * @default null + */ + retentionCustomBrackets: number[] | null; + /** + * @description Whether retention is with regard to initial cohort size, or that of the previous period. + * @default null + */ + retentionReference: components["schemas"]["RetentionReference"] | null; + /** @default null */ + retentionType: components["schemas"]["RetentionType"] | null; + /** @default null */ + returningEntity: components["schemas"]["RetentionEntity"] | null; + /** + * Selectedinterval + * @description The selected interval to display across all cohorts (null = show all intervals for each cohort) + * @default null + */ + selectedInterval: number | null; + /** + * Showtrendlines + * @default null + */ + showTrendLines: boolean | null; + /** @default null */ + targetEntity: components["schemas"]["RetentionEntity"] | null; + /** + * @description The time window mode to use for retention calculations + * @default null + */ + timeWindowMode: components["schemas"]["TimeWindowMode"] | null; + /** + * Totalintervals + * @default 8 + */ + totalIntervals: number | null; + }; + /** + * RetentionPeriod + * @enum {string} + */ + RetentionPeriod: "Hour" | "Day" | "Week" | "Month"; + /** RetentionQuery */ + RetentionQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation + * @default null + */ + aggregation_group_type_index: number | null; + /** + * @description Breakdown of the events and actions + * @default null + */ + breakdownFilter: components["schemas"]["BreakdownFilter"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization + * @default null + */ + dataColorTheme: number | null; + /** + * @description Date range for the query + * @default null + */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Filtertestaccounts + * @description Exclude internal and test users by applying the respective filters + * @default false + */ + filterTestAccounts: boolean | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "RetentionQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Properties + * @description Property filters for all series + * @default [] + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | components["schemas"]["PropertyGroupFilter"] | null; + /** @default null */ + response: components["schemas"]["RetentionQueryResponse"] | null; + /** @description Properties specific to the retention insight */ + retentionFilter: components["schemas"]["RetentionFilter"]; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** + * @description Tags that will be added to the Query log comment + * @default null + */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** RetentionQueryResponse */ + RetentionQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["RetentionResult"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** + * RetentionReference + * @enum {string} + */ + RetentionReference: "total" | "previous"; + /** RetentionResult */ + RetentionResult: { + /** + * Breakdown Value + * @description Optional breakdown value for retention cohorts + * @default null + */ + breakdown_value: string | number | null; + /** + * Date + * Format: date-time + */ + date: string; + /** Label */ + label: string; + /** Values */ + values: components["schemas"]["RetentionValue"][]; + }; + /** + * RetentionType + * @enum {string} + */ + RetentionType: "retention_recurring" | "retention_first_time" | "retention_first_ever_occurrence"; + /** RetentionValue */ + RetentionValue: { + /** + * Aggregation Value + * @default null + */ + aggregation_value: number | null; + /** Count */ + count: number; + /** + * Label + * @default null + */ + label: string | null; + }; + /** RevenueAnalyticsBreakdown */ + RevenueAnalyticsBreakdown: { + /** Property */ + property: string; + /** + * Type + * @default revenue_analytics + * @constant + */ + type: "revenue_analytics"; + }; + /** RevenueAnalyticsGrossRevenueQuery */ + RevenueAnalyticsGrossRevenueQuery: { + /** Breakdown */ + breakdown: components["schemas"]["RevenueAnalyticsBreakdown"][]; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + interval: components["schemas"]["SimpleIntervalType"]; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "RevenueAnalyticsGrossRevenueQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Properties */ + properties: components["schemas"]["RevenueAnalyticsPropertyFilter"][]; + /** @default null */ + response: components["schemas"]["RevenueAnalyticsGrossRevenueQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** RevenueAnalyticsGrossRevenueQueryResponse */ + RevenueAnalyticsGrossRevenueQueryResponse: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** RevenueAnalyticsMRRQuery */ + RevenueAnalyticsMRRQuery: { + /** Breakdown */ + breakdown: components["schemas"]["RevenueAnalyticsBreakdown"][]; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + interval: components["schemas"]["SimpleIntervalType"]; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "RevenueAnalyticsMRRQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Properties */ + properties: components["schemas"]["RevenueAnalyticsPropertyFilter"][]; + /** @default null */ + response: components["schemas"]["RevenueAnalyticsMRRQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** RevenueAnalyticsMRRQueryResponse */ + RevenueAnalyticsMRRQueryResponse: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["RevenueAnalyticsMRRQueryResultItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** RevenueAnalyticsMRRQueryResultItem */ + RevenueAnalyticsMRRQueryResultItem: { + /** Churn */ + churn: unknown; + /** Contraction */ + contraction: unknown; + /** Expansion */ + expansion: unknown; + /** New */ + new: unknown; + /** Total */ + total: unknown; + }; + /** RevenueAnalyticsMetricsQuery */ + RevenueAnalyticsMetricsQuery: { + /** Breakdown */ + breakdown: components["schemas"]["RevenueAnalyticsBreakdown"][]; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + interval: components["schemas"]["SimpleIntervalType"]; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "RevenueAnalyticsMetricsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Properties */ + properties: components["schemas"]["RevenueAnalyticsPropertyFilter"][]; + /** @default null */ + response: components["schemas"]["RevenueAnalyticsMetricsQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** RevenueAnalyticsMetricsQueryResponse */ + RevenueAnalyticsMetricsQueryResponse: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** RevenueAnalyticsOverviewItem */ + RevenueAnalyticsOverviewItem: { + key: components["schemas"]["RevenueAnalyticsOverviewItemKey"]; + /** Value */ + value: number; + }; + /** + * RevenueAnalyticsOverviewItemKey + * @enum {string} + */ + RevenueAnalyticsOverviewItemKey: "revenue" | "paying_customer_count" | "avg_revenue_per_customer"; + /** RevenueAnalyticsOverviewQuery */ + RevenueAnalyticsOverviewQuery: { + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "RevenueAnalyticsOverviewQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Properties */ + properties: components["schemas"]["RevenueAnalyticsPropertyFilter"][]; + /** @default null */ + response: components["schemas"]["RevenueAnalyticsOverviewQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** RevenueAnalyticsOverviewQueryResponse */ + RevenueAnalyticsOverviewQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["RevenueAnalyticsOverviewItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** RevenueAnalyticsPropertyFilter */ + RevenueAnalyticsPropertyFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + /** + * Type + * @default revenue_analytics + * @constant + */ + type: "revenue_analytics"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + /** + * RevenueAnalyticsTopCustomersGroupBy + * @enum {string} + */ + RevenueAnalyticsTopCustomersGroupBy: "month" | "all"; + /** RevenueAnalyticsTopCustomersQuery */ + RevenueAnalyticsTopCustomersQuery: { + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + groupBy: components["schemas"]["RevenueAnalyticsTopCustomersGroupBy"]; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "RevenueAnalyticsTopCustomersQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** Properties */ + properties: components["schemas"]["RevenueAnalyticsPropertyFilter"][]; + /** @default null */ + response: components["schemas"]["RevenueAnalyticsTopCustomersQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** RevenueAnalyticsTopCustomersQueryResponse */ + RevenueAnalyticsTopCustomersQueryResponse: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** RevenueCurrencyPropertyConfig */ + RevenueCurrencyPropertyConfig: { + /** + * Property + * @default null + */ + property: string | null; + /** @default null */ + static: components["schemas"]["CurrencyCode"] | null; + }; + /** RevenueExampleDataWarehouseTablesQuery */ + RevenueExampleDataWarehouseTablesQuery: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "RevenueExampleDataWarehouseTablesQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** @default null */ + response: components["schemas"]["RevenueExampleDataWarehouseTablesQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** RevenueExampleDataWarehouseTablesQueryResponse */ + RevenueExampleDataWarehouseTablesQueryResponse: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** RevenueExampleEventsQuery */ + RevenueExampleEventsQuery: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "RevenueExampleEventsQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** @default null */ + response: components["schemas"]["RevenueExampleEventsQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** RevenueExampleEventsQueryResponse */ + RevenueExampleEventsQueryResponse: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + ReviewQueue: { + /** Format: uuid */ + readonly id: string; + /** @description Human-readable queue name. */ + readonly name: string; + /** @description Number of pending traces currently assigned to this queue. */ + readonly pending_item_count: number; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + /** @description User who created this review queue. */ + readonly created_by: components["schemas"]["UserBasic"]; + readonly team: number; + }; + ReviewQueueCreate: { + /** @description Human-readable queue name. */ + name: string; + }; + ReviewQueueItem: { + /** Format: uuid */ + readonly id: string; + /** + * Format: uuid + * @description Review queue ID that currently owns this pending trace. + */ + readonly queue_id: string; + /** @description Human-readable name of the queue that currently owns this pending trace. */ + readonly queue_name: string; + /** @description Trace ID currently pending review. */ + readonly trace_id: string; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + /** @description User who queued this trace. */ + readonly created_by: components["schemas"]["UserBasic"]; + readonly team: number; + }; + ReviewQueueItemCreate: { + /** + * Format: uuid + * @description Review queue ID that should own this pending trace. + */ + queue_id: string; + /** @description Trace ID to add to the selected review queue. */ + trace_id: string; + }; + ReviewStateCounts: { + needs_review: number; + clean: number; + processing: number; + stale: number; + }; + Role: { + /** Format: uuid */ + readonly id: string; + name: string; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** @description Members assigned to this role */ + readonly members: { + [key: string]: unknown; + }[]; + readonly is_default: boolean; + }; + /** + * @description * `engineering` - Engineering + * * `data` - Data + * * `product` - Product Management + * * `founder` - Founder + * * `leadership` - Leadership + * * `marketing` - Marketing + * * `sales` - Sales / Success + * * `other` - Other + * @enum {string} + */ + RoleAtOrganizationEnum: "engineering" | "data" | "product" | "founder" | "leadership" | "marketing" | "sales" | "other"; + RoleExternalReference: { + /** Format: uuid */ + readonly id: string; + /** @description Integration kind (e.g., github, linear, jira, slack). */ + provider: string; + /** @description Provider organization/workspace/site identifier. */ + provider_organization_id: string; + /** @description Stable provider role identifier. */ + provider_role_id: string; + /** @description Human-friendly provider role identifier. */ + provider_role_slug?: string | null; + /** @description Display name of the provider role. */ + provider_role_name: string; + /** + * Format: uuid + * @description PostHog role UUID this external role maps to. + */ + role: string; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + }; + RoleLookupResponse: { + /** @description Matching reference, or null if none exists. */ + reference: components["schemas"]["RoleExternalReference"] | null; + }; + RoleMembership: { + /** Format: uuid */ + readonly id: string; + /** Format: uuid */ + readonly role_id: string; + readonly organization_member: components["schemas"]["OrganizationMember"]; + readonly user: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly joined_at: string; + /** Format: date-time */ + readonly updated_at: string; + /** Format: uuid */ + user_uuid: string; + }; + /** + * @description * `severity_sampling` - Severity-based reduction + * * `path_drop` - Path exclusion + * * `rate_limit` - Rate limit + * @enum {string} + */ + RuleTypeEnum: "severity_sampling" | "path_drop" | "rate_limit"; + Run: { + approved_by?: components["schemas"]["UserBasicInfo"] | null; + /** Format: uuid */ + id: string; + /** Format: uuid */ + repo_id: string; + status: string; + run_type: string; + commit_sha: string; + branch: string; + pr_number: number | null; + approved: boolean; + /** Format: date-time */ + approved_at: string | null; + summary: components["schemas"]["RunSummary"]; + error_message: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + completed_at: string | null; + is_stale?: boolean; + /** Format: uuid */ + superseded_by_id?: string | null; + metadata?: { + [key: string]: unknown; + }; + }; + RunInsightsResponse: { + /** @description Results for each insight tile on the dashboard. */ + results: components["schemas"]["DashboardTileResult"][]; + }; + /** + * @description * `manual` - manual + * * `signal_report` - signal_report + * @enum {string} + */ + RunSourceEnum: "manual" | "signal_report"; + RunSummary: { + total: number; + changed: number; + new: number; + removed: number; + unchanged: number; + unresolved?: number; + tolerated_matched?: number; + }; + /** + * @description * `claude` - claude + * * `codex` - codex + * @enum {string} + */ + RuntimeAdapterEnum: "claude" | "codex"; + S3PresignedPost: { + /** + * Format: uri + * @description Presigned S3 POST URL + */ + url: string; + /** @description Form fields that must be submitted verbatim with the file upload */ + fields: { + [key: string]: string; + }; + }; + /** SampleRatioMismatch */ + SampleRatioMismatch: { + /** Expected */ + expected: { + [key: string]: number; + }; + /** P Value */ + p_value: number; + }; + /** SamplingRate */ + SamplingRate: { + /** + * Denominator + * @default null + */ + denominator: number | null; + /** Numerator */ + numerator: number; + }; + SandboxEnvironment: { + /** Format: uuid */ + readonly id: string; + name: string; + network_access_level?: components["schemas"]["NetworkAccessLevelEnum"]; + /** @description List of allowed domains for custom network access */ + allowed_domains?: string[]; + /** @description Whether to include default trusted domains (GitHub, npm, PyPI) */ + include_default_domains?: boolean; + /** @description List of repositories this environment applies to (format: org/repo) */ + repositories?: string[]; + /** @description Encrypted environment variables (write-only, never returned in responses) */ + environment_variables?: unknown; + /** @description Whether this environment has any environment variables set */ + readonly has_environment_variables: boolean; + /** @description If true, only the creator can see this environment. Otherwise visible to whole team. */ + private?: boolean; + /** @description If true, this environment is for internal use (e.g. signals pipeline) and should not be exposed to end users. */ + readonly internal: boolean; + /** @description Computed domain allowlist based on network_access_level and allowed_domains */ + readonly effective_domains: string[]; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + SandboxEnvironmentList: { + /** Format: uuid */ + readonly id: string; + name: string; + network_access_level?: components["schemas"]["NetworkAccessLevelEnum"]; + /** @description List of allowed domains for custom network access */ + allowed_domains?: string[]; + /** @description List of repositories this environment applies to (format: org/repo) */ + repositories?: string[]; + /** @description If true, only the creator can see this environment. Otherwise visible to whole team. */ + private?: boolean; + /** @description If true, this environment is for internal use (e.g. signals pipeline) and should not be exposed to end users. */ + internal?: boolean; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + /** SavedInsightNode */ + SavedInsightNode: { + /** + * Allowsorting + * @description Can the user click on column headers to sort the table? (default: true) + * @default null + */ + allowSorting: boolean | null; + /** + * @description Context for the table, used by components like ColumnConfigurator + * @default null + */ + context: components["schemas"]["DataTableNodeViewPropsContext"] | null; + /** + * Contextkey + * @description Context key for universal column configuration (e.g., "survey:123") + * @default null + */ + contextKey: string | null; + /** + * Defaultcolumns + * @description Default columns to use when resetting column configuration + * @default null + */ + defaultColumns: string[] | null; + /** + * Embedded + * @description Query is embedded inside another bordered component + * @default null + */ + embedded: boolean | null; + /** + * Expandable + * @description Can expand row to show raw event data (default: true) + * @default null + */ + expandable: boolean | null; + /** + * Full + * @description Show with most visual options enabled. Used in insight scene. + * @default null + */ + full: boolean | null; + /** + * Hidepersonsmodal + * @default null + */ + hidePersonsModal: boolean | null; + /** + * Hidetooltiponscroll + * @default null + */ + hideTooltipOnScroll: boolean | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "SavedInsightNode"; + /** + * Propertiesviaurl + * @description Link properties via the URL (default: false) + * @default null + */ + propertiesViaUrl: boolean | null; + /** Shortid */ + shortId: string; + /** + * Showabsolutetime + * @description Render date-time columns (timestamp, created_at, last_seen, last_seen_at, session_start, session_end) as absolute date+time instead of relative ("X ago"). The toggle is exposed in the column header menu only on EventsQuery / ActorsQuery sources. + * @default null + */ + showAbsoluteTime: boolean | null; + /** + * Showactions + * @description Show the kebab menu at the end of the row + * @default null + */ + showActions: boolean | null; + /** + * Showcolumnconfigurator + * @description Show a button to configure the table's columns if possible + * @default null + */ + showColumnConfigurator: boolean | null; + /** + * Showcorrelationtable + * @default null + */ + showCorrelationTable: boolean | null; + /** + * Showcount + * @description Show count of total and filtered results + * @default null + */ + showCount: boolean | null; + /** + * Showdaterange + * @description Show date range selector + * @default null + */ + showDateRange: boolean | null; + /** + * Showelapsedtime + * @description Show the time it takes to run a query + * @default null + */ + showElapsedTime: boolean | null; + /** + * Showeventfilter + * @description Include an event filter above the table (EventsNode only) + * @default null + */ + showEventFilter: boolean | null; + /** + * Showeventsfilter + * @description Include an events filter above the table to filter by multiple events (EventsQuery only) + * @default null + */ + showEventsFilter: boolean | null; + /** + * Showexport + * @description Show the export button + * @default null + */ + showExport: boolean | null; + /** + * Showfilters + * @default null + */ + showFilters: boolean | null; + /** + * Showheader + * @default null + */ + showHeader: boolean | null; + /** + * Showhogqleditor + * @description Include a HogQL query editor above HogQL tables + * @default null + */ + showHogQLEditor: boolean | null; + /** + * Showlastcomputation + * @default null + */ + showLastComputation: boolean | null; + /** + * Showlastcomputationrefresh + * @default null + */ + showLastComputationRefresh: boolean | null; + /** + * Showopeneditorbutton + * @description Show a button to open the current query as a new insight. (default: true) + * @default null + */ + showOpenEditorButton: boolean | null; + /** + * Showpersistentcolumnconfigurator + * @description Show a button to configure and persist the table's default columns if possible + * @default null + */ + showPersistentColumnConfigurator: boolean | null; + /** + * Showpropertyfilter + * @description Include a property filter above the table + * @default null + */ + showPropertyFilter: boolean | components["schemas"]["TaxonomicFilterGroupType"][] | null; + /** + * Showrecordingcolumn + * @description Show a recording column for events with session recordings + * @default null + */ + showRecordingColumn: boolean | null; + /** + * Showreload + * @description Show a reload button + * @default null + */ + showReload: boolean | null; + /** + * Showresults + * @default null + */ + showResults: boolean | null; + /** + * Showresultstable + * @description Show a results table + * @default null + */ + showResultsTable: boolean | null; + /** + * Showsavedfilters + * @description Show saved filters feature for this table (requires uniqueKey) + * @default null + */ + showSavedFilters: boolean | null; + /** + * Showsavedqueries + * @description Shows a list of saved queries + * @default null + */ + showSavedQueries: boolean | null; + /** + * Showsearch + * @description Include a free text search field (PersonsNode only) + * @default null + */ + showSearch: boolean | null; + /** + * Showsourcequeryoptions + * @description Show actors query options and back to source + * @default null + */ + showSourceQueryOptions: boolean | null; + /** + * Showtable + * @default null + */ + showTable: boolean | null; + /** + * Showtableviews + * @description Show table views feature for this table (requires uniqueKey) + * @default null + */ + showTableViews: boolean | null; + /** + * Showtestaccountfilters + * @description Show filter to exclude test accounts + * @default null + */ + showTestAccountFilters: boolean | null; + /** + * Showtimings + * @description Show a detailed query timing breakdown + * @default null + */ + showTimings: boolean | null; + /** + * Suppresssessionanalysiswarning + * @default null + */ + suppressSessionAnalysisWarning: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + /** @default null */ + vizSpecificOptions: components["schemas"]["VizSpecificOptions"] | null; + }; + /** + * @description * `Cancelled` - Cancelled + * * `Modified` - Modified + * * `Completed` - Completed + * * `Failed` - Failed + * * `Running` - Running + * @enum {string} + */ + SavedQueryStatusEnum: "Cancelled" | "Modified" | "Completed" | "Failed" | "Running"; + /** + * Scale + * @enum {string} + */ + Scale: "linear" | "logarithmic"; + ScanEvidence: { + /** @description Number of files scanned */ + filesScanned: number; + /** @description Total candidate files detected */ + detectedFilesCount: number; + /** @description Number of distinct event names found */ + eventNameCount: number; + /** @description Whether posthog.init() was found in scanned files */ + foundPosthogInit: boolean; + /** @description Whether posthog.capture() was found in scanned files */ + foundPosthogCapture: boolean; + /** @description Whether error tracking signals were found in scanned files */ + foundErrorSignal: boolean; + }; + ScenePersonalisationBasic: { + scene: string; + dashboard?: number | null; + }; + /** + * @description * `once` - once + * * `recurring` - recurring + * * `always` - always + * @enum {string} + */ + ScheduleEnum: "once" | "recurring" | "always"; + SchemaPropertyGroup: { + /** Format: uuid */ + readonly id: string; + name: string; + description?: string; + properties?: components["schemas"]["SchemaPropertyGroupProperty"][]; + readonly events: components["schemas"]["EventDefinitionBasic"][]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + }; + SchemaPropertyGroupProperty: { + /** Format: uuid */ + readonly id: string; + name: string; + property_type: components["schemas"]["SchemaPropertyGroupPropertyPropertyTypeEnum"]; + is_required?: boolean; + is_optional_in_types?: boolean; + description?: string; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + /** + * @description * `DateTime` - DateTime + * * `String` - String + * * `Numeric` - Numeric + * * `Boolean` - Boolean + * * `Object` - Object + * @enum {string} + */ + SchemaPropertyGroupPropertyPropertyTypeEnum: "DateTime" | "String" | "Numeric" | "Boolean" | "Object"; + ScoreDefinition: { + /** Format: uuid */ + readonly id: string; + readonly name: string; + readonly description: string; + readonly kind: components["schemas"]["ExperimentMetricKindEnum"]; + readonly archived: boolean; + /** @description Current immutable configuration version number. */ + readonly current_version: number; + /** + * Format: uuid + * @description UUID of the current version row. Matches `system.score_definitions.current_version_id` in HogQL. + */ + readonly current_version_id: string | null; + /** @description Current immutable scorer configuration. */ + readonly config: components["schemas"]["ScoreDefinitionConfig"]; + /** @description User who created the scorer. */ + readonly created_by: components["schemas"]["UserBasic"] | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + readonly team: number; + }; + ScoreDefinitionConfig: components["schemas"]["CategoricalScoreDefinitionConfig"] | components["schemas"]["NumericScoreDefinitionConfig"] | components["schemas"]["BooleanScoreDefinitionConfig"]; + ScoreDefinitionCreate: { + /** @description Human-readable scorer name. */ + name: string; + /** @description Optional human-readable description. */ + description?: string | null; + /** + * @description Scorer kind. This cannot be changed after creation. + * + * * `categorical` - categorical + * * `numeric` - numeric + * * `boolean` - boolean + */ + kind: components["schemas"]["ExperimentMetricKindEnum"]; + /** + * @description New scorers are always created as active. + * @default false + */ + archived: boolean; + /** @description Initial immutable scorer configuration. */ + config: components["schemas"]["ScoreDefinitionConfig"]; + }; + ScoreDefinitionNewVersion: { + /** @description Next immutable scorer configuration. */ + config: components["schemas"]["ScoreDefinitionConfig"]; + /** @description Version number the caller observed before requesting this bump. If provided and it does not match the scorer's current version, the request fails with 409. Omit to skip the optimistic-concurrency check. */ + base_version?: number; + }; + SdkAssessment: { + /** @description SDK identifier, e.g. 'web', 'posthog-python', 'posthog-node', 'posthog-ios'. */ + lib: string; + /** @description Human-readable SDK name matching the SDK Doctor UI (e.g. 'Python', 'Node.js', 'Web', 'iOS'). */ + readable_name: string; + /** @description Most recent published version of this SDK. */ + latest_version: string; + /** @description True if this SDK needs attention (is_outdated OR is_old). */ + needs_updating: boolean; + /** @description True if the primary in-use version is flagged as outdated. */ + is_outdated: boolean; + /** @description True if the primary in-use version is flagged as old by age alone. */ + is_old: boolean; + /** + * @description UI severity badge — 'none' when healthy, 'warning' when outdated, 'danger' when the majority of team SDKs are outdated. + * + * * `none` - none + * * `warning` - warning + * * `danger` - danger + */ + severity: components["schemas"]["SdkAssessmentSeverityEnum"]; + /** @description Per-SDK programmatic summary (used for ranking/filtering). For user-facing copy, prefer releases[].status_reason (badge tooltip) and banners (top-level alert text) — those match the UI exactly. */ + reason: string; + /** @description Top-level alert sentences matching the SDK Doctor UI's 'Time for an update!' banner — one per outdated version with significant traffic. Quote verbatim when surfacing the headline to users. */ + banners: string[]; + /** @description Per-version assessment for all versions seen in the last 7 days. */ + releases: components["schemas"]["SdkReleaseAssessment"][]; + /** @description Outdated versions that handle a significant share of traffic (above the threshold). Not populated for mobile SDKs. */ + outdated_traffic_alerts: components["schemas"]["OutdatedTrafficAlert"][]; + }; + /** + * @description * `none` - none + * * `warning` - warning + * * `danger` - danger + * @enum {string} + */ + SdkAssessmentSeverityEnum: "none" | "warning" | "danger"; + SdkHealthReport: { + /** + * @description 'healthy' when no SDKs need updating, 'needs_attention' otherwise. + * + * * `healthy` - healthy + * * `needs_attention` - needs_attention + */ + overall_health: components["schemas"]["OverallHealthEnum"]; + /** + * @description UI-level status — 'success' when healthy, 'warning' when some SDKs are outdated, 'danger' when the majority are outdated. + * + * * `success` - success + * * `warning` - warning + * * `danger` - danger + */ + health: components["schemas"]["HealthEnum"]; + /** @description Number of SDKs that need updating. */ + needs_updating_count: number; + /** @description Number of distinct PostHog SDKs the project is actively using. */ + team_sdk_count: number; + /** @description Per-SDK health assessments. */ + sdks: components["schemas"]["SdkAssessment"][]; + }; + SdkReleaseAssessment: { + /** @description In-use SDK version string, e.g. '1.298.0'. */ + version: string; + /** @description Number of events captured with this version in the last 7 days. */ + count: number; + /** @description Timestamp of the most recent event seen for this version (ISO 8601). */ + max_timestamp: string; + /** @description When this version was published on GitHub (ISO 8601), or null if unknown. */ + release_date: string | null; + /** @description Days since this version was released, or null if unknown. */ + days_since_release: number | null; + /** @description Human-readable relative release age matching the UI (e.g. '5 months ago'). Null when release_date is unknown. */ + released_ago: string | null; + /** @description True when this version is flagged as outdated by smart-semver rules. */ + is_outdated: boolean; + /** @description True when this version is flagged as old by age alone (separate from semver rules). */ + is_old: boolean; + /** @description True if is_outdated OR is_old. */ + needs_updating: boolean; + /** @description True when this version equals or exceeds the latest known published version. */ + is_current_or_newer: boolean; + /** @description Per-version badge tooltip text matching the SDK Doctor UI exactly. Quote verbatim when reporting to users. Varies by state: 'Released X ago. Upgrade recommended.' for outdated versions, 'You have the latest available. Click Releases above to check for any since.' for current versions, or 'Released X ago. Upgrading is a good idea, but it's not urgent yet.' for recent-but-behind versions. */ + status_reason: string; + /** @description SQL SELECT statement for drilling into events for this SDK version over the last 7 days. Suitable to pass to the execute-sql tool or to display as a copy-paste snippet. */ + sql_query: string; + /** @description Relative URL path (starting with /project/{id}/) for the Activity > Explore page pre-filtered to events captured with this lib and lib_version over the last 7 days. Combine with the user's PostHog host (e.g. us.posthog.com) for a clickable link. */ + activity_page_url: string; + }; + /** + * @description * `single` - single + * * `multiple` - multiple + * @enum {string} + */ + SelectionModeEnum: "single" | "multiple"; + SentimentBatchResponse: { + results: { + [key: string]: components["schemas"]["SentimentResult"]; + }; + }; + /** + * @description Filter shape mirrors the previous frontend `api.query({filters: ...})` payload. + * + * `filters` accepts the same `HogQLFilters` schema that the legacy frontend HogQL + * path used (dateRange, filterTestAccounts, properties), so the migration is + * behaviour-preserving for callers that pass a request unchanged. + */ + SentimentGenerationsRequest: { + filters?: unknown; + }; + SentimentGenerationsResponse: { + results: unknown[][]; + }; + SentimentRequest: { + /** @description Trace IDs (analysis_level=trace) or generation event UUIDs (analysis_level=generation). */ + ids: string[]; + /** + * @description Whether the IDs are 'trace' IDs or 'generation' IDs. + * + * * `trace` - trace + * * `generation` - generation + * @default trace + */ + analysis_level: components["schemas"]["SentimentRequestAnalysisLevelEnum"]; + /** + * @description If true, bypass cache and reclassify. + * @default false + */ + force_refresh: boolean; + /** @description Start of date range for the lookup (e.g. '-7d' or '2026-01-01'). Defaults to -30d. */ + date_from?: string | null; + /** @description End of date range for the lookup. Defaults to now. */ + date_to?: string | null; + }; + /** + * @description * `trace` - trace + * * `generation` - generation + * @enum {string} + */ + SentimentRequestAnalysisLevelEnum: "trace" | "generation"; + SentimentResult: { + label: string; + /** Format: double */ + score: number; + scores: { + [key: string]: number; + }; + messages: { + [key: string]: components["schemas"]["MessageSentiment"]; + }; + message_count: number; + }; + /** Series */ + Series: { + /** Label */ + label: string; + /** Value */ + value: number; + }; + /** SessionAttributionExplorerQuery */ + SessionAttributionExplorerQuery: { + /** @default null */ + filters: components["schemas"]["Filters"] | null; + /** Groupby */ + groupBy: components["schemas"]["SessionAttributionGroupBy"][]; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "SessionAttributionExplorerQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** @default null */ + response: components["schemas"]["SessionAttributionExplorerQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** SessionAttributionExplorerQueryResponse */ + SessionAttributionExplorerQueryResponse: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** + * SessionAttributionGroupBy + * @enum {string} + */ + SessionAttributionGroupBy: "ChannelType" | "Medium" | "Source" | "Campaign" | "AdIds" | "ReferringDomain" | "InitialURL"; + /** SessionData */ + SessionData: { + /** Event Uuid */ + event_uuid: string; + /** Person Id */ + person_id: string; + /** Session Id */ + session_id: string; + /** Timestamp */ + timestamp: string; + }; + SessionGroupSummary: { + /** Format: uuid */ + readonly id: string; + /** @description Title of the group session summary */ + readonly title: string; + /** @description List of session replay IDs included in this group summary */ + readonly session_ids: string[]; + /** @description Group summary in JSON format (EnrichedSessionGroupSummaryPatternsList schema) */ + readonly summary: unknown; + /** @description Additional context passed to the summary (ExtraSummaryContext schema) */ + readonly extra_summary_context: unknown; + /** @description Summary run metadata (SessionSummaryRunMeta schema) */ + readonly run_metadata: unknown; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + readonly team: number; + }; + SessionGroupSummaryMinimal: { + /** Format: uuid */ + readonly id: string; + /** @description Title of the group session summary */ + readonly title: string; + readonly session_count: number; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + }; + /** SessionPropertyFilter */ + SessionPropertyFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + /** + * Type + * @default session + * @constant + */ + type: "session"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + SessionRecording: { + readonly id: string; + readonly distinct_id: string | null; + readonly viewed: boolean; + readonly viewers: string[]; + readonly recording_duration: number; + readonly active_seconds: number | null; + readonly inactive_seconds: number | null; + /** Format: date-time */ + readonly start_time: string | null; + /** Format: date-time */ + readonly end_time: string | null; + readonly click_count: number | null; + readonly keypress_count: number | null; + readonly mouse_activity_count: number | null; + readonly console_log_count: number | null; + readonly console_warn_count: number | null; + readonly console_error_count: number | null; + readonly start_url: string | null; + person?: components["schemas"]["MinimalPerson"]; + readonly retention_period_days: number | null; + /** Format: date-time */ + readonly expiry_time: string | null; + readonly recording_ttl: number | null; + readonly snapshot_source: string | null; + readonly snapshot_library: string | null; + readonly ongoing: boolean; + /** Format: double */ + readonly activity_score: number | null; + readonly has_summary: boolean; + readonly summary_outcome: components["schemas"]["Outcome"] | null; + /** @description Load external references (linked issues) for this recording */ + readonly external_references: { + [key: string]: unknown; + }[]; + }; + /** SessionRecordingExternalReference */ + SessionRecordingExternalReference: { + /** External Url */ + external_url: string; + /** Id */ + id: string; + integration: components["schemas"]["Integration"]; + /** Issue Id */ + issue_id: string; + /** + * Metadata + * @default null + */ + metadata: { + [key: string]: string; + } | null; + /** Title */ + title: string; + }; + SessionRecordingPlaylist: { + readonly id: number; + readonly short_id: string; + /** @description Human-readable name for the playlist. */ + name?: string | null; + derived_name?: string | null; + /** @description Optional description of the playlist's purpose or contents. */ + description?: string; + /** @description Whether this playlist is pinned to the top of the list. */ + pinned?: boolean; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** @description Set to true to soft-delete the playlist. */ + deleted?: boolean; + /** @description JSON object with recording filter criteria. Only used when type is 'filters'. Defines which recordings match this saved filter view. When updating a filters-type playlist, you must include the existing filters alongside any other changes — omitting filters will be treated as removing them. */ + filters?: unknown; + /** Format: date-time */ + readonly last_modified_at: string; + readonly last_modified_by: components["schemas"]["UserBasic"]; + readonly recordings_counts: { + [key: string]: { + [key: string]: number | boolean | null; + }; + }; + /** + * @description Playlist type: 'collection' for manually curated recordings, 'filters' for saved filter views. Required on create, cannot be changed after. + * + * * `collection` - Collection + * * `filters` - Filters + */ + type?: components["schemas"]["SessionRecordingPlaylistTypeEnum"] | components["schemas"]["NullEnum"]; + /** @description Return whether this is a synthetic playlist */ + readonly is_synthetic: boolean; + /** create in folder */ + _create_in_folder?: string; + }; + /** + * @description * `collection` - Collection + * * `filters` - Filters + * @enum {string} + */ + SessionRecordingPlaylistTypeEnum: "collection" | "filters"; + /** + * @description * `30d` - 30 Days + * * `90d` - 90 Days + * * `1y` - 1 Year + * * `5y` - 5 Years + * @enum {string} + */ + SessionRecordingRetentionPeriodEnum: "30d" | "90d" | "1y" | "5y"; + /** SessionRecordingType */ + SessionRecordingType: { + /** + * Active Seconds + * @default null + */ + active_seconds: number | null; + /** + * Activity Score + * @description calculated on the backend so that we can sort by it, definition may change over time + * @default null + */ + activity_score: number | null; + /** + * Click Count + * @default null + */ + click_count: number | null; + /** + * Console Error Count + * @default null + */ + console_error_count: number | null; + /** + * Console Log Count + * @default null + */ + console_log_count: number | null; + /** + * Console Warn Count + * @default null + */ + console_warn_count: number | null; + /** + * Distinct Id + * @default null + */ + distinct_id: string | null; + /** + * Email + * @default null + */ + email: string | null; + /** + * End Time + * @description When the recording ends in ISO format. + */ + end_time: string; + /** + * Expiry Time + * @description When the recording expires, in ISO format. + * @default null + */ + expiry_time: string | null; + /** + * External References + * @description External references to third party issues. + * @default null + */ + external_references: components["schemas"]["SessionRecordingExternalReference"][] | null; + /** + * Has Summary + * @default null + */ + has_summary: boolean | null; + /** Id */ + id: string; + /** + * Inactive Seconds + * @default null + */ + inactive_seconds: number | null; + /** + * Keypress Count + * @default null + */ + keypress_count: number | null; + /** + * Matching Events + * @description List of matching events. * + * @default null + */ + matching_events: components["schemas"]["MatchedRecording"][] | null; + /** + * Mouse Activity Count + * @description count of all mouse activity in the recording, not just clicks + * @default null + */ + mouse_activity_count: number | null; + /** + * Ongoing + * @description whether we have received data for this recording in the last 5 minutes (assumes the recording was loaded from ClickHouse) + * * + * @default null + */ + ongoing: boolean | null; + /** @default null */ + person: components["schemas"]["PersonType"] | null; + /** + * Recording Duration + * @description Length of recording in seconds. + */ + recording_duration: number; + /** + * Recording Ttl + * @description Number of whole days left until the recording expires. + * @default null + */ + recording_ttl: number | null; + /** + * Retention Period Days + * @description retention period for this recording + * @default null + */ + retention_period_days: number | null; + /** + * Snapshot Library + * @default null + */ + snapshot_library: string | null; + snapshot_source: components["schemas"]["SnapshotSource"]; + /** + * Start Time + * @description When the recording starts in ISO format. + */ + start_time: string; + /** + * Start Url + * @default null + */ + start_url: string | null; + /** + * Summary + * @default null + */ + summary: string | null; + /** @default null */ + summary_outcome: components["schemas"]["SummaryOutcome"] | null; + /** + * Viewed + * @description Whether this recording has been viewed by you already. + */ + viewed: boolean; + /** + * Viewers + * @description user ids of other users who have viewed this recording + */ + viewers: string[]; + }; + SessionSummaries: { + /** @description List of session IDs to summarize (max 300) */ + session_ids: string[]; + /** @description Optional focus area for the summarization */ + focus_area?: string; + }; + SessionSummariesConfig: { + /** @description Free-form description of the team's product, used to tailor AI-generated single-session replay summaries. Injected into the system prompt of every summary generated for this team via the replay page. */ + product_context?: string; + /** @description Team-defined tags layered on top of the fixed taxonomy, as a {name: description} map. Names must be lowercase snake_case (max 60 chars), descriptions max 200 chars, max 15 entries. */ + custom_tags?: { + [key: string]: string; + }; + }; + /** + * SessionTableVersion + * @enum {string} + */ + SessionTableVersion: "auto" | "v1" | "v2" | "v3"; + /** SessionsQuery */ + SessionsQuery: { + /** + * Actionid + * @description Filter sessions by action - sessions that contain events matching this action + * @default null + */ + actionId: number | null; + /** + * After + * @description Only fetch sessions that started after this timestamp + * @default null + */ + after: string | null; + /** + * Before + * @description Only fetch sessions that started before this timestamp + * @default null + */ + before: string | null; + /** + * Event + * @description Filter sessions by event name - sessions that contain this event + * @default null + */ + event: string | null; + /** + * Eventproperties + * @description Event property filters - filters sessions that contain events matching these properties + * @default null + */ + eventProperties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Filtertestaccounts + * @description Filter test accounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Fixedproperties + * @description Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person) + * @default null + */ + fixedProperties: (components["schemas"]["PropertyGroupFilter"] | components["schemas"]["PropertyGroupFilterValue"] | components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "SessionsQuery"; + /** + * Limit + * @description Number of rows to return + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @description Number of rows to skip before returning rows + * @default null + */ + offset: number | null; + /** + * Orderby + * @description Columns to order by + * @default null + */ + orderBy: string[] | null; + /** + * Personid + * @description Show sessions for a given person + * @default null + */ + personId: string | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** @default null */ + response: components["schemas"]["SessionsQueryResponse"] | null; + /** + * Select + * @description Return a limited set of data. Required. + */ + select: string[]; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + /** + * Where + * @description HogQL filters to apply on returned data + * @default null + */ + where: string[] | null; + }; + /** SessionsQueryResponse */ + SessionsQueryResponse: { + /** Columns */ + columns: unknown[]; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + */ + hogql: string; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** Types */ + types: string[]; + }; + /** SessionsTimelineQuery */ + SessionsTimelineQuery: { + /** + * After + * @description Only fetch sessions that started after this timestamp (default: '-24h') + * @default null + */ + after: string | null; + /** + * Before + * @description Only fetch sessions that started before this timestamp (default: '+5s') + * @default null + */ + before: string | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "SessionsTimelineQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Personid + * @description Fetch sessions only for a given person + * @default null + */ + personId: string | null; + /** @default null */ + response: components["schemas"]["SessionsTimelineQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** SessionsTimelineQueryResponse */ + SessionsTimelineQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["TimelineEntry"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** + * SessionsV2JoinMode + * @enum {string} + */ + SessionsV2JoinMode: "string" | "uuid"; + /** Settings */ + Settings: { + /** @default null */ + display: components["schemas"]["ChartSettingsDisplay"] | null; + /** @default null */ + formatting: components["schemas"]["ChartSettingsFormatting"] | null; + }; + /** + * @description * `trace` - trace + * * `debug` - debug + * * `info` - info + * * `warn` - warn + * * `error` - error + * * `fatal` - fatal + * @enum {string} + */ + SeverityLevelsEnum: "trace" | "debug" | "info" | "warn" | "error" | "fatal"; + SharePassword: { + readonly id: number; + /** Format: date-time */ + readonly created_at: string; + note?: string | null; + readonly created_by_email: string; + readonly is_active: boolean; + }; + SharingConfiguration: { + /** Format: date-time */ + readonly created_at: string; + enabled?: boolean; + readonly access_token: string | null; + settings?: unknown; + password_required?: boolean; + readonly share_passwords: components["schemas"]["SharePassword"][]; + }; + ShipVariant: { + /** + * @description The conclusion of the experiment. + * + * * `won` - won + * * `lost` - lost + * * `inconclusive` - inconclusive + * * `stopped_early` - stopped_early + * * `invalid` - invalid + */ + conclusion?: components["schemas"]["ConclusionEnum"] | components["schemas"]["NullEnum"]; + /** @description Optional comment about the experiment conclusion. */ + conclusion_comment?: string | null; + /** @description The key of the variant to ship to 100% of users. */ + variant_key: string; + }; + /** + * @description * `above` - Above + * * `below` - Below + * * `hidden` - Hidden + * @enum {string} + */ + ShortcutPositionEnum: "above" | "below" | "hidden"; + SignalReport: { + /** Format: uuid */ + readonly id: string; + readonly title: string | null; + readonly summary: string | null; + readonly status: components["schemas"]["SignalReportStatusEnum"]; + /** Format: double */ + readonly total_weight: number; + readonly signal_count: number; + readonly signals_at_run: number; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly artefact_count: number; + /** @description P0–P4 from the latest priority judgment artefact (when present). */ + readonly priority: string | null; + /** @description Actionability choice from the latest actionability judgment artefact (when present). */ + readonly actionability: string | null; + /** @description Whether the issue appears already fixed, from the actionability judgment artefact. */ + readonly already_addressed: boolean | null; + /** @default false */ + readonly is_suggested_reviewer: boolean; + /** @description Distinct source products contributing signals to this report (from ClickHouse). */ + readonly source_products: string[]; + /** @description PR URL from the latest implementation task run, if available. */ + readonly implementation_pr_url: string | null; + }; + /** + * @description * `potential` - Potential + * * `candidate` - Candidate + * * `in_progress` - In Progress + * * `pending_input` - Pending Input + * * `ready` - Ready + * * `resolved` - Resolved + * * `failed` - Failed + * * `deleted` - Deleted + * * `suppressed` - Suppressed + * @enum {string} + */ + SignalReportStatusEnum: "potential" | "candidate" | "in_progress" | "pending_input" | "ready" | "resolved" | "failed" | "deleted" | "suppressed"; + /** + * @description * `implementation` - Implementation + * @enum {string} + */ + SignalReportTaskRelationshipEnum: "implementation"; + SignalSourceConfig: { + /** Format: uuid */ + readonly id: string; + source_product: components["schemas"]["SourceProductEnum"]; + source_type: components["schemas"]["SignalSourceConfigSourceTypeEnum"]; + enabled?: boolean; + config?: unknown; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly status: string | null; + }; + /** + * @description * `session_analysis_cluster` - Session analysis cluster + * * `evaluation` - Evaluation + * * `issue` - Issue + * * `ticket` - Ticket + * * `issue_created` - Issue created + * * `issue_reopened` - Issue reopened + * * `issue_spiking` - Issue spiking + * @enum {string} + */ + SignalSourceConfigSourceTypeEnum: "session_analysis_cluster" | "evaluation" | "issue" | "ticket" | "issue_created" | "issue_reopened" | "issue_spiking"; + SignalUserAutonomyConfig: { + /** Format: uuid */ + readonly id: string; + readonly user: components["schemas"]["_User"]; + autostart_priority?: components["schemas"]["AutostartPriorityEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + /** SimilarIssue */ + SimilarIssue: { + /** Description */ + description: string; + /** Distance */ + distance: number; + /** First Seen */ + first_seen: string; + /** Id */ + id: string; + /** + * Library + * @default null + */ + library: string | null; + /** Name */ + name: string; + /** Status */ + status: string; + }; + SimpleExternalDataSourceSerializers: { + /** Format: uuid */ + readonly id: string; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: number | null; + readonly status: string; + readonly source_type: components["schemas"]["ExternalDataSourceTypeEnum"]; + }; + /** + * SimpleIntervalType + * @enum {string} + */ + SimpleIntervalType: "day" | "month"; + SlackChannel: { + /** @description Slack channel ID (e.g. C0123ABC) — pass to cdp-functions inputs.channel. */ + id: string; + /** @description Slack channel name without the leading '#'. */ + name: string; + /** @description True if the channel is private. */ + is_private: boolean; + /** @description True if the PostHog Slack app is a member of the channel and can post to it. */ + is_member: boolean; + /** @description True if the channel is shared with another Slack workspace. */ + is_ext_shared: boolean; + /** @description True if the channel is private and the PostHog Slack app cannot access it. */ + is_private_without_access: boolean; + }; + SlackChannelsResponse: { + /** @description Slack channels visible to the PostHog Slack app. */ + channels: components["schemas"]["SlackChannel"][]; + /** @description ISO 8601 timestamp of the last full Slack API refresh (only set on full lists, not single-channel lookups). */ + lastRefreshedAt?: string | null; + }; + Snapshot: { + current_artifact?: components["schemas"]["Artifact"] | null; + baseline_artifact?: components["schemas"]["Artifact"] | null; + diff_artifact?: components["schemas"]["Artifact"] | null; + reviewed_by?: components["schemas"]["UserBasicInfo"] | null; + cluster_summary?: components["schemas"]["ClusterSummary"] | null; + /** Format: uuid */ + id: string; + identifier: string; + result: string; + classification_reason: string; + /** Format: double */ + diff_percentage: number | null; + diff_pixel_count: number | null; + review_state: string; + /** Format: date-time */ + reviewed_at: string | null; + approved_hash: string; + /** Format: uuid */ + tolerated_hash_id?: string | null; + is_quarantined?: boolean; + metadata?: { + [key: string]: unknown; + }; + /** Format: double */ + ssim_score?: number | null; + change_kind?: string; + size_mismatch?: boolean; + }; + SnapshotHistoryEntry: { + current_artifact?: components["schemas"]["Artifact"] | null; + /** Format: uuid */ + run_id: string; + /** Format: uuid */ + snapshot_id: string; + result: string; + branch: string; + commit_sha: string; + /** Format: date-time */ + created_at: string; + pr_number?: number | null; + /** Format: double */ + diff_percentage?: number | null; + review_state?: string; + /** Format: double */ + ssim_score?: number | null; + change_kind?: string; + size_mismatch?: boolean; + }; + SnapshotManifestItem: { + identifier: string; + content_hash: string; + width?: number | null; + height?: number | null; + metadata?: { + [key: string]: unknown; + }; + }; + /** + * SnapshotSource + * @enum {string} + */ + SnapshotSource: "web" | "mobile" | "unknown"; + /** + * @description * `session_replay` - Session replay + * * `llm_analytics` - LLM analytics + * * `github` - GitHub + * * `linear` - Linear + * * `zendesk` - Zendesk + * * `conversations` - Conversations + * * `error_tracking` - Error tracking + * @enum {string} + */ + SourceProductEnum: "session_replay" | "llm_analytics" | "github" | "linear" | "zendesk" | "conversations" | "error_tracking"; + /** SpanPropertyFilter */ + SpanPropertyFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + type: components["schemas"]["SpanPropertyFilterType"]; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + /** + * SpanPropertyFilterType + * @enum {string} + */ + SpanPropertyFilterType: "span" | "span_attribute" | "span_resource_attribute"; + /** SpanTreeNode */ + SpanTreeNode: { + /** Avg Duration Nano */ + avg_duration_nano: number; + /** + * Avg Start Offset Nano + * @description Average nanoseconds from the parent span's start to this span's start. Zero for root spans. Used to order children left-to-right by typical start time in the flame graph. + */ + avg_start_offset_nano: number; + /** Count */ + count: number; + /** Error Count */ + error_count: number; + /** Name */ + name: string; + /** P50 Duration Nano */ + p50_duration_nano: number; + /** P95 Duration Nano */ + p95_duration_nano: number; + /** Parent Name */ + parent_name: string; + /** Parent Service */ + parent_service: string; + /** Service Name */ + service_name: string; + /** Total Duration Nano */ + total_duration_nano: number; + }; + /** + * @description * `severity` - severity + * * `service` - service + * @enum {string} + */ + SparklineBreakdownByEnum: "severity" | "service"; + /** + * @description * `draft` - draft + * * `concept` - concept + * * `alpha` - alpha + * * `beta` - beta + * * `general-availability` - general availability + * * `archived` - archived + * @enum {string} + */ + StageEnum: "draft" | "concept" | "alpha" | "beta" | "general-availability" | "archived"; + /** + * StartHandling + * @enum {string} + */ + StartHandling: "first_seen" | "last_seen"; + StaticFilters: { + /** @description Users who have logged activity. */ + users: { + [key: string]: unknown; + }[]; + /** @description Available activity scopes. */ + scopes: { + [key: string]: unknown; + }[]; + /** @description Available activity types. */ + activities: { + [key: string]: unknown; + }[]; + /** @description API clients that have generated activity (from x-posthog-client header). */ + clients: { + [key: string]: unknown; + }[]; + }; + /** StatusItem */ + StatusItem: { + /** Label */ + label: string; + /** Value */ + value: string; + }; + /** + * @description * `trial_limit_reached` - Trial evaluation limit reached + * * `model_not_allowed` - Model not available on the trial plan + * * `provider_key_deleted` - Provider API key was deleted + * @enum {string} + */ + StatusReasonEnum: "trial_limit_reached" | "model_not_allowed" | "provider_key_deleted"; + /** + * StepOrderValue + * @enum {string} + */ + StepOrderValue: "strict" | "unordered" | "ordered"; + /** StickinessActorsQuery */ + StickinessActorsQuery: { + /** @default null */ + compare: components["schemas"]["Compare"] | null; + /** + * Day + * @default null + */ + day: string | number | null; + /** + * Includerecordings + * @default null + */ + includeRecordings: boolean | null; + /** + * Kind + * @default StickinessActorsQuery + * @constant + */ + kind: "StickinessActorsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + operator: components["schemas"]["StickinessOperator"] | null; + /** @default null */ + response: components["schemas"]["ActorsQueryResponse"] | null; + /** + * Series + * @default null + */ + series: number | null; + source: components["schemas"]["StickinessQuery"]; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** + * StickinessComputationMode + * @enum {string} + */ + StickinessComputationMode: "non_cumulative" | "cumulative"; + /** StickinessCriteria */ + StickinessCriteria: { + operator: components["schemas"]["StickinessOperator"]; + /** Value */ + value: number; + }; + /** StickinessFilter */ + StickinessFilter: { + /** @default null */ + computedAs: components["schemas"]["StickinessComputationMode"] | null; + /** @default null */ + display: components["schemas"]["ChartDisplayType"] | null; + /** + * Hiddenlegendindexes + * @default null + */ + hiddenLegendIndexes: number[] | null; + /** + * @description Whether result datasets are associated by their values or by their order. + * @default value + */ + resultCustomizationBy: components["schemas"]["ResultCustomizationBy"] | null; + /** + * Resultcustomizations + * @description Customizations for the appearance of result datasets. + * @default null + */ + resultCustomizations: { + [key: string]: components["schemas"]["ResultCustomizationByValue"]; + } | { + [key: string]: components["schemas"]["ResultCustomizationByPosition"]; + } | null; + /** + * Showlegend + * @default null + */ + showLegend: boolean | null; + /** + * Showmultipleyaxes + * @default null + */ + showMultipleYAxes: boolean | null; + /** + * Showvaluesonseries + * @default null + */ + showValuesOnSeries: boolean | null; + /** @default null */ + stickinessCriteria: components["schemas"]["StickinessCriteria"] | null; + }; + /** + * StickinessOperator + * @enum {string} + */ + StickinessOperator: "gte" | "lte" | "exact"; + /** StickinessQuery */ + StickinessQuery: { + /** + * @description Compare to date range + * @default null + */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization + * @default null + */ + dataColorTheme: number | null; + /** + * @description Date range for the query + * @default null + */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Filtertestaccounts + * @description Exclude internal and test users by applying the respective filters + * @default false + */ + filterTestAccounts: boolean | null; + /** + * @description Granularity of the response. Can be one of `hour`, `day`, `week` or `month` + * @default day + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * Intervalcount + * @description How many intervals comprise a period. Only used for cohorts, otherwise default 1. + * @default null + */ + intervalCount: number | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "StickinessQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Properties + * @description Property filters for all series + * @default [] + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | components["schemas"]["PropertyGroupFilter"] | null; + /** @default null */ + response: components["schemas"]["StickinessQueryResponse"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** + * Series + * @description Events and actions to include + */ + series: (components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["DataWarehouseNode"])[]; + /** + * @description Properties specific to the stickiness insight + * @default null + */ + stickinessFilter: components["schemas"]["StickinessFilter"] | null; + /** + * @description Tags that will be added to the Query log comment + * @default null + */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** StickinessQueryResponse */ + StickinessQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: { + [key: string]: unknown; + }[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** + * @description * `exact` - exact + * * `is_not` - is_not + * * `icontains` - icontains + * * `not_icontains` - not_icontains + * * `regex` - regex + * * `not_regex` - not_regex + * @enum {string} + */ + StringMatchOperatorEnum: "exact" | "is_not" | "icontains" | "not_icontains" | "regex" | "not_regex"; + /** @description Matches string values with text-oriented operators. */ + StringPropertyFilter: { + /** @description Key of the property you're filtering on. For example `email` or `$current_url`. */ + key: string; + /** + * @description Property type (event, person, session, etc.). + * + * * `event` - event + * * `event_metadata` - event_metadata + * * `feature` - feature + * * `person` - person + * * `cohort` - cohort + * * `element` - element + * * `static-cohort` - static-cohort + * * `dynamic-cohort` - dynamic-cohort + * * `precalculated-cohort` - precalculated-cohort + * * `group` - group + * * `recording` - recording + * * `log_entry` - log_entry + * * `behavioral` - behavioral + * * `session` - session + * * `hogql` - hogql + * * `data_warehouse` - data_warehouse + * * `data_warehouse_person_property` - data_warehouse_person_property + * * `error_tracking_issue` - error_tracking_issue + * * `log` - log + * * `log_attribute` - log_attribute + * * `log_resource_attribute` - log_resource_attribute + * * `span` - span + * * `span_attribute` - span_attribute + * * `span_resource_attribute` - span_resource_attribute + * * `revenue_analytics` - revenue_analytics + * * `flag` - flag + * * `workflow_variable` - workflow_variable + * @default event + */ + type: components["schemas"]["PropertyFilterTypeEnum"]; + /** @description String value to match against. */ + value: string; + /** + * @description String comparison operator. + * + * * `exact` - exact + * * `is_not` - is_not + * * `icontains` - icontains + * * `not_icontains` - not_icontains + * * `regex` - regex + * * `not_regex` - not_regex + * @default exact + */ + operator: components["schemas"]["StringMatchOperatorEnum"]; + }; + StructuredSummary: { + /** @description Concise title (no longer than 10 words) summarizing the trace/event */ + title: string; + /** @description Mermaid flowchart code showing the main flow */ + flow_diagram: string; + /** @description Main summary bullets */ + summary_bullets: components["schemas"]["SummaryBullet"][]; + /** @description Interesting notes (0-2 for minimal, more for detailed) */ + interesting_notes: components["schemas"]["InterestingNote"][]; + }; + /** + * Style + * @enum {string} + */ + Style: "none" | "number" | "short" | "percent"; + /** @description Standard Subscription serializer. */ + Subscription: { + readonly id: number; + /** @description Dashboard ID to subscribe to (mutually exclusive with insight on create). */ + dashboard?: number | null; + /** @description Insight ID to subscribe to (mutually exclusive with dashboard on create). */ + insight?: number | null; + readonly insight_short_id: string | null; + readonly resource_name: string | null; + /** @description List of insight IDs from the dashboard to include. Required for dashboard subscriptions, max 6. */ + dashboard_export_insights?: number[]; + /** + * @description Delivery channel: email, slack, or webhook. + * + * * `email` - Email + * * `slack` - Slack + * * `webhook` - Webhook + */ + target_type: components["schemas"]["TargetTypeEnum"]; + /** @description Recipient(s): comma-separated email addresses for email, Slack channel name/ID for slack, or full URL for webhook. */ + target_value: string; + /** + * @description How often to deliver: hourly, daily, weekly, monthly, or yearly. Hourly is feature-flagged and limited to one active subscription per organization. + * + * * `hourly` - Hourly + * * `daily` - Daily + * * `weekly` - Weekly + * * `monthly` - Monthly + * * `yearly` - Yearly + */ + frequency: components["schemas"]["SubscriptionFrequencyEnum"]; + /** @description Interval multiplier (e.g. 2 with weekly frequency means every 2 weeks). Default 1. */ + interval?: number; + /** @description Days of week for weekly subscriptions: monday, tuesday, wednesday, thursday, friday, saturday, sunday. */ + byweekday?: ("monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday")[] | null; + /** @description Position within byweekday set for monthly frequency (e.g. 1 for first, -1 for last). */ + bysetpos?: number | null; + /** @description Total number of deliveries before the subscription stops. Null for unlimited. */ + count?: number | null; + /** + * Format: date-time + * @description When to start delivering (ISO 8601 datetime). + */ + start_date: string; + /** + * Format: date-time + * @description When to stop delivering (ISO 8601 datetime). Null for indefinite. + */ + until_date?: string | null; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** @description Set to true to soft-delete. Subscriptions cannot be hard-deleted. */ + deleted?: boolean; + /** @description Whether the subscription is active. Set to false to pause delivery without deleting. Auto-set to false when the delivery integration becomes invalid. */ + enabled?: boolean; + /** @description Human-readable name for this subscription. */ + title?: string | null; + /** @description Human-readable schedule summary, e.g. 'sent daily'. */ + readonly summary: string; + /** Format: date-time */ + readonly next_delivery_date: string | null; + /** @description ID of a connected Slack integration. Required when target_type is slack. */ + integration_id?: number | null; + /** @description Optional message included in the invitation email when adding new recipients. */ + invite_message?: string | null; + summary_enabled?: boolean; + summary_prompt_guide?: string; + }; + SubscriptionDelivery: { + /** + * Format: uuid + * @description Primary key for this delivery row. + */ + readonly id: string; + /** @description Parent subscription id. */ + readonly subscription: number; + /** @description Temporal workflow id for this delivery run. */ + readonly temporal_workflow_id: string; + /** @description Dedupes activity retries for the same logical run. */ + readonly idempotency_key: string; + /** @description Why the run started (e.g. scheduled, manual, target_change). */ + readonly trigger_type: string; + /** + * Format: date-time + * @description Planned send time when applicable. + */ + readonly scheduled_at: string | null; + /** @description Channel snapshot at send time (email, slack, webhook). */ + readonly target_type: string; + /** @description Destination snapshot at send time (emails, channel id, URL). */ + readonly target_value: string; + /** @description ExportedAsset ids generated for this send. */ + readonly exported_asset_ids: number[]; + /** @description Snapshot at send time: dashboard metadata, total_insight_count, and per-exported-insight entries (id, short_id, name, query_hash, cache_key, query_results, optional query_error). */ + readonly content_snapshot: unknown; + /** @description Per-destination outcomes; items use status success, failed, or partial. */ + readonly recipient_results: unknown; + /** + * @description Overall run status: starting, completed, failed, or skipped. + * + * * `starting` - Starting + * * `completed` - Completed + * * `failed` - Failed + * * `skipped` - Skipped + */ + readonly status: components["schemas"]["SubscriptionDeliveryStatusEnum"]; + /** @description Top-level failure payload when status is failed, if any. */ + readonly error: unknown; + /** + * Format: date-time + * @description When the delivery row was created. + */ + readonly created_at: string; + /** + * Format: date-time + * @description Last ORM update to this row. + */ + readonly last_updated_at: string; + /** + * Format: date-time + * @description When the run finished, if applicable. + */ + readonly finished_at: string | null; + /** @description AI-generated summary included in this delivery, when one was produced. */ + readonly change_summary: string | null; + }; + /** + * @description * `starting` - Starting + * * `completed` - Completed + * * `failed` - Failed + * * `skipped` - Skipped + * @enum {string} + */ + SubscriptionDeliveryStatusEnum: "starting" | "completed" | "failed" | "skipped"; + /** + * @description * `hourly` - Hourly + * * `daily` - Daily + * * `weekly` - Weekly + * * `monthly` - Monthly + * * `yearly` - Yearly + * @enum {string} + */ + SubscriptionFrequencyEnum: "hourly" | "daily" | "weekly" | "monthly" | "yearly"; + SuggestReplyError: { + detail: string; + error_type?: string; + }; + SuggestReplyResponse: { + suggestion: string; + }; + /** SuggestedQuestionsQuery */ + SuggestedQuestionsQuery: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "SuggestedQuestionsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["SuggestedQuestionsQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** SuggestedQuestionsQueryResponse */ + SuggestedQuestionsQueryResponse: { + /** Questions */ + questions: string[]; + }; + SummarizeRequest: { + /** + * @description Type of entity to summarize. Inferred automatically when using trace_id or generation_id. + * + * * `trace` - trace + * * `event` - event + */ + summarize_type?: components["schemas"]["SummarizeTypeEnum"]; + /** + * @description Summary detail level: 'minimal' for 3-5 points, 'detailed' for 5-10 points + * + * * `minimal` - minimal + * * `detailed` - detailed + * @default minimal + */ + mode: components["schemas"]["DetailModeValueEnum"]; + /** @description Data to summarize. For traces: {trace, hierarchy}. For events: {event}. Not required when using trace_id or generation_id. */ + data?: unknown; + /** + * @description Force regenerate summary, bypassing cache + * @default false + */ + force_refresh: boolean; + /** @description LLM model to use (defaults based on provider) */ + model?: string | null; + /** @description Trace ID to summarize. The backend fetches the trace data automatically. Requires date_from for efficient lookup. */ + trace_id?: string; + /** @description Generation event UUID to summarize. The backend fetches the event data automatically. Requires date_from for efficient lookup. */ + generation_id?: string; + /** @description Start of date range for ID-based lookup (e.g. '-7d' or '2026-01-01'). Defaults to -30d. */ + date_from?: string | null; + /** @description End of date range for ID-based lookup. Defaults to now. */ + date_to?: string | null; + }; + SummarizeResponse: { + /** @description Structured AI-generated summary with flow, bullets, and optional notes */ + summary: components["schemas"]["StructuredSummary"]; + /** @description Line-numbered text representation that the summary references */ + text_repr: string; + /** @description Metadata about the summarization */ + metadata?: unknown; + }; + /** + * @description * `trace` - trace + * * `event` - event + * @enum {string} + */ + SummarizeTypeEnum: "trace" | "event"; + SummaryBullet: { + text: string; + line_refs: string; + }; + /** SummaryOutcome */ + SummaryOutcome: { + /** + * Description + * @default null + */ + description: string | null; + /** + * Success + * @default null + */ + success: boolean | null; + }; + /** @description Mixin for serializers to add user access control fields */ + Survey: { + /** Format: uuid */ + readonly id: string; + name: string; + description?: string; + type: components["schemas"]["SurveyType"]; + schedule?: string | null; + readonly linked_flag: components["schemas"]["MinimalFeatureFlag"]; + linked_flag_id?: number | null; + linked_insight_id?: number | null; + readonly targeting_flag: components["schemas"]["MinimalFeatureFlag"]; + readonly internal_targeting_flag: components["schemas"]["MinimalFeatureFlag"]; + /** + * @description The `array` of questions included in the survey. Each question must conform to one of the defined question types: Basic, Link, Rating, or Multiple Choice. + * + * Basic (open-ended question) + * - `id`: The question ID + * - `type`: `open` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Link (a question with a link) + * - `id`: The question ID + * - `type`: `link` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `link`: The URL associated with the question. + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Rating (a question with a rating scale) + * - `id`: The question ID + * - `type`: `rating` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `display`: Display style of the rating (`number` or `emoji`). + * - `scale`: The scale of the rating (`number`). + * - `lowerBoundLabel`: Label for the lower bound of the scale. + * - `upperBoundLabel`: Label for the upper bound of the scale. + * - `isNpsQuestion`: Whether the question is an NPS rating. + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Multiple choice + * - `id`: The question ID + * - `type`: `single_choice` or `multiple_choice` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `choices`: An array of choices for the question. + * - `shuffleOptions`: Whether to shuffle the order of the choices (`boolean`). + * - `hasOpenChoice`: Whether the question allows an open-ended response (`boolean`). + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Branching logic can be one of the following types: + * + * Next question: Proceeds to the next question + * ```json + * { + * "type": "next_question" + * } + * ``` + * + * End: Ends the survey, optionally displaying a confirmation message. + * ```json + * { + * "type": "end" + * } + * ``` + * + * Response-based: Branches based on the response values. Available for the `rating` and `single_choice` question types. + * ```json + * { + * "type": "response_based", + * "responseValues": { + * "responseKey": "value" + * } + * } + * ``` + * + * Specific question: Proceeds to a specific question by index. + * ```json + * { + * "type": "specific_question", + * "index": 2 + * } + * ``` + * + * Translations: Each question can include inline translations. + * - `translations`: Object mapping language codes to translated fields. + * - Language codes: Any string - allows customers to use their own language keys (e.g., "es", "es-MX", "english", "french") + * - Translatable fields: `question`, `description`, `buttonText`, `choices`, `lowerBoundLabel`, `upperBoundLabel`, `link` + * + * Example with translations: + * ```json + * { + * "id": "uuid", + * "type": "rating", + * "question": "How satisfied are you?", + * "lowerBoundLabel": "Not satisfied", + * "upperBoundLabel": "Very satisfied", + * "translations": { + * "es": { + * "question": "¿Qué tan satisfecho estás?", + * "lowerBoundLabel": "No satisfecho", + * "upperBoundLabel": "Muy satisfecho" + * }, + * "fr": { + * "question": "Dans quelle mesure êtes-vous satisfait?" + * } + * } + * } + * ``` + */ + questions?: unknown; + readonly conditions: { + [key: string]: unknown; + } | null; + appearance?: unknown; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + start_date?: string | null; + /** Format: date-time */ + end_date?: string | null; + archived?: boolean; + responses_limit?: number | null; + readonly feature_flag_keys: { + [key: string]: string | null; + }[]; + iteration_count?: number | null; + iteration_frequency_days?: number | null; + iteration_start_dates?: (string | null)[] | null; + current_iteration?: number | null; + /** Format: date-time */ + current_iteration_start_date?: string | null; + /** Format: date-time */ + response_sampling_start_date?: string | null; + response_sampling_interval_type?: components["schemas"]["ResponseSamplingIntervalTypeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + response_sampling_interval?: number | null; + response_sampling_limit?: number | null; + response_sampling_daily_limits?: unknown; + enable_partial_responses?: boolean | null; + enable_iframe_embedding?: boolean | null; + translations?: unknown; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + form_content?: unknown; + }; + SurveyAppearanceSchema: { + backgroundColor?: string; + submitButtonColor?: string; + textColor?: string; + submitButtonText?: string; + submitButtonTextColor?: string; + descriptionTextColor?: string; + ratingButtonColor?: string; + ratingButtonActiveColor?: string; + ratingButtonHoverColor?: string; + whiteLabel?: boolean; + autoDisappear?: boolean; + displayThankYouMessage?: boolean; + thankYouMessageHeader?: string; + thankYouMessageDescription?: string; + thankYouMessageDescriptionContentType?: components["schemas"]["DescriptionContentTypeEnum"]; + thankYouMessageCloseButtonText?: string; + borderColor?: string; + placeholder?: string; + shuffleQuestions?: boolean; + surveyPopupDelaySeconds?: number; + widgetType?: components["schemas"]["WidgetTypeEnum"]; + widgetSelector?: string; + widgetLabel?: string; + widgetColor?: string; + fontFamily?: string; + maxWidth?: string; + zIndex?: string; + disabledButtonOpacity?: string; + boxPadding?: string; + }; + SurveyBranchingSchema: components["schemas"]["SurveyNextQuestionBranching"] | components["schemas"]["SurveyEndBranching"] | components["schemas"]["SurveySpecificQuestionBranching"] | components["schemas"]["SurveyResponseBasedBranching"]; + SurveyConditionEventValueSchema: { + /** @description Event name that triggers the survey. */ + name: string; + }; + SurveyConditionsSchema: { + url?: string; + selector?: string; + /** @description Don't show this survey to users who saw any survey in the last x days. */ + seenSurveyWaitPeriodInDays?: number; + /** + * @description URL/device matching types: 'regex' (matches regex pattern), 'not_regex' (does not match regex pattern), 'exact' (exact string match), 'is_not' (not exact match), 'icontains' (case-insensitive contains), 'not_icontains' (case-insensitive does not contain). + * + * * `regex` - regex + * * `not_regex` - not_regex + * * `exact` - exact + * * `is_not` - is_not + * * `icontains` - icontains + * * `not_icontains` - not_icontains + */ + urlMatchType?: components["schemas"]["StringMatchOperatorEnum"]; + events?: components["schemas"]["SurveyEventsConditionSchema"]; + /** @description Device types that should match for this survey to be shown. */ + deviceTypes?: components["schemas"]["DeviceTypesEnum"][]; + /** + * @description URL/device matching types: 'regex' (matches regex pattern), 'not_regex' (does not match regex pattern), 'exact' (exact string match), 'is_not' (not exact match), 'icontains' (case-insensitive contains), 'not_icontains' (case-insensitive does not contain). + * + * * `regex` - regex + * * `not_regex` - not_regex + * * `exact` - exact + * * `is_not` - is_not + * * `icontains` - icontains + * * `not_icontains` - not_icontains + */ + deviceTypesMatchType?: components["schemas"]["StringMatchOperatorEnum"]; + /** @description The variant of the feature flag linked to this survey. */ + linkedFlagVariant?: string; + }; + SurveyEndBranching: { + /** + * @description End the survey. + * + * * `end` - end + */ + type: components["schemas"]["SurveyEndBranchingTypeEnum"]; + }; + /** + * @description * `end` - end + * @enum {string} + */ + SurveyEndBranchingTypeEnum: "end"; + SurveyEventsConditionSchema: { + /** @description Whether to show the survey every time one of the events is triggered (true), or just once (false). */ + repeatedActivation?: boolean; + /** @description Array of event names that trigger the survey. */ + values?: components["schemas"]["SurveyConditionEventValueSchema"][]; + }; + SurveyGlobalStatsResponse: { + /** @description Event counts keyed by event name (survey shown, survey dismissed, survey sent). */ + stats: { + [key: string]: unknown; + }; + /** @description Calculated response and dismissal rates. */ + rates: { + [key: string]: unknown; + }; + }; + SurveyLinkQuestionSchema: { + type: components["schemas"]["SurveyLinkQuestionSchemaTypeEnum"]; + /** @description Question text shown to respondents. */ + question: string; + /** @description Optional helper text. */ + description?: string; + /** + * @description Format for the description field. + * + * * `text` - text + * * `html` - html + */ + descriptionContentType?: components["schemas"]["DescriptionContentTypeEnum"]; + /** @description Whether respondents may skip this question. */ + optional?: boolean; + /** @description Custom button label. */ + buttonText?: string; + /** @description HTTPS or mailto URL for link questions. */ + link: string; + }; + /** + * @description * `link` - link + * @enum {string} + */ + SurveyLinkQuestionSchemaTypeEnum: "link"; + SurveyMultipleChoiceQuestionSchema: { + type: components["schemas"]["SurveyMultipleChoiceQuestionSchemaTypeEnum"]; + /** @description Question text shown to respondents. */ + question: string; + /** @description Optional helper text. */ + description?: string; + /** + * @description Format for the description field. + * + * * `text` - text + * * `html` - html + */ + descriptionContentType?: components["schemas"]["DescriptionContentTypeEnum"]; + /** @description Whether respondents may skip this question. */ + optional?: boolean; + /** @description Custom button label. */ + buttonText?: string; + /** @description Array of choice options. Multiple selections allowed. No branching logic supported. */ + choices: string[]; + /** @description Whether to randomize the order of choices for each respondent. */ + shuffleOptions?: boolean; + /** @description Whether the final option should be an open-text choice (for example, 'Other'). */ + hasOpenChoice?: boolean; + }; + /** + * @description * `multiple_choice` - multiple_choice + * @enum {string} + */ + SurveyMultipleChoiceQuestionSchemaTypeEnum: "multiple_choice"; + SurveyNextQuestionBranching: { + /** + * @description Continue to the next question in sequence. + * + * * `next_question` - next_question + */ + type: components["schemas"]["SurveyNextQuestionBranchingTypeEnum"]; + }; + /** + * @description * `next_question` - next_question + * @enum {string} + */ + SurveyNextQuestionBranchingTypeEnum: "next_question"; + SurveyOpenQuestionSchema: { + type: components["schemas"]["SurveyOpenQuestionSchemaTypeEnum"]; + /** @description Question text shown to respondents. */ + question: string; + /** @description Optional helper text. */ + description?: string; + /** + * @description Format for the description field. + * + * * `text` - text + * * `html` - html + */ + descriptionContentType?: components["schemas"]["DescriptionContentTypeEnum"]; + /** @description Whether respondents may skip this question. */ + optional?: boolean; + /** @description Custom button label. */ + buttonText?: string; + }; + /** + * @description * `open` - open + * @enum {string} + */ + SurveyOpenQuestionSchemaTypeEnum: "open"; + SurveyQuestionInputSchema: components["schemas"]["SurveyOpenQuestionSchema"] | components["schemas"]["SurveyLinkQuestionSchema"] | components["schemas"]["SurveyRatingQuestionSchema"] | components["schemas"]["SurveySingleChoiceQuestionSchema"] | components["schemas"]["SurveyMultipleChoiceQuestionSchema"]; + SurveyRatingQuestionSchema: { + type: components["schemas"]["SurveyRatingQuestionSchemaTypeEnum"]; + /** @description Question text shown to respondents. */ + question: string; + /** @description Optional helper text. */ + description?: string; + /** + * @description Format for the description field. + * + * * `text` - text + * * `html` - html + */ + descriptionContentType?: components["schemas"]["DescriptionContentTypeEnum"]; + /** @description Whether respondents may skip this question. */ + optional?: boolean; + /** @description Custom button label. */ + buttonText?: string; + /** + * @description Display format: 'number' shows numeric scale, 'emoji' shows emoji scale. + * + * * `number` - number + * * `emoji` - emoji + */ + display?: components["schemas"]["SurveyRatingQuestionSchemaDisplayEnum"]; + /** @description Rating scale can be one of 3, 5, or 7 */ + scale?: number; + /** @description Label for the lowest rating (e.g., 'Very Poor') */ + lowerBoundLabel?: string; + /** @description Label for the highest rating (e.g., 'Excellent') */ + upperBoundLabel?: string; + branching?: components["schemas"]["SurveyBranchingSchema"] | null; + }; + /** + * @description * `number` - number + * * `emoji` - emoji + * @enum {string} + */ + SurveyRatingQuestionSchemaDisplayEnum: "number" | "emoji"; + /** + * @description * `rating` - rating + * @enum {string} + */ + SurveyRatingQuestionSchemaTypeEnum: "rating"; + SurveyResponseBasedBranching: { + /** + * @description Branch based on the selected or entered response. + * + * * `response_based` - response_based + */ + type: components["schemas"]["SurveyResponseBasedBranchingTypeEnum"]; + /** @description Response-based branching map. Values can be a question index or 'end'. */ + responseValues: { + [key: string]: number | "end"; + }; + }; + /** + * @description * `response_based` - response_based + * @enum {string} + */ + SurveyResponseBasedBranchingTypeEnum: "response_based"; + SurveySerializerCreateUpdateOnly: { + /** Format: uuid */ + readonly id: string; + name: string; + description?: string; + type: components["schemas"]["SurveyType"]; + schedule?: string | null; + readonly linked_flag: components["schemas"]["MinimalFeatureFlag"]; + linked_flag_id?: number | null; + linked_insight_id?: number | null; + targeting_flag_id?: number; + readonly targeting_flag: components["schemas"]["MinimalFeatureFlag"]; + readonly internal_targeting_flag: components["schemas"]["MinimalFeatureFlag"]; + targeting_flag_filters?: unknown; + remove_targeting_flag?: boolean | null; + /** + * @description The `array` of questions included in the survey. Each question must conform to one of the defined question types: Basic, Link, Rating, or Multiple Choice. + * + * Basic (open-ended question) + * - `id`: The question ID + * - `type`: `open` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Link (a question with a link) + * - `id`: The question ID + * - `type`: `link` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `link`: The URL associated with the question. + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Rating (a question with a rating scale) + * - `id`: The question ID + * - `type`: `rating` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `display`: Display style of the rating (`number` or `emoji`). + * - `scale`: The scale of the rating (`number`). + * - `lowerBoundLabel`: Label for the lower bound of the scale. + * - `upperBoundLabel`: Label for the upper bound of the scale. + * - `isNpsQuestion`: Whether the question is an NPS rating. + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Multiple choice + * - `id`: The question ID + * - `type`: `single_choice` or `multiple_choice` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `choices`: An array of choices for the question. + * - `shuffleOptions`: Whether to shuffle the order of the choices (`boolean`). + * - `hasOpenChoice`: Whether the question allows an open-ended response (`boolean`). + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Branching logic can be one of the following types: + * + * Next question: Proceeds to the next question + * ```json + * { + * "type": "next_question" + * } + * ``` + * + * End: Ends the survey, optionally displaying a confirmation message. + * ```json + * { + * "type": "end" + * } + * ``` + * + * Response-based: Branches based on the response values. Available for the `rating` and `single_choice` question types. + * ```json + * { + * "type": "response_based", + * "responseValues": { + * "responseKey": "value" + * } + * } + * ``` + * + * Specific question: Proceeds to a specific question by index. + * ```json + * { + * "type": "specific_question", + * "index": 2 + * } + * ``` + * + * Translations: Each question can include inline translations. + * - `translations`: Object mapping language codes to translated fields. + * - Language codes: Any string - allows customers to use their own language keys (e.g., "es", "es-MX", "english", "french") + * - Translatable fields: `question`, `description`, `buttonText`, `choices`, `lowerBoundLabel`, `upperBoundLabel`, `link` + * + * Example with translations: + * ```json + * { + * "id": "uuid", + * "type": "rating", + * "question": "How satisfied are you?", + * "lowerBoundLabel": "Not satisfied", + * "upperBoundLabel": "Very satisfied", + * "translations": { + * "es": { + * "question": "¿Qué tan satisfecho estás?", + * "lowerBoundLabel": "No satisfecho", + * "upperBoundLabel": "Muy satisfecho" + * }, + * "fr": { + * "question": "Dans quelle mesure êtes-vous satisfait?" + * } + * } + * } + * ``` + */ + questions?: unknown; + conditions?: unknown; + appearance?: unknown; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + start_date?: string | null; + /** Format: date-time */ + end_date?: string | null; + archived?: boolean; + responses_limit?: number | null; + iteration_count?: number | null; + iteration_frequency_days?: number | null; + iteration_start_dates?: (string | null)[] | null; + current_iteration?: number | null; + /** Format: date-time */ + current_iteration_start_date?: string | null; + /** Format: date-time */ + response_sampling_start_date?: string | null; + response_sampling_interval_type?: components["schemas"]["ResponseSamplingIntervalTypeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + response_sampling_interval?: number | null; + response_sampling_limit?: number | null; + response_sampling_daily_limits?: unknown; + enable_partial_responses?: boolean | null; + enable_iframe_embedding?: boolean | null; + translations?: unknown; + /** create in folder */ + _create_in_folder?: string; + form_content?: unknown; + }; + SurveySerializerCreateUpdateOnlySchema: { + /** Format: uuid */ + readonly id: string; + /** @description Survey name. */ + name: string; + /** @description Survey description. */ + description?: string; + /** + * @description Survey type. + * + * * `popover` - popover + * * `widget` - widget + * * `external_survey` - external survey + * * `api` - api + */ + type: components["schemas"]["SurveyType"]; + /** + * @description Survey scheduling behavior: 'once' = show once per user (default), 'recurring' = repeat based on iteration_count and iteration_frequency_days settings, 'always' = show every time conditions are met (mainly for widget surveys) + * + * * `once` - once + * * `recurring` - recurring + * * `always` - always + */ + schedule?: components["schemas"]["ScheduleEnum"] | components["schemas"]["NullEnum"]; + readonly linked_flag: components["schemas"]["MinimalFeatureFlag"]; + /** @description The feature flag linked to this survey. */ + linked_flag_id?: number | null; + linked_insight_id?: number | null; + /** @description An existing targeting flag to use for this survey. */ + targeting_flag_id?: number; + readonly targeting_flag: components["schemas"]["MinimalFeatureFlag"]; + readonly internal_targeting_flag: components["schemas"]["MinimalFeatureFlag"]; + /** @description Target specific users based on their properties. Example: {groups: [{properties: [{key: 'email', value: ['@company.com'], operator: 'icontains'}], rollout_percentage: 100}]} */ + targeting_flag_filters?: components["schemas"]["FeatureFlagFiltersSchema"] | null; + /** @description Set to true to completely remove all targeting filters from the survey, making it visible to all users (subject to other display conditions like URL matching). */ + remove_targeting_flag?: boolean | null; + /** + * @description The `array` of questions included in the survey. Each question must conform to one of the defined question types: Basic, Link, Rating, or Multiple Choice. + * + * Basic (open-ended question) + * - `id`: The question ID + * - `type`: `open` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Link (a question with a link) + * - `id`: The question ID + * - `type`: `link` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `link`: The URL associated with the question. + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Rating (a question with a rating scale) + * - `id`: The question ID + * - `type`: `rating` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `display`: Display style of the rating (`number` or `emoji`). + * - `scale`: The scale of the rating (`number`). + * - `lowerBoundLabel`: Label for the lower bound of the scale. + * - `upperBoundLabel`: Label for the upper bound of the scale. + * - `isNpsQuestion`: Whether the question is an NPS rating. + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Multiple choice + * - `id`: The question ID + * - `type`: `single_choice` or `multiple_choice` + * - `question`: The text of the question. + * - `description`: Optional description of the question. + * - `descriptionContentType`: Content type of the description (`html` or `text`). + * - `optional`: Whether the question is optional (`boolean`). + * - `buttonText`: Text displayed on the submit button. + * - `choices`: An array of choices for the question. + * - `shuffleOptions`: Whether to shuffle the order of the choices (`boolean`). + * - `hasOpenChoice`: Whether the question allows an open-ended response (`boolean`). + * - `branching`: Branching logic for the question. See branching types below for details. + * + * Branching logic can be one of the following types: + * + * Next question: Proceeds to the next question + * ```json + * { + * "type": "next_question" + * } + * ``` + * + * End: Ends the survey, optionally displaying a confirmation message. + * ```json + * { + * "type": "end" + * } + * ``` + * + * Response-based: Branches based on the response values. Available for the `rating` and `single_choice` question types. + * ```json + * { + * "type": "response_based", + * "responseValues": { + * "responseKey": "value" + * } + * } + * ``` + * + * Specific question: Proceeds to a specific question by index. + * ```json + * { + * "type": "specific_question", + * "index": 2 + * } + * ``` + * + * Translations: Each question can include inline translations. + * - `translations`: Object mapping language codes to translated fields. + * - Language codes: Any string - allows customers to use their own language keys (e.g., "es", "es-MX", "english", "french") + * - Translatable fields: `question`, `description`, `buttonText`, `choices`, `lowerBoundLabel`, `upperBoundLabel`, `link` + * + * Example with translations: + * ```json + * { + * "id": "uuid", + * "type": "rating", + * "question": "How satisfied are you?", + * "lowerBoundLabel": "Not satisfied", + * "upperBoundLabel": "Very satisfied", + * "translations": { + * "es": { + * "question": "¿Qué tan satisfecho estás?", + * "lowerBoundLabel": "No satisfecho", + * "upperBoundLabel": "Muy satisfecho" + * }, + * "fr": { + * "question": "Dans quelle mesure êtes-vous satisfait?" + * } + * } + * } + * ``` + */ + questions?: components["schemas"]["SurveyQuestionInputSchema"][] | null; + /** @description Display and targeting conditions for the survey. */ + conditions?: components["schemas"]["SurveyConditionsSchema"] | null; + /** @description Survey appearance customization. */ + appearance?: components["schemas"]["SurveyAppearanceSchema"] | null; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** + * Format: date-time + * @description Setting this will launch the survey immediately. Don't add a start_date unless explicitly requested to do so. + */ + start_date?: string | null; + /** + * Format: date-time + * @description When the survey stopped being shown to users. Setting this will complete the survey. + */ + end_date?: string | null; + /** @description Archive state for the survey. */ + archived?: boolean; + /** @description The maximum number of responses before automatically stopping the survey. */ + responses_limit?: number | null; + /** @description For a recurring schedule, this field specifies the number of times the survey should be shown to the user. Use 1 for 'once every X days', higher numbers for multiple repetitions. Works together with iteration_frequency_days to determine the overall survey schedule. */ + iteration_count?: number | null; + /** @description For a recurring schedule, this field specifies the interval in days between each survey instance shown to the user, used alongside iteration_count for precise scheduling. */ + iteration_frequency_days?: number | null; + iteration_start_dates?: (string | null)[] | null; + current_iteration?: number | null; + /** Format: date-time */ + current_iteration_start_date?: string | null; + /** Format: date-time */ + response_sampling_start_date?: string | null; + response_sampling_interval_type?: components["schemas"]["ResponseSamplingIntervalTypeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + response_sampling_interval?: number | null; + response_sampling_limit?: number | null; + response_sampling_daily_limits?: unknown; + /** @description When at least one question is answered, the response is stored (true). The response is stored when all questions are answered (false). */ + enable_partial_responses?: boolean | null; + enable_iframe_embedding?: boolean | null; + translations?: unknown; + /** create in folder */ + _create_in_folder?: string; + form_content?: unknown; + }; + SurveySingleChoiceQuestionSchema: { + type: components["schemas"]["SurveySingleChoiceQuestionSchemaTypeEnum"]; + /** @description Question text shown to respondents. */ + question: string; + /** @description Optional helper text. */ + description?: string; + /** + * @description Format for the description field. + * + * * `text` - text + * * `html` - html + */ + descriptionContentType?: components["schemas"]["DescriptionContentTypeEnum"]; + /** @description Whether respondents may skip this question. */ + optional?: boolean; + /** @description Custom button label. */ + buttonText?: string; + /** @description Array of choice options. Choice indices (0, 1, 2, ...) are used for branching logic. */ + choices: string[]; + /** @description Whether to randomize the order of choices for each respondent. */ + shuffleOptions?: boolean; + /** @description Whether the final option should be an open-text choice (for example, 'Other'). */ + hasOpenChoice?: boolean; + branching?: components["schemas"]["SurveyBranchingSchema"] | null; + }; + /** + * @description * `single_choice` - single_choice + * @enum {string} + */ + SurveySingleChoiceQuestionSchemaTypeEnum: "single_choice"; + SurveySpecificQuestionBranching: { + /** + * @description Jump to a specific question index. + * + * * `specific_question` - specific_question + */ + type: components["schemas"]["SurveySpecificQuestionBranchingTypeEnum"]; + /** @description 0-based index of the next question. */ + index: number; + }; + /** + * @description * `specific_question` - specific_question + * @enum {string} + */ + SurveySpecificQuestionBranchingTypeEnum: "specific_question"; + SurveyStatsResponse: { + /** @description The survey ID these stats belong to. */ + survey_id: string; + /** + * Format: date-time + * @description When the survey started collecting responses. + */ + start_date: string | null; + /** + * Format: date-time + * @description When the survey stopped collecting responses. + */ + end_date: string | null; + /** @description Event counts keyed by event name (survey shown, survey dismissed, survey sent). */ + stats: { + [key: string]: unknown; + }; + /** @description Calculated response and dismissal rates. */ + rates: { + [key: string]: unknown; + }; + }; + /** + * @description * `popover` - popover + * * `widget` - widget + * * `external_survey` - external survey + * * `api` - api + * @enum {string} + */ + SurveyType: "popover" | "widget" | "external_survey" | "api"; + /** + * @description * `never` - never + * * `1min` - 1min + * * `5min` - 5min + * * `15min` - 15min + * * `30min` - 30min + * * `1hour` - 1hour + * * `6hour` - 6hour + * * `12hour` - 12hour + * * `24hour` - 24hour + * * `7day` - 7day + * * `30day` - 30day + * @enum {string} + */ + SyncFrequencyEnum: "never" | "1min" | "5min" | "15min" | "30min" | "1hour" | "6hour" | "12hour" | "24hour" | "7day" | "30day"; + /** + * @description * `full_refresh` - full_refresh + * * `incremental` - incremental + * * `append` - append + * * `webhook` - webhook + * * `cdc` - cdc + * @enum {string} + */ + SyncTypeEnum: "full_refresh" | "incremental" | "append" | "webhook" | "cdc"; + /** @description Mixin for serializers to add user access control fields */ + Table: { + /** Format: uuid */ + readonly id: string; + deleted?: boolean | null; + name: string; + format: components["schemas"]["TableFormatEnum"]; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + url_pattern: string; + credential: components["schemas"]["Credential"]; + readonly columns: { + [key: string]: unknown; + }[]; + readonly external_data_source: components["schemas"]["SimpleExternalDataSourceSerializers"]; + readonly external_schema: { + [key: string]: unknown; + } | null; + options?: { + [key: string]: unknown; + }; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + }; + /** + * @description * `CSV` - CSV + * * `CSVWithNames` - CSVWithNames + * * `Parquet` - Parquet + * * `JSONEachRow` - JSON + * * `Delta` - Delta + * * `DeltaS3Wrapper` - DeltaS3Wrapper + * @enum {string} + */ + TableFormatEnum: "CSV" | "CSVWithNames" | "Parquet" | "JSONEachRow" | "Delta" | "DeltaS3Wrapper"; + /** TableSettings */ + TableSettings: { + /** + * Columns + * @default null + */ + columns: components["schemas"]["ChartAxis"][] | null; + /** + * Conditionalformatting + * @default null + */ + conditionalFormatting: components["schemas"]["ConditionalFormattingRule"][] | null; + /** + * Pinnedcolumns + * @default null + */ + pinnedColumns: string[] | null; + /** + * Transpose + * @default null + */ + transpose: boolean | null; + }; + TagDefinition: { + /** @description Tag identifier */ + name: string; + /** + * @description Description to help the LLM classify + * @default + */ + description: string; + }; + Tagger: { + /** Format: uuid */ + readonly id: string; + name: string; + description?: string; + enabled?: boolean; + /** @default llm */ + tagger_type: components["schemas"]["TaggerTypeEnum"]; + /** @description Tagger configuration. For tagger_type 'llm': {prompt, tags, min_tags?, max_tags?}. For tagger_type 'hog': {source, tags?}. */ + tagger_config: components["schemas"]["TaggerConfig"]; + /** @description Conditions that scope when the tagger runs */ + conditions?: components["schemas"]["TaggerCondition"][]; + model_configuration?: components["schemas"]["TaggerModelConfiguration"] | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + deleted?: boolean; + }; + TaggerCondition: { + /** @description Stable identifier for this condition */ + id: string; + /** + * @description Percentage of matching events to apply this condition to + * @default 100 + */ + rollout_percentage: number; + /** @description Property filters that scope when this condition fires */ + properties?: { + [key: string]: unknown; + }[]; + }; + TaggerConfig: components["schemas"]["LLMTaggerConfig"] | components["schemas"]["HogTaggerConfig"]; + TaggerCreate: { + name: string; + description?: string; + enabled?: boolean; + /** @default llm */ + tagger_type: components["schemas"]["TaggerTypeEnum"]; + /** @description Tagger configuration. For tagger_type 'llm': {prompt, tags, min_tags?, max_tags?}. For tagger_type 'hog': {source, tags?}. */ + tagger_config: components["schemas"]["TaggerConfig"]; + /** @description Conditions that scope when the tagger runs */ + conditions?: components["schemas"]["TaggerCondition"][]; + model_configuration?: components["schemas"]["TaggerModelConfigurationWrite"] | null; + }; + /** @description Nested serializer for model configuration. */ + TaggerModelConfiguration: { + /** + * @description LLM provider to use for this tagger. + * + * * `openai` - Openai + * * `anthropic` - Anthropic + * * `gemini` - Gemini + * * `openrouter` - Openrouter + * * `fireworks` - Fireworks + * * `azure_openai` - Azure OpenAI + * * `together_ai` - Together AI + */ + provider: components["schemas"]["LLMProviderEnum"]; + /** @description Provider model identifier to use for this tagger. */ + model: string; + /** + * Format: uuid + * @description Existing LLM provider key UUID for the current project. Do not invent this value; use a real provider key ID returned by PostHog, or omit/null when no provider key should be pinned. + */ + provider_key_id?: string | null; + readonly provider_key_name: string | null; + }; + TaggerModelConfigurationWrite: { + /** + * @description LLM provider to use for this tagger. + * + * * `openai` - Openai + * * `anthropic` - Anthropic + * * `gemini` - Gemini + * * `openrouter` - Openrouter + * * `fireworks` - Fireworks + * * `azure_openai` - Azure OpenAI + * * `together_ai` - Together AI + */ + provider: components["schemas"]["LLMProviderEnum"]; + /** @description Provider model identifier to use for this tagger. */ + model: string; + /** + * Format: uuid + * @description Existing LLM provider key UUID for the current project. Do not invent this value; use a real provider key ID returned by PostHog, or omit/null when no provider key should be pinned. + */ + provider_key_id?: string | null; + }; + /** + * @description * `llm` - LLM + * * `hog` - Hog + * @enum {string} + */ + TaggerTypeEnum: "llm" | "hog"; + TaggerUpdate: { + name: string; + description?: string; + enabled?: boolean; + /** @default llm */ + tagger_type: components["schemas"]["TaggerTypeEnum"]; + /** @description Tagger configuration. For tagger_type 'llm': {prompt, tags, min_tags?, max_tags?}. For tagger_type 'hog': {source, tags?}. */ + tagger_config: components["schemas"]["TaggerConfig"]; + /** @description Conditions that scope when the tagger runs */ + conditions?: components["schemas"]["TaggerCondition"][]; + model_configuration?: components["schemas"]["TaggerModelConfigurationWrite"] | null; + deleted?: boolean; + }; + /** + * @description * `email` - Email + * * `slack` - Slack + * * `webhook` - Webhook + * @enum {string} + */ + TargetTypeEnum: "email" | "slack" | "webhook"; + Task: { + /** Format: uuid */ + readonly id: string; + readonly task_number: number | null; + readonly slug: string; + title?: string; + title_manually_set?: boolean; + description?: string; + origin_product?: components["schemas"]["OriginProductEnum"]; + repository?: string | null; + /** @description GitHub integration for this task */ + github_integration?: number | null; + /** + * Format: uuid + * @description User-scoped GitHub integration to use for user-authored cloud runs. + */ + github_user_integration?: string | null; + /** Format: uuid */ + signal_report?: string | null; + signal_report_task_relationship?: components["schemas"]["SignalReportTaskRelationshipEnum"]; + /** @description JSON schema for the task. This is used to validate the output of the task. */ + json_schema?: unknown; + /** @description If true, this task is for internal use and should not be exposed to end users. */ + internal?: boolean; + /** @description Latest run details for this task */ + readonly latest_run: { + [key: string]: unknown; + } | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** @description Custom prompt for CI fixes. If blank, a default prompt will be used. */ + ci_prompt?: string | null; + }; + TaskAutomation: { + /** Format: uuid */ + readonly id: string; + name: string; + prompt: string; + repository: string; + github_integration?: number | null; + cron_expression: string; + timezone?: string; + template_id?: string | null; + enabled?: boolean; + /** Format: date-time */ + readonly last_run_at: string | null; + readonly last_run_status: string | null; + readonly last_task_id: string | null; + readonly last_task_run_id: string | null; + readonly last_error: string | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + }; + /** + * @description * `interactive` - interactive + * * `background` - background + * @enum {string} + */ + TaskExecutionModeEnum: "interactive" | "background"; + TaskRepositoriesResponse: { + /** @description Distinct repositories in use by non-deleted, non-internal tasks for the current team. */ + repositories: string[]; + }; + TaskRunAppendLogRequest: { + /** @description Array of log entry dictionaries to append */ + entries: { + [key: string]: unknown; + }[]; + }; + TaskRunArtifactFinalizeUpload: { + /** @description Stable identifier returned by the prepare upload endpoint */ + id: string; + /** @description File name associated with the artifact */ + name: string; + /** + * @description Classification for the artifact + * + * * `plan` - plan + * * `context` - context + * * `reference` - reference + * * `output` - output + * * `artifact` - artifact + * * `tree_snapshot` - tree_snapshot + * * `user_attachment` - user_attachment + */ + type: components["schemas"]["TaskRunArtifactTypeEnum"]; + /** + * @description Optional source label for the artifact, such as agent_output or user_attachment + * @default + */ + source: string; + /** @description S3 object key returned by the prepare step */ + storage_path: string; + /** @description Optional MIME type recorded for the artifact */ + content_type?: string; + }; + TaskRunArtifactPrepareUpload: { + /** @description File name to associate with the artifact */ + name: string; + /** + * @description Classification for the artifact + * + * * `plan` - plan + * * `context` - context + * * `reference` - reference + * * `output` - output + * * `artifact` - artifact + * * `tree_snapshot` - tree_snapshot + * * `user_attachment` - user_attachment + */ + type: components["schemas"]["TaskRunArtifactTypeEnum"]; + /** + * @description Optional source label for the artifact, such as agent_output or user_attachment + * @default + */ + source: string; + /** @description Expected upload size in bytes (max 31457280 bytes) */ + size: number; + /** @description Optional MIME type for the artifact upload */ + content_type?: string; + }; + TaskRunArtifactPrepareUploadResponse: { + /** @description Stable identifier for the prepared artifact within this run */ + id: string; + /** @description Artifact file name */ + name: string; + /** @description Artifact classification (plan, context, etc.) */ + type: string; + /** @description Source of the artifact, such as agent_output or user_attachment */ + source?: string; + /** @description Expected upload size in bytes */ + size: number; + /** @description Optional MIME type */ + content_type?: string; + /** @description S3 object key reserved for the artifact */ + storage_path: string; + /** @description Presigned POST expiry in seconds */ + expires_in: number; + /** @description Presigned S3 POST configuration for uploading the file */ + presigned_post: components["schemas"]["S3PresignedPost"]; + }; + TaskRunArtifactPresignRequest: { + /** @description S3 storage path returned in the artifact manifest */ + storage_path: string; + }; + TaskRunArtifactPresignResponse: { + /** + * Format: uri + * @description Presigned URL for downloading the artifact + */ + url: string; + /** @description URL expiry in seconds */ + expires_in: number; + }; + TaskRunArtifactResponse: { + /** @description Stable identifier for the artifact within this run */ + id?: string; + /** @description Artifact file name */ + name: string; + /** @description Artifact classification (plan, context, etc.) */ + type: string; + /** @description Source of the artifact, such as agent_output or user_attachment */ + source?: string; + /** @description Artifact size in bytes */ + size?: number; + /** @description Optional MIME type */ + content_type?: string; + /** @description S3 object key for the artifact */ + storage_path: string; + /** @description Timestamp when the artifact was uploaded */ + uploaded_at: string; + }; + /** + * @description * `plan` - plan + * * `context` - context + * * `reference` - reference + * * `output` - output + * * `artifact` - artifact + * * `tree_snapshot` - tree_snapshot + * * `user_attachment` - user_attachment + * @enum {string} + */ + TaskRunArtifactTypeEnum: "plan" | "context" | "reference" | "output" | "artifact" | "tree_snapshot" | "user_attachment"; + TaskRunArtifactUpload: { + /** @description File name to associate with the artifact */ + name: string; + /** + * @description Classification for the artifact + * + * * `plan` - plan + * * `context` - context + * * `reference` - reference + * * `output` - output + * * `artifact` - artifact + * * `tree_snapshot` - tree_snapshot + * * `user_attachment` - user_attachment + */ + type: components["schemas"]["TaskRunArtifactTypeEnum"]; + /** + * @description Optional source label for the artifact, such as agent_output or user_attachment + * @default + */ + source: string; + /** @description Artifact contents encoded according to content_encoding */ + content: string; + /** + * @description Encoding used for content. Use base64 for binary files and utf-8 for text payloads. + * + * * `utf-8` - utf-8 + * * `base64` - base64 + * @default utf-8 + */ + content_encoding: components["schemas"]["ContentEncodingEnum"]; + /** @description Optional MIME type for the artifact */ + content_type?: string; + }; + TaskRunArtifactsFinalizeUploadRequest: { + /** @description Array of uploaded artifacts to finalize */ + artifacts: components["schemas"]["TaskRunArtifactFinalizeUpload"][]; + }; + TaskRunArtifactsFinalizeUploadResponse: { + /** @description Updated list of artifacts on the run */ + artifacts: components["schemas"]["TaskRunArtifactResponse"][]; + }; + TaskRunArtifactsPrepareUploadRequest: { + /** @description Array of artifacts to prepare */ + artifacts: components["schemas"]["TaskRunArtifactPrepareUpload"][]; + }; + TaskRunArtifactsPrepareUploadResponse: { + /** @description Prepared uploads for the requested artifacts */ + artifacts: components["schemas"]["TaskRunArtifactPrepareUploadResponse"][]; + }; + TaskRunArtifactsUploadRequest: { + /** @description Array of artifacts to upload */ + artifacts: components["schemas"]["TaskRunArtifactUpload"][]; + }; + TaskRunArtifactsUploadResponse: { + /** @description Updated list of artifacts on the run */ + artifacts: components["schemas"]["TaskRunArtifactResponse"][]; + }; + /** @description Request body for creating a task run without starting execution yet. */ + TaskRunBootstrapCreateRequest: { + /** + * @description Execution environment for the new run. Use 'cloud' for remote sandbox runs and 'local' for desktop sessions. + * + * * `local` - local + * * `cloud` - cloud + * @default local + */ + environment: components["schemas"]["TaskRunBootstrapCreateRequestEnvironmentEnum"]; + /** + * @description Execution mode: 'interactive' for user-connected runs, 'background' for autonomous runs + * + * * `interactive` - interactive + * * `background` - background + * @default background + */ + mode: components["schemas"]["TaskExecutionModeEnum"]; + /** @description Git branch to checkout in the sandbox */ + branch?: string | null; + /** + * Format: uuid + * @description Optional sandbox environment to apply for this cloud run. + */ + sandbox_environment_id?: string; + /** + * @description Whether pull requests for this run should be authored by the user or the bot. + * + * * `user` - user + * * `bot` - bot + */ + pr_authorship_mode?: components["schemas"]["PrAuthorshipModeEnum"]; + /** + * @description High-level source that triggered this run, used to distinguish manual and signal-based cloud runs. + * + * * `manual` - manual + * * `signal_report` - signal_report + */ + run_source?: components["schemas"]["RunSourceEnum"]; + /** @description Optional signal report identifier when this run was started from Inbox. */ + signal_report_id?: string; + /** + * @description Agent runtime adapter to launch for this run. Use 'claude' for the Claude runtime or 'codex' for the Codex runtime. + * + * * `claude` - claude + * * `codex` - codex + */ + runtime_adapter?: components["schemas"]["RuntimeAdapterEnum"]; + /** @description LLM model identifier to run in the selected runtime. */ + model?: string; + /** + * @description Reasoning effort to request for models that expose an effort control. + * + * * `low` - low + * * `medium` - medium + * * `high` - high + * * `xhigh` - xhigh + * * `max` - max + */ + reasoning_effort?: components["schemas"]["ReasoningEffortEnum"]; + /** @description Ephemeral GitHub user token from PostHog Code for user-authored cloud pull requests. */ + github_user_token?: string; + /** + * @description Initial permission mode for the agent session. Claude runtimes accept PostHog permission presets like 'plan'. Codex runtimes accept native Codex modes like 'auto' and 'read-only'. + * + * * `default` - default + * * `acceptEdits` - acceptEdits + * * `plan` - plan + * * `bypassPermissions` - bypassPermissions + * * `auto` - auto + * * `read-only` - read-only + * * `full-access` - full-access + */ + initial_permission_mode?: components["schemas"]["TaskRunBootstrapCreateRequestInitialPermissionModeEnum"]; + }; + /** + * @description * `local` - local + * * `cloud` - cloud + * @enum {string} + */ + TaskRunBootstrapCreateRequestEnvironmentEnum: "local" | "cloud"; + /** + * @description * `default` - default + * * `acceptEdits` - acceptEdits + * * `plan` - plan + * * `bypassPermissions` - bypassPermissions + * * `auto` - auto + * * `read-only` - read-only + * * `full-access` - full-access + * @enum {string} + */ + TaskRunBootstrapCreateRequestInitialPermissionModeEnum: "default" | "acceptEdits" | "plan" | "bypassPermissions" | "auto" | "read-only" | "full-access"; + /** @description JSON-RPC request to send a command to the agent server in the sandbox. */ + TaskRunCommandRequest: { + /** + * @description JSON-RPC version, must be '2.0' + * + * * `2.0` - 2.0 + */ + jsonrpc: components["schemas"]["JsonrpcEnum"]; + /** + * @description Command method to execute on the agent server + * + * * `user_message` - user_message + * * `cancel` - cancel + * * `close` - close + * * `permission_response` - permission_response + * * `set_config_option` - set_config_option + */ + method: components["schemas"]["MethodEnum"]; + /** @description Parameters for the command */ + params?: { + [key: string]: unknown; + }; + /** @description Optional JSON-RPC request ID (string or number) */ + id?: unknown; + }; + /** @description Response from the agent server command endpoint. */ + TaskRunCommandResponse: { + /** @description JSON-RPC version */ + jsonrpc: string; + /** @description Request ID echoed back (string or number) */ + id?: unknown; + /** @description Command result on success */ + result?: { + [key: string]: unknown; + }; + /** @description Error details on failure */ + error?: { + [key: string]: unknown; + }; + }; + TaskRunCreateRequestSchema: components["schemas"]["ClaudeTaskRunCreateSchema"] | components["schemas"]["CodexTaskRunCreateSchema"] | components["schemas"]["TaskRunResumeRequestSchema"]; + TaskRunDetail: { + /** Format: uuid */ + readonly id: string; + /** Format: uuid */ + readonly task: string; + /** @description Current stage for this run (e.g., 'research', 'plan', 'build') */ + stage?: string | null; + /** @description Branch name for the run */ + branch?: string | null; + status?: components["schemas"]["TaskRunStatusEnum"]; + /** + * @description Execution environment + * + * * `local` - Local + * * `cloud` - Cloud + */ + environment?: components["schemas"]["TaskRunEnvironmentEnum"]; + /** @description Configured runtime adapter for this run, such as 'claude' or 'codex'. */ + readonly runtime_adapter: components["schemas"]["RuntimeAdapterEnum"] | components["schemas"]["NullEnum"]; + /** @description Configured LLM provider for this run, such as 'anthropic' or 'openai'. */ + readonly provider: components["schemas"]["TaskRunDetailProviderEnum"] | components["schemas"]["NullEnum"]; + /** @description Configured LLM model identifier for this run. */ + readonly model: string | null; + /** @description Configured reasoning effort for this run when the selected model supports it. */ + readonly reasoning_effort: components["schemas"]["ReasoningEffortEnum"] | components["schemas"]["NullEnum"]; + /** + * Format: uri + * @description Presigned S3 URL for log access (valid for 1 hour). + */ + readonly log_url: string | null; + /** @description Error message if execution failed */ + error_message?: string | null; + /** @description Run output data (e.g., PR URL, commit SHA, etc.) */ + output?: unknown; + /** @description Run state data for resuming or tracking execution state */ + state?: unknown; + readonly artifacts: components["schemas"]["TaskRunArtifactResponse"][]; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + /** Format: date-time */ + readonly completed_at: string | null; + }; + /** @enum {string} */ + TaskRunDetailProviderEnum: "anthropic" | "openai"; + /** + * @description * `local` - Local + * * `cloud` - Cloud + * @enum {string} + */ + TaskRunEnvironmentEnum: "local" | "cloud"; + TaskRunErrorResponse: { + /** @description Human-readable validation error */ + detail?: string; + /** @description Human-readable error message */ + error?: string; + /** @description Machine-readable error type */ + type?: string; + /** @description Machine-readable error code */ + code?: string; + /** @description Request field associated with the error */ + attr?: string; + /** @description Artifact ids that could not be resolved for the run */ + missing_artifact_ids?: string[]; + }; + TaskRunRelayMessageRequest: { + text: string; + }; + TaskRunRelayMessageResponse: { + /** @description Relay status: 'accepted' or 'skipped' */ + status: string; + /** @description Relay workflow ID when accepted */ + relay_id?: string; + }; + TaskRunResumeRequestSchema: { + /** + * @description Execution mode: 'interactive' for user-connected runs, 'background' for autonomous runs + * + * * `interactive` - interactive + * * `background` - background + * @default background + */ + mode: components["schemas"]["TaskExecutionModeEnum"]; + /** @description Git branch to checkout in the sandbox */ + branch?: string | null; + /** + * Format: uuid + * @description ID of a previous run to resume from. Must belong to the same task. + */ + resume_from_run_id?: string; + /** @description Initial or follow-up user message to include in the run prompt. */ + pending_user_message?: string; + /** + * Format: uuid + * @description Optional sandbox environment to apply for this cloud run. + */ + sandbox_environment_id?: string; + /** + * @description Whether pull requests for this run should be authored by the user or the bot. + * + * * `user` - user + * * `bot` - bot + */ + pr_authorship_mode?: components["schemas"]["PrAuthorshipModeEnum"]; + /** + * @description High-level source that triggered this run, used to distinguish manual and signal-based cloud runs. + * + * * `manual` - manual + * * `signal_report` - signal_report + */ + run_source?: components["schemas"]["RunSourceEnum"]; + /** @description Optional signal report identifier when this run was started from Inbox. */ + signal_report_id?: string; + /** @description Optional GitHub user token from PostHog Code for user-authored cloud pull requests. Prefer linking GitHub from Settings → Linked accounts so the server can manage tokens; this field remains supported for callers that still manage their own tokens. */ + github_user_token?: string; + }; + TaskRunStartRequest: { + /** @description Initial or follow-up user message to include in the run prompt. */ + pending_user_message?: string; + /** @description Identifiers for run artifacts that should be attached to the next user message delivered to the sandbox. */ + pending_user_artifact_ids?: string[]; + }; + /** + * @description * `not_started` - Not Started + * * `queued` - Queued + * * `in_progress` - In Progress + * * `completed` - Completed + * * `failed` - Failed + * * `cancelled` - Cancelled + * @enum {string} + */ + TaskRunStatusEnum: "not_started" | "queued" | "in_progress" | "completed" | "failed" | "cancelled"; + TaskRunSummary: { + status: components["schemas"]["TaskRunStatusEnum"] | components["schemas"]["NullEnum"]; + environment: components["schemas"]["TaskRunEnvironmentEnum"] | components["schemas"]["NullEnum"]; + }; + /** + * @description * `local` - local + * @enum {string} + */ + TaskRunUpdateEnvironmentEnum: "local"; + /** + * @description * `not_started` - not_started + * * `queued` - queued + * * `in_progress` - in_progress + * * `completed` - completed + * * `failed` - failed + * * `cancelled` - cancelled + * @enum {string} + */ + TaskRunUpdateStatusEnum: "not_started" | "queued" | "in_progress" | "completed" | "failed" | "cancelled"; + TaskStagedArtifactFinalizeUpload: { + /** @description Stable identifier returned by the staged prepare upload endpoint */ + id: string; + /** @description File name associated with the staged artifact */ + name: string; + /** + * @description Classification for the artifact + * + * * `plan` - plan + * * `context` - context + * * `reference` - reference + * * `output` - output + * * `artifact` - artifact + * * `tree_snapshot` - tree_snapshot + * * `user_attachment` - user_attachment + */ + type: components["schemas"]["TaskRunArtifactTypeEnum"]; + /** + * @description Optional source label for the artifact, such as agent_output or user_attachment + * @default + */ + source: string; + /** @description S3 object key returned by the prepare step */ + storage_path: string; + /** @description Optional MIME type recorded for the artifact */ + content_type?: string; + }; + TaskStagedArtifactPrepareUpload: { + /** @description File name to associate with the staged artifact */ + name: string; + /** + * @description Classification for the artifact + * + * * `plan` - plan + * * `context` - context + * * `reference` - reference + * * `output` - output + * * `artifact` - artifact + * * `tree_snapshot` - tree_snapshot + * * `user_attachment` - user_attachment + */ + type: components["schemas"]["TaskRunArtifactTypeEnum"]; + /** + * @description Optional source label for the artifact, such as agent_output or user_attachment + * @default + */ + source: string; + /** @description Expected upload size in bytes (max 31457280 bytes) */ + size: number; + /** @description Optional MIME type for the artifact upload */ + content_type?: string; + }; + TaskStagedArtifactPrepareUploadResponse: { + /** @description Stable identifier for the prepared staged artifact within this task */ + id: string; + /** @description Artifact file name */ + name: string; + /** @description Artifact classification (plan, context, etc.) */ + type: string; + /** @description Source of the artifact, such as agent_output or user_attachment */ + source?: string; + /** @description Expected upload size in bytes */ + size: number; + /** @description Optional MIME type */ + content_type?: string; + /** @description S3 object key reserved for the staged artifact */ + storage_path: string; + /** @description Presigned POST expiry in seconds */ + expires_in: number; + /** @description Presigned S3 POST configuration for uploading the file */ + presigned_post: components["schemas"]["S3PresignedPost"]; + }; + TaskStagedArtifactsFinalizeUploadRequest: { + /** @description Array of staged artifacts to finalize after upload */ + artifacts: components["schemas"]["TaskStagedArtifactFinalizeUpload"][]; + }; + TaskStagedArtifactsFinalizeUploadResponse: { + /** @description Finalized staged artifacts available for attachment to a new run */ + artifacts: components["schemas"]["TaskRunArtifactResponse"][]; + }; + TaskStagedArtifactsPrepareUploadRequest: { + /** @description Array of staged artifacts to prepare before creating a run */ + artifacts: components["schemas"]["TaskStagedArtifactPrepareUpload"][]; + }; + TaskStagedArtifactsPrepareUploadResponse: { + /** @description Prepared staged uploads for the requested artifacts */ + artifacts: components["schemas"]["TaskStagedArtifactPrepareUploadResponse"][]; + }; + TaskSummariesRequest: { + /** @description Task IDs to fetch summaries for (max 5000). Response is paginated; follow the `next` cursor to retrieve all results. */ + ids: string[]; + }; + TaskSummary: { + /** Format: uuid */ + readonly id: string; + readonly title: string; + readonly repository: string | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly latest_run: components["schemas"]["TaskRunSummary"] | null; + }; + /** + * TaxonomicFilterGroupType + * @enum {string} + */ + TaxonomicFilterGroupType: "metadata" | "actions" | "cohorts" | "cohorts_with_all" | "data_warehouse" | "data_warehouse_properties" | "data_warehouse_person_properties" | "elements" | "events" | "internal_events" | "internal_event_properties" | "event_properties" | "event_feature_flags" | "event_metadata" | "numerical_event_properties" | "person_properties" | "pageview_urls" | "pageview_events" | "screens" | "screen_events" | "email_addresses" | "autocapture_events" | "custom_events" | "wildcard" | "groups" | "persons" | "feature_flags" | "insights" | "experiments" | "plugins" | "dashboards" | "name_groups" | "session_properties" | "hogql_expression" | "notebooks" | "log_entries" | "error_tracking_issues" | "logs" | "log_attributes" | "log_resource_attributes" | "spans" | "span_attributes" | "span_resource_attributes" | "replay" | "replay_saved_filters" | "revenue_analytics_properties" | "resources" | "error_tracking_properties" | "activity_log_properties" | "max_ai_context" | "workflow_variables" | "suggested_filters" | "recent_filters" | "pinned_filters" | "empty"; + Team: { + readonly id: number; + /** Format: uuid */ + readonly uuid: string; + name?: string; + access_control?: boolean; + /** Format: uuid */ + readonly organization: string; + /** Format: int64 */ + readonly project_id: number; + readonly api_token: string; + readonly secret_api_token: string | null; + readonly secret_api_token_backup: string | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly ingested_event: boolean; + readonly default_modifiers: { + [key: string]: unknown; + }; + readonly person_on_events_querying_enabled: boolean; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + app_urls?: (string | null)[]; + anonymize_ips?: boolean; + completed_snippet_onboarding?: boolean; + test_account_filters?: unknown; + test_account_filters_default_checked?: boolean | null; + path_cleaning_filters?: unknown; + is_demo?: boolean; + timezone?: components["schemas"]["TimezoneEnum"]; + data_attributes?: unknown; + person_display_name_properties?: string[] | null; + correlation_config?: unknown; + autocapture_opt_out?: boolean | null; + autocapture_exceptions_opt_in?: boolean | null; + autocapture_web_vitals_opt_in?: boolean | null; + autocapture_web_vitals_allowed_metrics?: unknown; + autocapture_exceptions_errors_to_ignore?: unknown; + capture_console_log_opt_in?: boolean | null; + logs_settings?: unknown; + capture_performance_opt_in?: boolean | null; + session_recording_opt_in?: boolean; + /** Format: decimal */ + session_recording_sample_rate?: string | null; + session_recording_minimum_duration_milliseconds?: number | null; + session_recording_linked_flag?: unknown; + session_recording_network_payload_capture_config?: unknown; + session_recording_masking_config?: unknown; + session_recording_url_trigger_config?: unknown[] | null; + session_recording_url_blocklist_config?: unknown[] | null; + session_recording_event_trigger_config?: (string | null)[] | null; + session_recording_trigger_match_type_config?: string | null; + /** @description V2 trigger groups configuration for session recording. If present, takes precedence over legacy trigger fields. */ + session_recording_trigger_groups?: unknown; + session_recording_retention_period?: components["schemas"]["SessionRecordingRetentionPeriodEnum"]; + session_replay_config?: unknown; + survey_config?: unknown; + week_start_day?: components["schemas"]["WeekStartDayEnum"] | components["schemas"]["NullEnum"]; + primary_dashboard?: number | null; + live_events_columns?: string[] | null; + recording_domains?: (string | null)[] | null; + cookieless_server_hash_mode?: components["schemas"]["CookielessServerHashModeEnum"] | components["schemas"]["NullEnum"]; + human_friendly_comparison_periods?: boolean | null; + inject_web_apps?: boolean | null; + extra_settings?: unknown; + modifiers?: unknown; + has_completed_onboarding_for?: unknown; + surveys_opt_in?: boolean | null; + heatmaps_opt_in?: boolean | null; + flags_persistence_default?: boolean | null; + feature_flag_confirmation_enabled?: boolean | null; + feature_flag_confirmation_message?: string | null; + /** @description Whether to automatically apply default evaluation contexts to new feature flags */ + default_evaluation_contexts_enabled?: boolean | null; + /** @description Whether to require at least one evaluation context tag when creating new feature flags */ + require_evaluation_contexts?: boolean | null; + capture_dead_clicks?: boolean | null; + default_data_theme?: number | null; + revenue_analytics_config?: components["schemas"]["TeamRevenueAnalyticsConfig"]; + marketing_analytics_config?: components["schemas"]["TeamMarketingAnalyticsConfig"]; + customer_analytics_config?: components["schemas"]["TeamCustomerAnalyticsConfig"]; + onboarding_tasks?: unknown; + /** @default USD */ + base_currency: components["schemas"]["BaseCurrencyEnum"]; + web_analytics_pre_aggregated_tables_enabled?: boolean | null; + receive_org_level_activity_logs?: boolean | null; + /** + * @description Whether this project serves B2B or B2C customers, used to optimize the UI layout. + * + * * `b2b` - B2B + * * `b2c` - B2C + * * `other` - Other + */ + business_model?: components["schemas"]["BusinessModelEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + conversations_enabled?: boolean | null; + conversations_settings?: unknown; + proactive_tasks_enabled?: boolean | null; + readonly effective_membership_level: components["schemas"]["EffectiveMembershipLevelEnum"]; + readonly has_group_types: boolean; + readonly group_types: { + [key: string]: unknown; + }[]; + readonly live_events_token: string | null; + readonly product_intents: { + [key: string]: unknown; + }[]; + readonly managed_viewsets: { + [key: string]: boolean; + }; + readonly available_setup_task_ids: components["schemas"]["AvailableSetupTaskIdsEnum"][]; + }; + /** + * @description Serializer for `Team` model with minimal attributes to speeed up loading and transfer times. + * Also used for nested serializers. + */ + TeamBasic: { + readonly id: number; + /** Format: uuid */ + readonly uuid: string; + /** Format: uuid */ + readonly organization: string; + /** Format: int64 */ + readonly project_id: number; + readonly api_token: string; + readonly name: string; + readonly completed_snippet_onboarding: boolean; + readonly has_completed_onboarding_for: unknown; + readonly ingested_event: boolean; + readonly is_demo: boolean; + readonly timezone: components["schemas"]["TimezoneEnum"]; + readonly access_control: boolean; + }; + TeamCustomerAnalyticsConfig: { + activity_event?: unknown; + signup_pageview_event?: unknown; + signup_event?: unknown; + subscription_event?: unknown; + payment_event?: unknown; + }; + TeamMarketingAnalyticsConfig: { + sources_map?: unknown; + conversion_goals?: unknown; + attribution_window_days?: number; + attribution_mode?: components["schemas"]["AttributionModeEnum"]; + campaign_name_mappings?: unknown; + custom_source_mappings?: unknown; + campaign_field_preferences?: unknown; + }; + TeamRevenueAnalyticsConfig: { + base_currency?: components["schemas"]["BaseCurrencyEnum"]; + events?: unknown; + goals?: unknown; + filter_test_accounts?: boolean; + }; + /** TeamTaxonomyItem */ + TeamTaxonomyItem: { + /** Count */ + count: number; + /** Event */ + event: string; + }; + /** TeamTaxonomyQuery */ + TeamTaxonomyQuery: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "TeamTaxonomyQuery"; + /** + * Limit + * @description Number of rows to return + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @description Number of rows to skip before returning rows + * @default null + */ + offset: number | null; + /** @default null */ + response: components["schemas"]["TeamTaxonomyQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** TeamTaxonomyQueryResponse */ + TeamTaxonomyQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["TeamTaxonomyItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + TestHogRequest: { + /** @description Hog source code to test. Must return a boolean (true = pass, false = fail) or null for N/A. */ + source: string; + /** + * @description Number of recent $ai_generation events to test against (1–10, default 5). + * @default 5 + */ + sample_count: number; + /** + * @description Whether the evaluation can return N/A for non-applicable generations. + * @default false + */ + allows_na: boolean; + /** @description Optional trigger conditions to filter which events are sampled. */ + conditions?: { + [key: string]: unknown; + }[]; + }; + TestHogResponse: { + results: components["schemas"]["TestHogResultItem"][]; + /** @description Optional message, e.g. when no recent events were found. */ + message?: string; + }; + TestHogResultItem: { + /** @description UUID of the $ai_generation event. */ + event_uuid: string; + /** @description Trace ID if available. */ + trace_id?: string | null; + /** @description First 200 chars of the generation input. */ + input_preview: string; + /** @description First 200 chars of the generation output. */ + output_preview: string; + /** @description True = pass, False = fail, null = N/A or error. */ + result: boolean | null; + /** @description Hog evaluation reasoning string, if any. */ + reasoning: string | null; + /** @description Error message if the Hog code raised an exception. */ + error: string | null; + }; + TestHogTaggerRequest: { + /** @description Hog source code to test. Return a tag name string, a list of tag name strings, or null. */ + source: string; + /** + * @description Number of recent $ai_generation events to test against (1-10, default 5). + * @default 5 + */ + sample_count: number; + /** @description Optional tag whitelist. Returned tags outside this list are filtered out. */ + tags?: components["schemas"]["TestHogTaggerTag"][]; + }; + TestHogTaggerResponse: { + /** @description Per-event Hog tagger test results. */ + results: components["schemas"]["TestHogTaggerResultItem"][]; + /** @description Optional message, for example when no recent AI events were found. */ + message?: string; + }; + TestHogTaggerResultItem: { + /** @description UUID of the sampled $ai_generation event. */ + event_uuid: string; + /** @description Trace ID if available. */ + trace_id?: string | null; + /** @description First 200 characters of the generation input. */ + input_preview: string; + /** @description First 200 characters of the generation output. */ + output_preview: string; + /** @description Tag names returned by the Hog code. */ + tags: string[]; + /** @description Text written to stdout by the Hog code. */ + reasoning: string; + /** @description Error message if the Hog code failed. */ + error?: string | null; + }; + TestHogTaggerTag: { + /** @description Tag identifier to allow in Hog test results. */ + name: string; + /** + * @description Optional description for the tag. + * @default + */ + description: string; + }; + /** + * TextMatching + * @enum {unknown} + */ + TextMatching: "contains" | "exact" | "regex" | null; + TextReprMetadata: { + event_type?: string; + event_id?: string; + trace_id?: string; + rendering: string; + char_count: number; + truncated: boolean; + error?: string; + }; + TextReprOptions: { + /** @description Maximum length of generated text (default: 2000000) */ + max_length?: number; + /** @description Use truncation for long content within events (default: true) */ + truncated?: boolean; + /** @description Characters to show at start/end when truncating (default: 1000) */ + truncate_buffer?: number; + /** @description Use interactive markers for frontend vs plain text for backend/LLM (default: true) */ + include_markers?: boolean; + /** @description Show summary vs full tree hierarchy for traces (default: false) */ + collapsed?: boolean; + /** @description Include metadata in response */ + include_metadata?: boolean; + /** @description Include hierarchy information (for traces) */ + include_hierarchy?: boolean; + /** @description Maximum depth for hierarchical rendering */ + max_depth?: number; + /** @description Number of tools before collapsing the list (default: 5) */ + tools_collapse_threshold?: number; + /** @description Prefix each line with line number (default: false) */ + include_line_numbers?: boolean; + }; + TextReprRequest: { + /** + * @description Type of LLM event to stringify + * + * * `$ai_generation` - $ai_generation + * * `$ai_span` - $ai_span + * * `$ai_embedding` - $ai_embedding + * * `$ai_trace` - $ai_trace + */ + event_type: components["schemas"]["EventTypeEnum"]; + /** @description Event data to stringify. For traces, should include 'trace' and 'hierarchy' fields. */ + data: unknown; + /** @description Optional configuration for text generation */ + options?: components["schemas"]["TextReprOptions"]; + }; + TextReprResponse: { + /** @description Generated text representation of the event */ + text: string; + /** @description Metadata about the text representation */ + metadata: components["schemas"]["TextReprMetadata"]; + }; + /** + * @description * `light` - Light + * * `dark` - Dark + * * `system` - System + * @enum {string} + */ + ThemeModeEnum: "light" | "dark" | "system"; + Threshold: { + /** Format: uuid */ + readonly id: string; + /** Format: date-time */ + readonly created_at: string; + /** @description Optional name for the threshold. */ + name?: string; + /** @description Threshold bounds and type. Includes bounds (lower/upper floats) and type (absolute or percentage). */ + configuration: components["schemas"]["InsightThreshold"]; + }; + /** ThresholdDetectorConfig */ + ThresholdDetectorConfig: { + /** + * Lower Bound + * @description Lower bound - values below this are anomalies + * @default null + */ + lower_bound: number | null; + /** + * @description Preprocessing transforms applied before detection + * @default null + */ + preprocessing: components["schemas"]["PreprocessingConfig"] | null; + /** + * Type + * @default threshold + * @constant + */ + type: "threshold"; + /** + * Upper Bound + * @description Upper bound - values above this are anomalies + * @default null + */ + upper_bound: number | null; + }; + /** + * @description * `above` - Above + * * `below` - Below + * @enum {string} + */ + ThresholdOperatorEnum: "above" | "below"; + ThresholdWithAlert: { + /** Format: uuid */ + readonly id: string; + /** Format: date-time */ + readonly created_at: string; + /** @description Optional name for the threshold. */ + name?: string; + /** @description Threshold bounds and type. Includes bounds (lower/upper floats) and type (absolute or percentage). */ + configuration: components["schemas"]["InsightThreshold"]; + readonly alerts: components["schemas"]["Alert"][]; + }; + /** @description Serializer mixin that handles tags for objects. */ + Ticket: { + /** Format: uuid */ + readonly id: string; + readonly ticket_number: number; + readonly channel_source: components["schemas"]["ChannelSourceEnum"]; + readonly channel_detail: components["schemas"]["ChannelDetailEnum"] | components["schemas"]["NullEnum"]; + readonly distinct_id: string; + /** + * @description Ticket status: new, open, pending, on_hold, or resolved + * + * * `new` - New + * * `open` - Open + * * `pending` - Pending + * * `on_hold` - On hold + * * `resolved` - Resolved + */ + status?: components["schemas"]["TicketStatusEnum"]; + /** + * @description Ticket priority: low, medium, or high. Null if unset. + * + * * `low` - Low + * * `medium` - Medium + * * `high` - High + */ + priority?: components["schemas"]["PriorityEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + readonly assignee: components["schemas"]["TicketAssignment"]; + /** @description Customer-provided traits such as name and email */ + anonymous_traits?: unknown; + ai_resolved?: boolean; + escalation_reason?: string | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string; + readonly message_count: number; + /** Format: date-time */ + readonly last_message_at: string | null; + readonly last_message_text: string | null; + readonly unread_team_count: number; + readonly unread_customer_count: number; + readonly session_id: string | null; + readonly session_context: unknown; + /** + * Format: date-time + * @description SLA deadline set via workflows. Null means no SLA. + */ + sla_due_at?: string | null; + /** Format: date-time */ + snoozed_until?: string | null; + readonly slack_channel_id: string | null; + readonly slack_thread_ts: string | null; + readonly slack_team_id: string | null; + readonly email_subject: string | null; + /** Format: email */ + readonly email_from: string | null; + readonly email_to: string | null; + readonly cc_participants: unknown; + readonly github_repo: string | null; + readonly github_issue_number: number | null; + readonly person: components["schemas"]["TicketPerson"] | null; + tags?: unknown[]; + }; + /** @description Serializer for ticket assignment (user or role). */ + TicketAssignment: { + readonly id: string | null; + readonly type: string; + readonly user: { + [key: string]: string; + } | null; + readonly role: { + [key: string]: string; + } | null; + }; + /** @description Minimal person serializer for embedding in ticket responses. */ + TicketPerson: { + /** Format: uuid */ + readonly id: string; + readonly name: string; + readonly distinct_ids: string[]; + readonly properties: { + [key: string]: unknown; + }; + /** Format: date-time */ + readonly created_at: string; + readonly is_identified: boolean; + }; + /** + * @description * `new` - New + * * `open` - Open + * * `pending` - Pending + * * `on_hold` - On hold + * * `resolved` - Resolved + * @enum {string} + */ + TicketStatusEnum: "new" | "open" | "pending" | "on_hold" | "resolved"; + TicketView: { + /** Format: uuid */ + readonly id: string; + readonly short_id: string; + name: string; + /** @description Saved ticket filter criteria. May contain status, priority, channel, sla, assignee, tags, dateFrom, dateTo, and sorting keys. */ + filters?: { + [key: string]: unknown; + }; + /** Format: date-time */ + readonly created_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + }; + /** + * TimeWindowMode + * @enum {string} + */ + TimeWindowMode: "strict_calendar_dates" | "24_hour_windows"; + /** TimelineEntry */ + TimelineEntry: { + /** Events */ + events: components["schemas"]["EventType"][]; + /** + * Recording Duration S + * @description Duration of the recording in seconds. + * @default null + */ + recording_duration_s: number | null; + /** + * Sessionid + * @description Session ID. None means out-of-session events + * @default null + */ + sessionId: string | null; + }; + /** + * @description * `Africa/Abidjan` - Africa/Abidjan + * * `Africa/Accra` - Africa/Accra + * * `Africa/Addis_Ababa` - Africa/Addis_Ababa + * * `Africa/Algiers` - Africa/Algiers + * * `Africa/Asmara` - Africa/Asmara + * * `Africa/Asmera` - Africa/Asmera + * * `Africa/Bamako` - Africa/Bamako + * * `Africa/Bangui` - Africa/Bangui + * * `Africa/Banjul` - Africa/Banjul + * * `Africa/Bissau` - Africa/Bissau + * * `Africa/Blantyre` - Africa/Blantyre + * * `Africa/Brazzaville` - Africa/Brazzaville + * * `Africa/Bujumbura` - Africa/Bujumbura + * * `Africa/Cairo` - Africa/Cairo + * * `Africa/Casablanca` - Africa/Casablanca + * * `Africa/Ceuta` - Africa/Ceuta + * * `Africa/Conakry` - Africa/Conakry + * * `Africa/Dakar` - Africa/Dakar + * * `Africa/Dar_es_Salaam` - Africa/Dar_es_Salaam + * * `Africa/Djibouti` - Africa/Djibouti + * * `Africa/Douala` - Africa/Douala + * * `Africa/El_Aaiun` - Africa/El_Aaiun + * * `Africa/Freetown` - Africa/Freetown + * * `Africa/Gaborone` - Africa/Gaborone + * * `Africa/Harare` - Africa/Harare + * * `Africa/Johannesburg` - Africa/Johannesburg + * * `Africa/Juba` - Africa/Juba + * * `Africa/Kampala` - Africa/Kampala + * * `Africa/Khartoum` - Africa/Khartoum + * * `Africa/Kigali` - Africa/Kigali + * * `Africa/Kinshasa` - Africa/Kinshasa + * * `Africa/Lagos` - Africa/Lagos + * * `Africa/Libreville` - Africa/Libreville + * * `Africa/Lome` - Africa/Lome + * * `Africa/Luanda` - Africa/Luanda + * * `Africa/Lubumbashi` - Africa/Lubumbashi + * * `Africa/Lusaka` - Africa/Lusaka + * * `Africa/Malabo` - Africa/Malabo + * * `Africa/Maputo` - Africa/Maputo + * * `Africa/Maseru` - Africa/Maseru + * * `Africa/Mbabane` - Africa/Mbabane + * * `Africa/Mogadishu` - Africa/Mogadishu + * * `Africa/Monrovia` - Africa/Monrovia + * * `Africa/Nairobi` - Africa/Nairobi + * * `Africa/Ndjamena` - Africa/Ndjamena + * * `Africa/Niamey` - Africa/Niamey + * * `Africa/Nouakchott` - Africa/Nouakchott + * * `Africa/Ouagadougou` - Africa/Ouagadougou + * * `Africa/Porto-Novo` - Africa/Porto-Novo + * * `Africa/Sao_Tome` - Africa/Sao_Tome + * * `Africa/Timbuktu` - Africa/Timbuktu + * * `Africa/Tripoli` - Africa/Tripoli + * * `Africa/Tunis` - Africa/Tunis + * * `Africa/Windhoek` - Africa/Windhoek + * * `America/Adak` - America/Adak + * * `America/Anchorage` - America/Anchorage + * * `America/Anguilla` - America/Anguilla + * * `America/Antigua` - America/Antigua + * * `America/Araguaina` - America/Araguaina + * * `America/Argentina/Buenos_Aires` - America/Argentina/Buenos_Aires + * * `America/Argentina/Catamarca` - America/Argentina/Catamarca + * * `America/Argentina/ComodRivadavia` - America/Argentina/ComodRivadavia + * * `America/Argentina/Cordoba` - America/Argentina/Cordoba + * * `America/Argentina/Jujuy` - America/Argentina/Jujuy + * * `America/Argentina/La_Rioja` - America/Argentina/La_Rioja + * * `America/Argentina/Mendoza` - America/Argentina/Mendoza + * * `America/Argentina/Rio_Gallegos` - America/Argentina/Rio_Gallegos + * * `America/Argentina/Salta` - America/Argentina/Salta + * * `America/Argentina/San_Juan` - America/Argentina/San_Juan + * * `America/Argentina/San_Luis` - America/Argentina/San_Luis + * * `America/Argentina/Tucuman` - America/Argentina/Tucuman + * * `America/Argentina/Ushuaia` - America/Argentina/Ushuaia + * * `America/Aruba` - America/Aruba + * * `America/Asuncion` - America/Asuncion + * * `America/Atikokan` - America/Atikokan + * * `America/Atka` - America/Atka + * * `America/Bahia` - America/Bahia + * * `America/Bahia_Banderas` - America/Bahia_Banderas + * * `America/Barbados` - America/Barbados + * * `America/Belem` - America/Belem + * * `America/Belize` - America/Belize + * * `America/Blanc-Sablon` - America/Blanc-Sablon + * * `America/Boa_Vista` - America/Boa_Vista + * * `America/Bogota` - America/Bogota + * * `America/Boise` - America/Boise + * * `America/Buenos_Aires` - America/Buenos_Aires + * * `America/Cambridge_Bay` - America/Cambridge_Bay + * * `America/Campo_Grande` - America/Campo_Grande + * * `America/Cancun` - America/Cancun + * * `America/Caracas` - America/Caracas + * * `America/Catamarca` - America/Catamarca + * * `America/Cayenne` - America/Cayenne + * * `America/Cayman` - America/Cayman + * * `America/Chicago` - America/Chicago + * * `America/Chihuahua` - America/Chihuahua + * * `America/Ciudad_Juarez` - America/Ciudad_Juarez + * * `America/Coral_Harbour` - America/Coral_Harbour + * * `America/Cordoba` - America/Cordoba + * * `America/Costa_Rica` - America/Costa_Rica + * * `America/Creston` - America/Creston + * * `America/Cuiaba` - America/Cuiaba + * * `America/Curacao` - America/Curacao + * * `America/Danmarkshavn` - America/Danmarkshavn + * * `America/Dawson` - America/Dawson + * * `America/Dawson_Creek` - America/Dawson_Creek + * * `America/Denver` - America/Denver + * * `America/Detroit` - America/Detroit + * * `America/Dominica` - America/Dominica + * * `America/Edmonton` - America/Edmonton + * * `America/Eirunepe` - America/Eirunepe + * * `America/El_Salvador` - America/El_Salvador + * * `America/Ensenada` - America/Ensenada + * * `America/Fort_Nelson` - America/Fort_Nelson + * * `America/Fort_Wayne` - America/Fort_Wayne + * * `America/Fortaleza` - America/Fortaleza + * * `America/Glace_Bay` - America/Glace_Bay + * * `America/Godthab` - America/Godthab + * * `America/Goose_Bay` - America/Goose_Bay + * * `America/Grand_Turk` - America/Grand_Turk + * * `America/Grenada` - America/Grenada + * * `America/Guadeloupe` - America/Guadeloupe + * * `America/Guatemala` - America/Guatemala + * * `America/Guayaquil` - America/Guayaquil + * * `America/Guyana` - America/Guyana + * * `America/Halifax` - America/Halifax + * * `America/Havana` - America/Havana + * * `America/Hermosillo` - America/Hermosillo + * * `America/Indiana/Indianapolis` - America/Indiana/Indianapolis + * * `America/Indiana/Knox` - America/Indiana/Knox + * * `America/Indiana/Marengo` - America/Indiana/Marengo + * * `America/Indiana/Petersburg` - America/Indiana/Petersburg + * * `America/Indiana/Tell_City` - America/Indiana/Tell_City + * * `America/Indiana/Vevay` - America/Indiana/Vevay + * * `America/Indiana/Vincennes` - America/Indiana/Vincennes + * * `America/Indiana/Winamac` - America/Indiana/Winamac + * * `America/Indianapolis` - America/Indianapolis + * * `America/Inuvik` - America/Inuvik + * * `America/Iqaluit` - America/Iqaluit + * * `America/Jamaica` - America/Jamaica + * * `America/Jujuy` - America/Jujuy + * * `America/Juneau` - America/Juneau + * * `America/Kentucky/Louisville` - America/Kentucky/Louisville + * * `America/Kentucky/Monticello` - America/Kentucky/Monticello + * * `America/Knox_IN` - America/Knox_IN + * * `America/Kralendijk` - America/Kralendijk + * * `America/La_Paz` - America/La_Paz + * * `America/Lima` - America/Lima + * * `America/Los_Angeles` - America/Los_Angeles + * * `America/Louisville` - America/Louisville + * * `America/Lower_Princes` - America/Lower_Princes + * * `America/Maceio` - America/Maceio + * * `America/Managua` - America/Managua + * * `America/Manaus` - America/Manaus + * * `America/Marigot` - America/Marigot + * * `America/Martinique` - America/Martinique + * * `America/Matamoros` - America/Matamoros + * * `America/Mazatlan` - America/Mazatlan + * * `America/Mendoza` - America/Mendoza + * * `America/Menominee` - America/Menominee + * * `America/Merida` - America/Merida + * * `America/Metlakatla` - America/Metlakatla + * * `America/Mexico_City` - America/Mexico_City + * * `America/Miquelon` - America/Miquelon + * * `America/Moncton` - America/Moncton + * * `America/Monterrey` - America/Monterrey + * * `America/Montevideo` - America/Montevideo + * * `America/Montreal` - America/Montreal + * * `America/Montserrat` - America/Montserrat + * * `America/Nassau` - America/Nassau + * * `America/New_York` - America/New_York + * * `America/Nipigon` - America/Nipigon + * * `America/Nome` - America/Nome + * * `America/Noronha` - America/Noronha + * * `America/North_Dakota/Beulah` - America/North_Dakota/Beulah + * * `America/North_Dakota/Center` - America/North_Dakota/Center + * * `America/North_Dakota/New_Salem` - America/North_Dakota/New_Salem + * * `America/Nuuk` - America/Nuuk + * * `America/Ojinaga` - America/Ojinaga + * * `America/Panama` - America/Panama + * * `America/Pangnirtung` - America/Pangnirtung + * * `America/Paramaribo` - America/Paramaribo + * * `America/Phoenix` - America/Phoenix + * * `America/Port-au-Prince` - America/Port-au-Prince + * * `America/Port_of_Spain` - America/Port_of_Spain + * * `America/Porto_Acre` - America/Porto_Acre + * * `America/Porto_Velho` - America/Porto_Velho + * * `America/Puerto_Rico` - America/Puerto_Rico + * * `America/Punta_Arenas` - America/Punta_Arenas + * * `America/Rainy_River` - America/Rainy_River + * * `America/Rankin_Inlet` - America/Rankin_Inlet + * * `America/Recife` - America/Recife + * * `America/Regina` - America/Regina + * * `America/Resolute` - America/Resolute + * * `America/Rio_Branco` - America/Rio_Branco + * * `America/Rosario` - America/Rosario + * * `America/Santa_Isabel` - America/Santa_Isabel + * * `America/Santarem` - America/Santarem + * * `America/Santiago` - America/Santiago + * * `America/Santo_Domingo` - America/Santo_Domingo + * * `America/Sao_Paulo` - America/Sao_Paulo + * * `America/Scoresbysund` - America/Scoresbysund + * * `America/Shiprock` - America/Shiprock + * * `America/Sitka` - America/Sitka + * * `America/St_Barthelemy` - America/St_Barthelemy + * * `America/St_Johns` - America/St_Johns + * * `America/St_Kitts` - America/St_Kitts + * * `America/St_Lucia` - America/St_Lucia + * * `America/St_Thomas` - America/St_Thomas + * * `America/St_Vincent` - America/St_Vincent + * * `America/Swift_Current` - America/Swift_Current + * * `America/Tegucigalpa` - America/Tegucigalpa + * * `America/Thule` - America/Thule + * * `America/Thunder_Bay` - America/Thunder_Bay + * * `America/Tijuana` - America/Tijuana + * * `America/Toronto` - America/Toronto + * * `America/Tortola` - America/Tortola + * * `America/Vancouver` - America/Vancouver + * * `America/Virgin` - America/Virgin + * * `America/Whitehorse` - America/Whitehorse + * * `America/Winnipeg` - America/Winnipeg + * * `America/Yakutat` - America/Yakutat + * * `America/Yellowknife` - America/Yellowknife + * * `Antarctica/Casey` - Antarctica/Casey + * * `Antarctica/Davis` - Antarctica/Davis + * * `Antarctica/DumontDUrville` - Antarctica/DumontDUrville + * * `Antarctica/Macquarie` - Antarctica/Macquarie + * * `Antarctica/Mawson` - Antarctica/Mawson + * * `Antarctica/McMurdo` - Antarctica/McMurdo + * * `Antarctica/Palmer` - Antarctica/Palmer + * * `Antarctica/Rothera` - Antarctica/Rothera + * * `Antarctica/South_Pole` - Antarctica/South_Pole + * * `Antarctica/Syowa` - Antarctica/Syowa + * * `Antarctica/Troll` - Antarctica/Troll + * * `Antarctica/Vostok` - Antarctica/Vostok + * * `Arctic/Longyearbyen` - Arctic/Longyearbyen + * * `Asia/Aden` - Asia/Aden + * * `Asia/Almaty` - Asia/Almaty + * * `Asia/Amman` - Asia/Amman + * * `Asia/Anadyr` - Asia/Anadyr + * * `Asia/Aqtau` - Asia/Aqtau + * * `Asia/Aqtobe` - Asia/Aqtobe + * * `Asia/Ashgabat` - Asia/Ashgabat + * * `Asia/Ashkhabad` - Asia/Ashkhabad + * * `Asia/Atyrau` - Asia/Atyrau + * * `Asia/Baghdad` - Asia/Baghdad + * * `Asia/Bahrain` - Asia/Bahrain + * * `Asia/Baku` - Asia/Baku + * * `Asia/Bangkok` - Asia/Bangkok + * * `Asia/Barnaul` - Asia/Barnaul + * * `Asia/Beirut` - Asia/Beirut + * * `Asia/Bishkek` - Asia/Bishkek + * * `Asia/Brunei` - Asia/Brunei + * * `Asia/Calcutta` - Asia/Calcutta + * * `Asia/Chita` - Asia/Chita + * * `Asia/Choibalsan` - Asia/Choibalsan + * * `Asia/Chongqing` - Asia/Chongqing + * * `Asia/Chungking` - Asia/Chungking + * * `Asia/Colombo` - Asia/Colombo + * * `Asia/Dacca` - Asia/Dacca + * * `Asia/Damascus` - Asia/Damascus + * * `Asia/Dhaka` - Asia/Dhaka + * * `Asia/Dili` - Asia/Dili + * * `Asia/Dubai` - Asia/Dubai + * * `Asia/Dushanbe` - Asia/Dushanbe + * * `Asia/Famagusta` - Asia/Famagusta + * * `Asia/Gaza` - Asia/Gaza + * * `Asia/Harbin` - Asia/Harbin + * * `Asia/Hebron` - Asia/Hebron + * * `Asia/Ho_Chi_Minh` - Asia/Ho_Chi_Minh + * * `Asia/Hong_Kong` - Asia/Hong_Kong + * * `Asia/Hovd` - Asia/Hovd + * * `Asia/Irkutsk` - Asia/Irkutsk + * * `Asia/Istanbul` - Asia/Istanbul + * * `Asia/Jakarta` - Asia/Jakarta + * * `Asia/Jayapura` - Asia/Jayapura + * * `Asia/Jerusalem` - Asia/Jerusalem + * * `Asia/Kabul` - Asia/Kabul + * * `Asia/Kamchatka` - Asia/Kamchatka + * * `Asia/Karachi` - Asia/Karachi + * * `Asia/Kashgar` - Asia/Kashgar + * * `Asia/Kathmandu` - Asia/Kathmandu + * * `Asia/Katmandu` - Asia/Katmandu + * * `Asia/Khandyga` - Asia/Khandyga + * * `Asia/Kolkata` - Asia/Kolkata + * * `Asia/Krasnoyarsk` - Asia/Krasnoyarsk + * * `Asia/Kuala_Lumpur` - Asia/Kuala_Lumpur + * * `Asia/Kuching` - Asia/Kuching + * * `Asia/Kuwait` - Asia/Kuwait + * * `Asia/Macao` - Asia/Macao + * * `Asia/Macau` - Asia/Macau + * * `Asia/Magadan` - Asia/Magadan + * * `Asia/Makassar` - Asia/Makassar + * * `Asia/Manila` - Asia/Manila + * * `Asia/Muscat` - Asia/Muscat + * * `Asia/Nicosia` - Asia/Nicosia + * * `Asia/Novokuznetsk` - Asia/Novokuznetsk + * * `Asia/Novosibirsk` - Asia/Novosibirsk + * * `Asia/Omsk` - Asia/Omsk + * * `Asia/Oral` - Asia/Oral + * * `Asia/Phnom_Penh` - Asia/Phnom_Penh + * * `Asia/Pontianak` - Asia/Pontianak + * * `Asia/Pyongyang` - Asia/Pyongyang + * * `Asia/Qatar` - Asia/Qatar + * * `Asia/Qostanay` - Asia/Qostanay + * * `Asia/Qyzylorda` - Asia/Qyzylorda + * * `Asia/Rangoon` - Asia/Rangoon + * * `Asia/Riyadh` - Asia/Riyadh + * * `Asia/Saigon` - Asia/Saigon + * * `Asia/Sakhalin` - Asia/Sakhalin + * * `Asia/Samarkand` - Asia/Samarkand + * * `Asia/Seoul` - Asia/Seoul + * * `Asia/Shanghai` - Asia/Shanghai + * * `Asia/Singapore` - Asia/Singapore + * * `Asia/Srednekolymsk` - Asia/Srednekolymsk + * * `Asia/Taipei` - Asia/Taipei + * * `Asia/Tashkent` - Asia/Tashkent + * * `Asia/Tbilisi` - Asia/Tbilisi + * * `Asia/Tehran` - Asia/Tehran + * * `Asia/Tel_Aviv` - Asia/Tel_Aviv + * * `Asia/Thimbu` - Asia/Thimbu + * * `Asia/Thimphu` - Asia/Thimphu + * * `Asia/Tokyo` - Asia/Tokyo + * * `Asia/Tomsk` - Asia/Tomsk + * * `Asia/Ujung_Pandang` - Asia/Ujung_Pandang + * * `Asia/Ulaanbaatar` - Asia/Ulaanbaatar + * * `Asia/Ulan_Bator` - Asia/Ulan_Bator + * * `Asia/Urumqi` - Asia/Urumqi + * * `Asia/Ust-Nera` - Asia/Ust-Nera + * * `Asia/Vientiane` - Asia/Vientiane + * * `Asia/Vladivostok` - Asia/Vladivostok + * * `Asia/Yakutsk` - Asia/Yakutsk + * * `Asia/Yangon` - Asia/Yangon + * * `Asia/Yekaterinburg` - Asia/Yekaterinburg + * * `Asia/Yerevan` - Asia/Yerevan + * * `Atlantic/Azores` - Atlantic/Azores + * * `Atlantic/Bermuda` - Atlantic/Bermuda + * * `Atlantic/Canary` - Atlantic/Canary + * * `Atlantic/Cape_Verde` - Atlantic/Cape_Verde + * * `Atlantic/Faeroe` - Atlantic/Faeroe + * * `Atlantic/Faroe` - Atlantic/Faroe + * * `Atlantic/Jan_Mayen` - Atlantic/Jan_Mayen + * * `Atlantic/Madeira` - Atlantic/Madeira + * * `Atlantic/Reykjavik` - Atlantic/Reykjavik + * * `Atlantic/South_Georgia` - Atlantic/South_Georgia + * * `Atlantic/St_Helena` - Atlantic/St_Helena + * * `Atlantic/Stanley` - Atlantic/Stanley + * * `Australia/ACT` - Australia/ACT + * * `Australia/Adelaide` - Australia/Adelaide + * * `Australia/Brisbane` - Australia/Brisbane + * * `Australia/Broken_Hill` - Australia/Broken_Hill + * * `Australia/Canberra` - Australia/Canberra + * * `Australia/Currie` - Australia/Currie + * * `Australia/Darwin` - Australia/Darwin + * * `Australia/Eucla` - Australia/Eucla + * * `Australia/Hobart` - Australia/Hobart + * * `Australia/LHI` - Australia/LHI + * * `Australia/Lindeman` - Australia/Lindeman + * * `Australia/Lord_Howe` - Australia/Lord_Howe + * * `Australia/Melbourne` - Australia/Melbourne + * * `Australia/NSW` - Australia/NSW + * * `Australia/North` - Australia/North + * * `Australia/Perth` - Australia/Perth + * * `Australia/Queensland` - Australia/Queensland + * * `Australia/South` - Australia/South + * * `Australia/Sydney` - Australia/Sydney + * * `Australia/Tasmania` - Australia/Tasmania + * * `Australia/Victoria` - Australia/Victoria + * * `Australia/West` - Australia/West + * * `Australia/Yancowinna` - Australia/Yancowinna + * * `Brazil/Acre` - Brazil/Acre + * * `Brazil/DeNoronha` - Brazil/DeNoronha + * * `Brazil/East` - Brazil/East + * * `Brazil/West` - Brazil/West + * * `CET` - CET + * * `CST6CDT` - CST6CDT + * * `Canada/Atlantic` - Canada/Atlantic + * * `Canada/Central` - Canada/Central + * * `Canada/Eastern` - Canada/Eastern + * * `Canada/Mountain` - Canada/Mountain + * * `Canada/Newfoundland` - Canada/Newfoundland + * * `Canada/Pacific` - Canada/Pacific + * * `Canada/Saskatchewan` - Canada/Saskatchewan + * * `Canada/Yukon` - Canada/Yukon + * * `Chile/Continental` - Chile/Continental + * * `Chile/EasterIsland` - Chile/EasterIsland + * * `Cuba` - Cuba + * * `EET` - EET + * * `EST` - EST + * * `EST5EDT` - EST5EDT + * * `Egypt` - Egypt + * * `Eire` - Eire + * * `Etc/GMT` - Etc/GMT + * * `Etc/GMT+0` - Etc/GMT+0 + * * `Etc/GMT+1` - Etc/GMT+1 + * * `Etc/GMT+10` - Etc/GMT+10 + * * `Etc/GMT+11` - Etc/GMT+11 + * * `Etc/GMT+12` - Etc/GMT+12 + * * `Etc/GMT+2` - Etc/GMT+2 + * * `Etc/GMT+3` - Etc/GMT+3 + * * `Etc/GMT+4` - Etc/GMT+4 + * * `Etc/GMT+5` - Etc/GMT+5 + * * `Etc/GMT+6` - Etc/GMT+6 + * * `Etc/GMT+7` - Etc/GMT+7 + * * `Etc/GMT+8` - Etc/GMT+8 + * * `Etc/GMT+9` - Etc/GMT+9 + * * `Etc/GMT-0` - Etc/GMT-0 + * * `Etc/GMT-1` - Etc/GMT-1 + * * `Etc/GMT-10` - Etc/GMT-10 + * * `Etc/GMT-11` - Etc/GMT-11 + * * `Etc/GMT-12` - Etc/GMT-12 + * * `Etc/GMT-13` - Etc/GMT-13 + * * `Etc/GMT-14` - Etc/GMT-14 + * * `Etc/GMT-2` - Etc/GMT-2 + * * `Etc/GMT-3` - Etc/GMT-3 + * * `Etc/GMT-4` - Etc/GMT-4 + * * `Etc/GMT-5` - Etc/GMT-5 + * * `Etc/GMT-6` - Etc/GMT-6 + * * `Etc/GMT-7` - Etc/GMT-7 + * * `Etc/GMT-8` - Etc/GMT-8 + * * `Etc/GMT-9` - Etc/GMT-9 + * * `Etc/GMT0` - Etc/GMT0 + * * `Etc/Greenwich` - Etc/Greenwich + * * `Etc/UCT` - Etc/UCT + * * `Etc/UTC` - Etc/UTC + * * `Etc/Universal` - Etc/Universal + * * `Etc/Zulu` - Etc/Zulu + * * `Europe/Amsterdam` - Europe/Amsterdam + * * `Europe/Andorra` - Europe/Andorra + * * `Europe/Astrakhan` - Europe/Astrakhan + * * `Europe/Athens` - Europe/Athens + * * `Europe/Belfast` - Europe/Belfast + * * `Europe/Belgrade` - Europe/Belgrade + * * `Europe/Berlin` - Europe/Berlin + * * `Europe/Bratislava` - Europe/Bratislava + * * `Europe/Brussels` - Europe/Brussels + * * `Europe/Bucharest` - Europe/Bucharest + * * `Europe/Budapest` - Europe/Budapest + * * `Europe/Busingen` - Europe/Busingen + * * `Europe/Chisinau` - Europe/Chisinau + * * `Europe/Copenhagen` - Europe/Copenhagen + * * `Europe/Dublin` - Europe/Dublin + * * `Europe/Gibraltar` - Europe/Gibraltar + * * `Europe/Guernsey` - Europe/Guernsey + * * `Europe/Helsinki` - Europe/Helsinki + * * `Europe/Isle_of_Man` - Europe/Isle_of_Man + * * `Europe/Istanbul` - Europe/Istanbul + * * `Europe/Jersey` - Europe/Jersey + * * `Europe/Kaliningrad` - Europe/Kaliningrad + * * `Europe/Kiev` - Europe/Kiev + * * `Europe/Kirov` - Europe/Kirov + * * `Europe/Kyiv` - Europe/Kyiv + * * `Europe/Lisbon` - Europe/Lisbon + * * `Europe/Ljubljana` - Europe/Ljubljana + * * `Europe/London` - Europe/London + * * `Europe/Luxembourg` - Europe/Luxembourg + * * `Europe/Madrid` - Europe/Madrid + * * `Europe/Malta` - Europe/Malta + * * `Europe/Mariehamn` - Europe/Mariehamn + * * `Europe/Minsk` - Europe/Minsk + * * `Europe/Monaco` - Europe/Monaco + * * `Europe/Moscow` - Europe/Moscow + * * `Europe/Nicosia` - Europe/Nicosia + * * `Europe/Oslo` - Europe/Oslo + * * `Europe/Paris` - Europe/Paris + * * `Europe/Podgorica` - Europe/Podgorica + * * `Europe/Prague` - Europe/Prague + * * `Europe/Riga` - Europe/Riga + * * `Europe/Rome` - Europe/Rome + * * `Europe/Samara` - Europe/Samara + * * `Europe/San_Marino` - Europe/San_Marino + * * `Europe/Sarajevo` - Europe/Sarajevo + * * `Europe/Saratov` - Europe/Saratov + * * `Europe/Simferopol` - Europe/Simferopol + * * `Europe/Skopje` - Europe/Skopje + * * `Europe/Sofia` - Europe/Sofia + * * `Europe/Stockholm` - Europe/Stockholm + * * `Europe/Tallinn` - Europe/Tallinn + * * `Europe/Tirane` - Europe/Tirane + * * `Europe/Tiraspol` - Europe/Tiraspol + * * `Europe/Ulyanovsk` - Europe/Ulyanovsk + * * `Europe/Uzhgorod` - Europe/Uzhgorod + * * `Europe/Vaduz` - Europe/Vaduz + * * `Europe/Vatican` - Europe/Vatican + * * `Europe/Vienna` - Europe/Vienna + * * `Europe/Vilnius` - Europe/Vilnius + * * `Europe/Volgograd` - Europe/Volgograd + * * `Europe/Warsaw` - Europe/Warsaw + * * `Europe/Zagreb` - Europe/Zagreb + * * `Europe/Zaporozhye` - Europe/Zaporozhye + * * `Europe/Zurich` - Europe/Zurich + * * `GB` - GB + * * `GB-Eire` - GB-Eire + * * `GMT` - GMT + * * `GMT+0` - GMT+0 + * * `GMT-0` - GMT-0 + * * `GMT0` - GMT0 + * * `Greenwich` - Greenwich + * * `HST` - HST + * * `Hongkong` - Hongkong + * * `Iceland` - Iceland + * * `Indian/Antananarivo` - Indian/Antananarivo + * * `Indian/Chagos` - Indian/Chagos + * * `Indian/Christmas` - Indian/Christmas + * * `Indian/Cocos` - Indian/Cocos + * * `Indian/Comoro` - Indian/Comoro + * * `Indian/Kerguelen` - Indian/Kerguelen + * * `Indian/Mahe` - Indian/Mahe + * * `Indian/Maldives` - Indian/Maldives + * * `Indian/Mauritius` - Indian/Mauritius + * * `Indian/Mayotte` - Indian/Mayotte + * * `Indian/Reunion` - Indian/Reunion + * * `Iran` - Iran + * * `Israel` - Israel + * * `Jamaica` - Jamaica + * * `Japan` - Japan + * * `Kwajalein` - Kwajalein + * * `Libya` - Libya + * * `MET` - MET + * * `MST` - MST + * * `MST7MDT` - MST7MDT + * * `Mexico/BajaNorte` - Mexico/BajaNorte + * * `Mexico/BajaSur` - Mexico/BajaSur + * * `Mexico/General` - Mexico/General + * * `NZ` - NZ + * * `NZ-CHAT` - NZ-CHAT + * * `Navajo` - Navajo + * * `PRC` - PRC + * * `PST8PDT` - PST8PDT + * * `Pacific/Apia` - Pacific/Apia + * * `Pacific/Auckland` - Pacific/Auckland + * * `Pacific/Bougainville` - Pacific/Bougainville + * * `Pacific/Chatham` - Pacific/Chatham + * * `Pacific/Chuuk` - Pacific/Chuuk + * * `Pacific/Easter` - Pacific/Easter + * * `Pacific/Efate` - Pacific/Efate + * * `Pacific/Enderbury` - Pacific/Enderbury + * * `Pacific/Fakaofo` - Pacific/Fakaofo + * * `Pacific/Fiji` - Pacific/Fiji + * * `Pacific/Funafuti` - Pacific/Funafuti + * * `Pacific/Galapagos` - Pacific/Galapagos + * * `Pacific/Gambier` - Pacific/Gambier + * * `Pacific/Guadalcanal` - Pacific/Guadalcanal + * * `Pacific/Guam` - Pacific/Guam + * * `Pacific/Honolulu` - Pacific/Honolulu + * * `Pacific/Johnston` - Pacific/Johnston + * * `Pacific/Kanton` - Pacific/Kanton + * * `Pacific/Kiritimati` - Pacific/Kiritimati + * * `Pacific/Kosrae` - Pacific/Kosrae + * * `Pacific/Kwajalein` - Pacific/Kwajalein + * * `Pacific/Majuro` - Pacific/Majuro + * * `Pacific/Marquesas` - Pacific/Marquesas + * * `Pacific/Midway` - Pacific/Midway + * * `Pacific/Nauru` - Pacific/Nauru + * * `Pacific/Niue` - Pacific/Niue + * * `Pacific/Norfolk` - Pacific/Norfolk + * * `Pacific/Noumea` - Pacific/Noumea + * * `Pacific/Pago_Pago` - Pacific/Pago_Pago + * * `Pacific/Palau` - Pacific/Palau + * * `Pacific/Pitcairn` - Pacific/Pitcairn + * * `Pacific/Pohnpei` - Pacific/Pohnpei + * * `Pacific/Ponape` - Pacific/Ponape + * * `Pacific/Port_Moresby` - Pacific/Port_Moresby + * * `Pacific/Rarotonga` - Pacific/Rarotonga + * * `Pacific/Saipan` - Pacific/Saipan + * * `Pacific/Samoa` - Pacific/Samoa + * * `Pacific/Tahiti` - Pacific/Tahiti + * * `Pacific/Tarawa` - Pacific/Tarawa + * * `Pacific/Tongatapu` - Pacific/Tongatapu + * * `Pacific/Truk` - Pacific/Truk + * * `Pacific/Wake` - Pacific/Wake + * * `Pacific/Wallis` - Pacific/Wallis + * * `Pacific/Yap` - Pacific/Yap + * * `Poland` - Poland + * * `Portugal` - Portugal + * * `ROC` - ROC + * * `ROK` - ROK + * * `Singapore` - Singapore + * * `Turkey` - Turkey + * * `UCT` - UCT + * * `US/Alaska` - US/Alaska + * * `US/Aleutian` - US/Aleutian + * * `US/Arizona` - US/Arizona + * * `US/Central` - US/Central + * * `US/East-Indiana` - US/East-Indiana + * * `US/Eastern` - US/Eastern + * * `US/Hawaii` - US/Hawaii + * * `US/Indiana-Starke` - US/Indiana-Starke + * * `US/Michigan` - US/Michigan + * * `US/Mountain` - US/Mountain + * * `US/Pacific` - US/Pacific + * * `US/Samoa` - US/Samoa + * * `UTC` - UTC + * * `Universal` - Universal + * * `W-SU` - W-SU + * * `WET` - WET + * * `Zulu` - Zulu + * @enum {string} + */ + TimezoneEnum: "Africa/Abidjan" | "Africa/Accra" | "Africa/Addis_Ababa" | "Africa/Algiers" | "Africa/Asmara" | "Africa/Asmera" | "Africa/Bamako" | "Africa/Bangui" | "Africa/Banjul" | "Africa/Bissau" | "Africa/Blantyre" | "Africa/Brazzaville" | "Africa/Bujumbura" | "Africa/Cairo" | "Africa/Casablanca" | "Africa/Ceuta" | "Africa/Conakry" | "Africa/Dakar" | "Africa/Dar_es_Salaam" | "Africa/Djibouti" | "Africa/Douala" | "Africa/El_Aaiun" | "Africa/Freetown" | "Africa/Gaborone" | "Africa/Harare" | "Africa/Johannesburg" | "Africa/Juba" | "Africa/Kampala" | "Africa/Khartoum" | "Africa/Kigali" | "Africa/Kinshasa" | "Africa/Lagos" | "Africa/Libreville" | "Africa/Lome" | "Africa/Luanda" | "Africa/Lubumbashi" | "Africa/Lusaka" | "Africa/Malabo" | "Africa/Maputo" | "Africa/Maseru" | "Africa/Mbabane" | "Africa/Mogadishu" | "Africa/Monrovia" | "Africa/Nairobi" | "Africa/Ndjamena" | "Africa/Niamey" | "Africa/Nouakchott" | "Africa/Ouagadougou" | "Africa/Porto-Novo" | "Africa/Sao_Tome" | "Africa/Timbuktu" | "Africa/Tripoli" | "Africa/Tunis" | "Africa/Windhoek" | "America/Adak" | "America/Anchorage" | "America/Anguilla" | "America/Antigua" | "America/Araguaina" | "America/Argentina/Buenos_Aires" | "America/Argentina/Catamarca" | "America/Argentina/ComodRivadavia" | "America/Argentina/Cordoba" | "America/Argentina/Jujuy" | "America/Argentina/La_Rioja" | "America/Argentina/Mendoza" | "America/Argentina/Rio_Gallegos" | "America/Argentina/Salta" | "America/Argentina/San_Juan" | "America/Argentina/San_Luis" | "America/Argentina/Tucuman" | "America/Argentina/Ushuaia" | "America/Aruba" | "America/Asuncion" | "America/Atikokan" | "America/Atka" | "America/Bahia" | "America/Bahia_Banderas" | "America/Barbados" | "America/Belem" | "America/Belize" | "America/Blanc-Sablon" | "America/Boa_Vista" | "America/Bogota" | "America/Boise" | "America/Buenos_Aires" | "America/Cambridge_Bay" | "America/Campo_Grande" | "America/Cancun" | "America/Caracas" | "America/Catamarca" | "America/Cayenne" | "America/Cayman" | "America/Chicago" | "America/Chihuahua" | "America/Ciudad_Juarez" | "America/Coral_Harbour" | "America/Cordoba" | "America/Costa_Rica" | "America/Creston" | "America/Cuiaba" | "America/Curacao" | "America/Danmarkshavn" | "America/Dawson" | "America/Dawson_Creek" | "America/Denver" | "America/Detroit" | "America/Dominica" | "America/Edmonton" | "America/Eirunepe" | "America/El_Salvador" | "America/Ensenada" | "America/Fort_Nelson" | "America/Fort_Wayne" | "America/Fortaleza" | "America/Glace_Bay" | "America/Godthab" | "America/Goose_Bay" | "America/Grand_Turk" | "America/Grenada" | "America/Guadeloupe" | "America/Guatemala" | "America/Guayaquil" | "America/Guyana" | "America/Halifax" | "America/Havana" | "America/Hermosillo" | "America/Indiana/Indianapolis" | "America/Indiana/Knox" | "America/Indiana/Marengo" | "America/Indiana/Petersburg" | "America/Indiana/Tell_City" | "America/Indiana/Vevay" | "America/Indiana/Vincennes" | "America/Indiana/Winamac" | "America/Indianapolis" | "America/Inuvik" | "America/Iqaluit" | "America/Jamaica" | "America/Jujuy" | "America/Juneau" | "America/Kentucky/Louisville" | "America/Kentucky/Monticello" | "America/Knox_IN" | "America/Kralendijk" | "America/La_Paz" | "America/Lima" | "America/Los_Angeles" | "America/Louisville" | "America/Lower_Princes" | "America/Maceio" | "America/Managua" | "America/Manaus" | "America/Marigot" | "America/Martinique" | "America/Matamoros" | "America/Mazatlan" | "America/Mendoza" | "America/Menominee" | "America/Merida" | "America/Metlakatla" | "America/Mexico_City" | "America/Miquelon" | "America/Moncton" | "America/Monterrey" | "America/Montevideo" | "America/Montreal" | "America/Montserrat" | "America/Nassau" | "America/New_York" | "America/Nipigon" | "America/Nome" | "America/Noronha" | "America/North_Dakota/Beulah" | "America/North_Dakota/Center" | "America/North_Dakota/New_Salem" | "America/Nuuk" | "America/Ojinaga" | "America/Panama" | "America/Pangnirtung" | "America/Paramaribo" | "America/Phoenix" | "America/Port-au-Prince" | "America/Port_of_Spain" | "America/Porto_Acre" | "America/Porto_Velho" | "America/Puerto_Rico" | "America/Punta_Arenas" | "America/Rainy_River" | "America/Rankin_Inlet" | "America/Recife" | "America/Regina" | "America/Resolute" | "America/Rio_Branco" | "America/Rosario" | "America/Santa_Isabel" | "America/Santarem" | "America/Santiago" | "America/Santo_Domingo" | "America/Sao_Paulo" | "America/Scoresbysund" | "America/Shiprock" | "America/Sitka" | "America/St_Barthelemy" | "America/St_Johns" | "America/St_Kitts" | "America/St_Lucia" | "America/St_Thomas" | "America/St_Vincent" | "America/Swift_Current" | "America/Tegucigalpa" | "America/Thule" | "America/Thunder_Bay" | "America/Tijuana" | "America/Toronto" | "America/Tortola" | "America/Vancouver" | "America/Virgin" | "America/Whitehorse" | "America/Winnipeg" | "America/Yakutat" | "America/Yellowknife" | "Antarctica/Casey" | "Antarctica/Davis" | "Antarctica/DumontDUrville" | "Antarctica/Macquarie" | "Antarctica/Mawson" | "Antarctica/McMurdo" | "Antarctica/Palmer" | "Antarctica/Rothera" | "Antarctica/South_Pole" | "Antarctica/Syowa" | "Antarctica/Troll" | "Antarctica/Vostok" | "Arctic/Longyearbyen" | "Asia/Aden" | "Asia/Almaty" | "Asia/Amman" | "Asia/Anadyr" | "Asia/Aqtau" | "Asia/Aqtobe" | "Asia/Ashgabat" | "Asia/Ashkhabad" | "Asia/Atyrau" | "Asia/Baghdad" | "Asia/Bahrain" | "Asia/Baku" | "Asia/Bangkok" | "Asia/Barnaul" | "Asia/Beirut" | "Asia/Bishkek" | "Asia/Brunei" | "Asia/Calcutta" | "Asia/Chita" | "Asia/Choibalsan" | "Asia/Chongqing" | "Asia/Chungking" | "Asia/Colombo" | "Asia/Dacca" | "Asia/Damascus" | "Asia/Dhaka" | "Asia/Dili" | "Asia/Dubai" | "Asia/Dushanbe" | "Asia/Famagusta" | "Asia/Gaza" | "Asia/Harbin" | "Asia/Hebron" | "Asia/Ho_Chi_Minh" | "Asia/Hong_Kong" | "Asia/Hovd" | "Asia/Irkutsk" | "Asia/Istanbul" | "Asia/Jakarta" | "Asia/Jayapura" | "Asia/Jerusalem" | "Asia/Kabul" | "Asia/Kamchatka" | "Asia/Karachi" | "Asia/Kashgar" | "Asia/Kathmandu" | "Asia/Katmandu" | "Asia/Khandyga" | "Asia/Kolkata" | "Asia/Krasnoyarsk" | "Asia/Kuala_Lumpur" | "Asia/Kuching" | "Asia/Kuwait" | "Asia/Macao" | "Asia/Macau" | "Asia/Magadan" | "Asia/Makassar" | "Asia/Manila" | "Asia/Muscat" | "Asia/Nicosia" | "Asia/Novokuznetsk" | "Asia/Novosibirsk" | "Asia/Omsk" | "Asia/Oral" | "Asia/Phnom_Penh" | "Asia/Pontianak" | "Asia/Pyongyang" | "Asia/Qatar" | "Asia/Qostanay" | "Asia/Qyzylorda" | "Asia/Rangoon" | "Asia/Riyadh" | "Asia/Saigon" | "Asia/Sakhalin" | "Asia/Samarkand" | "Asia/Seoul" | "Asia/Shanghai" | "Asia/Singapore" | "Asia/Srednekolymsk" | "Asia/Taipei" | "Asia/Tashkent" | "Asia/Tbilisi" | "Asia/Tehran" | "Asia/Tel_Aviv" | "Asia/Thimbu" | "Asia/Thimphu" | "Asia/Tokyo" | "Asia/Tomsk" | "Asia/Ujung_Pandang" | "Asia/Ulaanbaatar" | "Asia/Ulan_Bator" | "Asia/Urumqi" | "Asia/Ust-Nera" | "Asia/Vientiane" | "Asia/Vladivostok" | "Asia/Yakutsk" | "Asia/Yangon" | "Asia/Yekaterinburg" | "Asia/Yerevan" | "Atlantic/Azores" | "Atlantic/Bermuda" | "Atlantic/Canary" | "Atlantic/Cape_Verde" | "Atlantic/Faeroe" | "Atlantic/Faroe" | "Atlantic/Jan_Mayen" | "Atlantic/Madeira" | "Atlantic/Reykjavik" | "Atlantic/South_Georgia" | "Atlantic/St_Helena" | "Atlantic/Stanley" | "Australia/ACT" | "Australia/Adelaide" | "Australia/Brisbane" | "Australia/Broken_Hill" | "Australia/Canberra" | "Australia/Currie" | "Australia/Darwin" | "Australia/Eucla" | "Australia/Hobart" | "Australia/LHI" | "Australia/Lindeman" | "Australia/Lord_Howe" | "Australia/Melbourne" | "Australia/NSW" | "Australia/North" | "Australia/Perth" | "Australia/Queensland" | "Australia/South" | "Australia/Sydney" | "Australia/Tasmania" | "Australia/Victoria" | "Australia/West" | "Australia/Yancowinna" | "Brazil/Acre" | "Brazil/DeNoronha" | "Brazil/East" | "Brazil/West" | "CET" | "CST6CDT" | "Canada/Atlantic" | "Canada/Central" | "Canada/Eastern" | "Canada/Mountain" | "Canada/Newfoundland" | "Canada/Pacific" | "Canada/Saskatchewan" | "Canada/Yukon" | "Chile/Continental" | "Chile/EasterIsland" | "Cuba" | "EET" | "EST" | "EST5EDT" | "Egypt" | "Eire" | "Etc/GMT" | "Etc/GMT+0" | "Etc/GMT+1" | "Etc/GMT+10" | "Etc/GMT+11" | "Etc/GMT+12" | "Etc/GMT+2" | "Etc/GMT+3" | "Etc/GMT+4" | "Etc/GMT+5" | "Etc/GMT+6" | "Etc/GMT+7" | "Etc/GMT+8" | "Etc/GMT+9" | "Etc/GMT-0" | "Etc/GMT-1" | "Etc/GMT-10" | "Etc/GMT-11" | "Etc/GMT-12" | "Etc/GMT-13" | "Etc/GMT-14" | "Etc/GMT-2" | "Etc/GMT-3" | "Etc/GMT-4" | "Etc/GMT-5" | "Etc/GMT-6" | "Etc/GMT-7" | "Etc/GMT-8" | "Etc/GMT-9" | "Etc/GMT0" | "Etc/Greenwich" | "Etc/UCT" | "Etc/UTC" | "Etc/Universal" | "Etc/Zulu" | "Europe/Amsterdam" | "Europe/Andorra" | "Europe/Astrakhan" | "Europe/Athens" | "Europe/Belfast" | "Europe/Belgrade" | "Europe/Berlin" | "Europe/Bratislava" | "Europe/Brussels" | "Europe/Bucharest" | "Europe/Budapest" | "Europe/Busingen" | "Europe/Chisinau" | "Europe/Copenhagen" | "Europe/Dublin" | "Europe/Gibraltar" | "Europe/Guernsey" | "Europe/Helsinki" | "Europe/Isle_of_Man" | "Europe/Istanbul" | "Europe/Jersey" | "Europe/Kaliningrad" | "Europe/Kiev" | "Europe/Kirov" | "Europe/Kyiv" | "Europe/Lisbon" | "Europe/Ljubljana" | "Europe/London" | "Europe/Luxembourg" | "Europe/Madrid" | "Europe/Malta" | "Europe/Mariehamn" | "Europe/Minsk" | "Europe/Monaco" | "Europe/Moscow" | "Europe/Nicosia" | "Europe/Oslo" | "Europe/Paris" | "Europe/Podgorica" | "Europe/Prague" | "Europe/Riga" | "Europe/Rome" | "Europe/Samara" | "Europe/San_Marino" | "Europe/Sarajevo" | "Europe/Saratov" | "Europe/Simferopol" | "Europe/Skopje" | "Europe/Sofia" | "Europe/Stockholm" | "Europe/Tallinn" | "Europe/Tirane" | "Europe/Tiraspol" | "Europe/Ulyanovsk" | "Europe/Uzhgorod" | "Europe/Vaduz" | "Europe/Vatican" | "Europe/Vienna" | "Europe/Vilnius" | "Europe/Volgograd" | "Europe/Warsaw" | "Europe/Zagreb" | "Europe/Zaporozhye" | "Europe/Zurich" | "GB" | "GB-Eire" | "GMT" | "GMT+0" | "GMT-0" | "GMT0" | "Greenwich" | "HST" | "Hongkong" | "Iceland" | "Indian/Antananarivo" | "Indian/Chagos" | "Indian/Christmas" | "Indian/Cocos" | "Indian/Comoro" | "Indian/Kerguelen" | "Indian/Mahe" | "Indian/Maldives" | "Indian/Mauritius" | "Indian/Mayotte" | "Indian/Reunion" | "Iran" | "Israel" | "Jamaica" | "Japan" | "Kwajalein" | "Libya" | "MET" | "MST" | "MST7MDT" | "Mexico/BajaNorte" | "Mexico/BajaSur" | "Mexico/General" | "NZ" | "NZ-CHAT" | "Navajo" | "PRC" | "PST8PDT" | "Pacific/Apia" | "Pacific/Auckland" | "Pacific/Bougainville" | "Pacific/Chatham" | "Pacific/Chuuk" | "Pacific/Easter" | "Pacific/Efate" | "Pacific/Enderbury" | "Pacific/Fakaofo" | "Pacific/Fiji" | "Pacific/Funafuti" | "Pacific/Galapagos" | "Pacific/Gambier" | "Pacific/Guadalcanal" | "Pacific/Guam" | "Pacific/Honolulu" | "Pacific/Johnston" | "Pacific/Kanton" | "Pacific/Kiritimati" | "Pacific/Kosrae" | "Pacific/Kwajalein" | "Pacific/Majuro" | "Pacific/Marquesas" | "Pacific/Midway" | "Pacific/Nauru" | "Pacific/Niue" | "Pacific/Norfolk" | "Pacific/Noumea" | "Pacific/Pago_Pago" | "Pacific/Palau" | "Pacific/Pitcairn" | "Pacific/Pohnpei" | "Pacific/Ponape" | "Pacific/Port_Moresby" | "Pacific/Rarotonga" | "Pacific/Saipan" | "Pacific/Samoa" | "Pacific/Tahiti" | "Pacific/Tarawa" | "Pacific/Tongatapu" | "Pacific/Truk" | "Pacific/Wake" | "Pacific/Wallis" | "Pacific/Yap" | "Poland" | "Portugal" | "ROC" | "ROK" | "Singapore" | "Turkey" | "UCT" | "US/Alaska" | "US/Aleutian" | "US/Arizona" | "US/Central" | "US/East-Indiana" | "US/Eastern" | "US/Hawaii" | "US/Indiana-Starke" | "US/Michigan" | "US/Mountain" | "US/Pacific" | "US/Samoa" | "UTC" | "Universal" | "W-SU" | "WET" | "Zulu"; + ToleratedHashEntry: { + /** Format: uuid */ + id: string; + alternate_hash: string; + baseline_hash: string; + reason: string; + /** Format: double */ + diff_percentage: number | null; + /** Format: date-time */ + created_at: string; + /** Format: uuid */ + source_run_id: string | null; + }; + /** + * @description * `approved` - approved + * * `needs_approval` - needs_approval + * * `do_not_use` - do_not_use + * @enum {string} + */ + ToolApprovalUpdateApprovalStateEnum: "approved" | "needs_approval" | "do_not_use"; + /** + * @description * `disabled` - disabled + * * `toolbar` - toolbar + * @enum {string} + */ + ToolbarModeEnum: "disabled" | "toolbar"; + TopPage: { + /** @description Host for the page, if recorded. */ + host: string; + /** @description URL path. */ + path: string; + /** @description Unique visitors in the period. */ + visitors: number; + /** @description Period-over-period change in visitors, null when not meaningful. */ + change: components["schemas"]["WoWChange"] | null; + }; + TopSource: { + /** @description Initial referring domain. */ + name: string; + /** @description Unique visitors from this source. */ + visitors: number; + /** @description Period-over-period change in visitors, null when not meaningful. */ + change: components["schemas"]["WoWChange"] | null; + }; + /** TraceNeighborsQuery */ + TraceNeighborsQuery: { + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Filtersupporttraces + * @default null + */ + filterSupportTraces: boolean | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "TraceNeighborsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** @default null */ + response: components["schemas"]["TraceNeighborsQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Timestamp + * @description Timestamp of the current trace to find neighbors for + */ + timestamp: string; + /** + * Traceid + * @description ID of the current trace to find neighbors for + */ + traceId: string; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** TraceNeighborsQueryResponse */ + TraceNeighborsQueryResponse: { + /** + * Newertimestamp + * @description Timestamp of the newer trace + * @default null + */ + newerTimestamp: string | null; + /** + * Newertraceid + * @description ID of the newer trace (chronologically after current) + * @default null + */ + newerTraceId: string | null; + /** + * Oldertimestamp + * @description Timestamp of the older trace + * @default null + */ + olderTimestamp: string | null; + /** + * Oldertraceid + * @description ID of the older trace (chronologically before current) + * @default null + */ + olderTraceId: string | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** TraceQuery */ + TraceQuery: { + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "TraceQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** @default null */ + response: components["schemas"]["TraceQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** Traceid */ + traceId: string; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** TraceQueryResponse */ + TraceQueryResponse: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["LLMTrace"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + TraceReview: { + /** Format: uuid */ + readonly id: string; + /** @description Trace ID for the review. */ + readonly trace_id: string; + /** + * Format: uri + * @description Absolute URL to the trace this review is attached to. + */ + readonly trace_url: string; + /** @description Optional comment or reasoning for the review. */ + readonly comment: string | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + readonly created_by: components["schemas"]["UserBasic"]; + /** @description User who last saved this review. */ + readonly reviewed_by: components["schemas"]["UserBasic"]; + /** @description Saved scorer values for this review. */ + readonly scores: components["schemas"]["TraceReviewScore"][]; + readonly team: number; + }; + TraceReviewCreate: { + /** @description Trace ID for the review. Only one active review can exist per trace and team. */ + trace_id: string; + /** @description Optional comment or reasoning for the review. */ + comment?: string | null; + /** @description Full desired score set for this review. Omit scorers you want to leave blank. */ + scores?: components["schemas"]["TraceReviewScoreWrite"][]; + /** + * Format: uuid + * @description Optional review queue ID for queue-context saves. When provided, the matching pending queue item is cleared after the review is saved. If omitted, any pending queue item for the same trace is cleared. + */ + queue_id?: string | null; + }; + TraceReviewScore: { + /** Format: uuid */ + readonly id: string; + /** + * Format: uuid + * @description Stable scorer definition ID. + */ + readonly definition_id: string; + /** @description Human-readable scorer name. */ + readonly definition_name: string; + /** @description Scorer kind for this saved score. */ + readonly definition_kind: string; + /** @description Whether the scorer is currently archived. */ + readonly definition_archived: boolean; + /** + * Format: uuid + * @description Immutable scorer version ID used to validate this score. + */ + readonly definition_version_id: string; + /** @description Immutable scorer version number used to validate this score. */ + readonly definition_version: number; + /** @description Immutable scorer configuration snapshot used to validate this score. */ + readonly definition_config: components["schemas"]["ScoreDefinitionConfig"]; + /** @description Categorical option keys selected for this score. */ + readonly categorical_values: string[] | null; + /** Format: decimal */ + readonly numeric_value: string | null; + readonly boolean_value: boolean | null; + /** Format: date-time */ + readonly created_at: string; + /** Format: date-time */ + readonly updated_at: string | null; + }; + TraceReviewScoreWrite: { + /** + * Format: uuid + * @description Stable scorer definition ID. + */ + definition_id: string; + /** + * Format: uuid + * @description Optional immutable scorer version ID. Defaults to the scorer's current version. + */ + definition_version_id?: string | null; + /** @description Categorical option keys selected for this score. */ + categorical_values?: string[] | null; + /** + * Format: decimal + * @description Numeric value selected for this score. + */ + numeric_value?: string | null; + /** @description Boolean value selected for this score. */ + boolean_value?: boolean | null; + }; + /** TraceSpansAggregationQuery */ + TraceSpansAggregationQuery: { + /** + * @description Optional comparison window — when `compare` is true, the runner returns an extra `compare` result set. + * @default null + */ + compareFilter: components["schemas"]["CompareFilter"] | null; + dateRange: components["schemas"]["DateRange"]; + /** @default null */ + filterGroup: components["schemas"]["PropertyGroupFilter"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "TraceSpansAggregationQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["TraceSpansAggregationQueryResponse"] | null; + /** + * Servicenames + * @default null + */ + serviceNames: string[] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** TraceSpansAggregationQueryResponse */ + TraceSpansAggregationQueryResponse: { + /** + * Compare + * @description Result rows for the comparison period when `compareFilter.compare` is true. + * @default null + */ + compare: components["schemas"]["AggregatedSpanRow"][] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["AggregatedSpanRow"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** TraceSpansQuery */ + TraceSpansQuery: { + /** + * After + * @description Cursor for fetching the next page of results + * @default null + */ + after: string | null; + dateRange: components["schemas"]["DateRange"]; + /** @default null */ + filterGroup: components["schemas"]["PropertyGroupFilter"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "TraceSpansQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** @default null */ + orderBy: components["schemas"]["LogsOrderBy"] | null; + /** + * Prefetchspans + * @description Prefetch up to this many spans per trace and include them in results + * @default null + */ + prefetchSpans: number | null; + /** @default null */ + response: components["schemas"]["TraceSpansQueryResponse"] | null; + /** + * Rootspans + * @default null + */ + rootSpans: boolean | null; + /** + * Servicenames + * @default null + */ + serviceNames: string[] | null; + /** + * Statuscodes + * @default null + */ + statusCodes: number[] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Traceid + * @default null + */ + traceId: string | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** TraceSpansQueryResponse */ + TraceSpansQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Nextcursor + * @description Cursor for fetching the next page of results + * @default null + */ + nextCursor: string | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** TraceSpansTreeQuery */ + TraceSpansTreeQuery: { + /** + * @description Optional comparison window — when `compare` is true, the runner returns an extra `compare` result set. + * @default null + */ + compareFilter: components["schemas"]["CompareFilter"] | null; + dateRange: components["schemas"]["DateRange"]; + /** @default null */ + filterGroup: components["schemas"]["PropertyGroupFilter"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "TraceSpansTreeQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["TraceSpansTreeQueryResponse"] | null; + /** + * Servicenames + * @default null + */ + serviceNames: string[] | null; + /** + * Spanname + * @description Span name to scope the matched trace set. Required because the `(trace_id, parent_span_id)` self-join is prohibitive without bounding the matched traces — at high name cardinality the query becomes unsafe to run. + */ + spanName: string; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** TraceSpansTreeQueryResponse */ + TraceSpansTreeQueryResponse: { + /** + * Compare + * @description Result rows for the comparison period when `compareFilter.compare` is true. + * @default null + */ + compare: components["schemas"]["SpanTreeNode"][] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["SpanTreeNode"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** TracesQuery */ + TracesQuery: { + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Filtersupporttraces + * @default null + */ + filterSupportTraces: boolean | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Groupkey + * @default null + */ + groupKey: string | null; + /** + * Grouptypeindex + * @default null + */ + groupTypeIndex: number | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "TracesQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * Personid + * @description Person who performed the event + * @default null + */ + personId: string | null; + /** + * Properties + * @description Properties configurable in the interface + * @default null + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | null; + /** + * Randomorder + * @description Use random ordering instead of timestamp DESC. Useful for representative sampling to avoid recency bias. + * @default null + */ + randomOrder: boolean | null; + /** @default null */ + response: components["schemas"]["TracesQueryResponse"] | null; + /** + * Showcolumnconfigurator + * @default null + */ + showColumnConfigurator: boolean | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** TracesQueryResponse */ + TracesQueryResponse: { + /** + * Columns + * @default null + */ + columns: string[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["LLMTrace"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** @description Serializer for individual transcript segments from AssemblyAI */ + TranscriptSegment: { + /** + * Format: double + * @description Milliseconds from recording start + */ + timestamp?: number | null; + speaker?: string | null; + text: string; + /** + * Format: double + * @description Transcription confidence score + */ + confidence?: number | null; + /** @description Whether this is the final version */ + is_final?: boolean | null; + }; + TranslateRequest: { + /** @description The text to translate */ + text: string; + /** + * @description Target language code (default: 'en' for English) + * @default en + */ + target_language: string; + }; + /** @description Insight enriched with view-count and recent-viewer fields, used by the trending action. */ + TrendingInsight: { + readonly id: number; + readonly short_id: string; + name?: string | null; + derived_name?: string | null; + query?: unknown; + readonly dashboards: number[]; + readonly dashboard_tiles: components["schemas"]["DashboardTileBasic"][]; + description?: string | null; + /** Format: date-time */ + readonly last_refresh: string | null; + readonly refreshing: boolean; + tags?: unknown[]; + /** Format: date-time */ + readonly updated_at: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string | null; + /** Format: date-time */ + last_modified_at?: string; + favorited?: boolean; + /** @description The effective access level the user has for this object */ + readonly user_access_level: string | null; + /** Format: date-time */ + readonly last_viewed_at: string | null; + /** @description Number of distinct viewers in the time window. Higher values indicate insights that more people in the project actively look at, which is a strong proxy for which insights matter. */ + readonly view_count: number; + /** @description Up to 3 of the most recent users who viewed this insight in the time window. */ + readonly viewers: components["schemas"]["UserBasic"][]; + /** @description User who last modified this insight, or null if never modified after creation. */ + readonly last_modified_by: components["schemas"]["UserBasic"]; + }; + /** TrendsAlertConfig */ + TrendsAlertConfig: { + /** + * Check Ongoing Interval + * @description When true, evaluate the current (still incomplete) time interval in addition to completed ones. + * @default null + */ + check_ongoing_interval: boolean | null; + /** + * Series Index + * @description Zero-based index of the series in the insight's query to monitor. + */ + series_index: number; + /** + * Type + * @default TrendsAlertConfig + * @constant + */ + type: "TrendsAlertConfig"; + }; + /** TrendsFilter */ + TrendsFilter: { + /** @default numeric */ + aggregationAxisFormat: components["schemas"]["AggregationAxisFormat"] | null; + /** + * Aggregationaxispostfix + * @default null + */ + aggregationAxisPostfix: string | null; + /** + * Aggregationaxisprefix + * @default null + */ + aggregationAxisPrefix: string | null; + /** + * Breakdown Histogram Bin Count + * @default null + */ + breakdown_histogram_bin_count: number | null; + /** + * Confidencelevel + * @default null + */ + confidenceLevel: number | null; + /** + * Decimalplaces + * @default null + */ + decimalPlaces: number | null; + /** + * @description detailed results table + * @default null + */ + detailedResultsAggregationType: components["schemas"]["DetailedResultsAggregationType"] | null; + /** @default ActionsLineGraph */ + display: components["schemas"]["ChartDisplayType"] | null; + /** + * Excludeboxplotoutliers + * @default true + */ + excludeBoxPlotOutliers: boolean | null; + /** + * Formula + * @default null + */ + formula: string | null; + /** + * Formulanodes + * @description List of formulas with optional custom names. Takes precedence over formula/formulas if set. + * @default null + */ + formulaNodes: components["schemas"]["TrendsFormulaNode"][] | null; + /** + * Formulas + * @default null + */ + formulas: string[] | null; + /** + * Goallines + * @description Goal Lines + * @default null + */ + goalLines: components["schemas"]["GoalLine"][] | null; + /** + * Hiddenlegendindexes + * @default null + */ + hiddenLegendIndexes: number[] | null; + /** + * Hideweekends + * @default false + */ + hideWeekends: boolean | null; + /** + * Mindecimalplaces + * @default null + */ + minDecimalPlaces: number | null; + /** + * Movingaverageintervals + * @default null + */ + movingAverageIntervals: number | null; + /** + * @description Wether result datasets are associated by their values or by their order. + * @default value + */ + resultCustomizationBy: components["schemas"]["ResultCustomizationBy"] | null; + /** + * Resultcustomizations + * @description Customizations for the appearance of result datasets. + * @default null + */ + resultCustomizations: { + [key: string]: components["schemas"]["ResultCustomizationByValue"]; + } | { + [key: string]: components["schemas"]["ResultCustomizationByPosition"]; + } | null; + /** + * Showalertthresholdlines + * @default false + */ + showAlertThresholdLines: boolean | null; + /** + * Showconfidenceintervals + * @default null + */ + showConfidenceIntervals: boolean | null; + /** + * Showlabelsonseries + * @default null + */ + showLabelsOnSeries: boolean | null; + /** + * Showlegend + * @default false + */ + showLegend: boolean | null; + /** + * Showmovingaverage + * @default null + */ + showMovingAverage: boolean | null; + /** + * Showmultipleyaxes + * @default false + */ + showMultipleYAxes: boolean | null; + /** + * Showpercentstackview + * @default false + */ + showPercentStackView: boolean | null; + /** + * Showtrendlines + * @default null + */ + showTrendLines: boolean | null; + /** + * Showvaluesonseries + * @default false + */ + showValuesOnSeries: boolean | null; + /** + * Smoothingintervals + * @default 1 + */ + smoothingIntervals: number | null; + /** @default linear */ + yAxisScaleType: components["schemas"]["YAxisScaleType"] | null; + }; + /** TrendsFormulaNode */ + TrendsFormulaNode: { + /** + * Custom Name + * @description Optional user-defined name for the formula + * @default null + */ + custom_name: string | null; + /** Formula */ + formula: string; + }; + /** TrendsQuery */ + TrendsQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation + * @default null + */ + aggregation_group_type_index: number | null; + /** + * @description Breakdown of the events and actions + * @default null + */ + breakdownFilter: components["schemas"]["BreakdownFilter"] | null; + /** + * @description Compare to date range + * @default null + */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Conversiongoal + * @description Whether we should be comparing against a specific conversion goal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization + * @default null + */ + dataColorTheme: number | null; + /** + * @description Date range for the query + * @default null + */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Filtertestaccounts + * @description Exclude internal and test users by applying the respective filters + * @default false + */ + filterTestAccounts: boolean | null; + /** + * @description Granularity of the response. Can be one of `hour`, `day`, `week` or `month` + * @default day + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "TrendsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Properties + * @description Property filters for all series + * @default [] + */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["ElementPropertyFilter"] | components["schemas"]["EventMetadataPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"] | components["schemas"]["RecordingPropertyFilter"] | components["schemas"]["LogEntryPropertyFilter"] | components["schemas"]["GroupPropertyFilter"] | components["schemas"]["FeaturePropertyFilter"] | components["schemas"]["FlagPropertyFilter"] | components["schemas"]["HogQLPropertyFilter"] | components["schemas"]["EmptyPropertyFilter"] | components["schemas"]["DataWarehousePropertyFilter"] | components["schemas"]["DataWarehousePersonPropertyFilter"] | components["schemas"]["ErrorTrackingIssueFilter"] | components["schemas"]["LogPropertyFilter"] | components["schemas"]["SpanPropertyFilter"] | components["schemas"]["RevenueAnalyticsPropertyFilter"] | components["schemas"]["WorkflowVariablePropertyFilter"])[] | components["schemas"]["PropertyGroupFilter"] | null; + /** @default null */ + response: components["schemas"]["TrendsQueryResponse"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** + * Series + * @description Events and actions to include + */ + series: (components["schemas"]["GroupNode"] | components["schemas"]["EventsNode"] | components["schemas"]["ActionsNode"] | components["schemas"]["DataWarehouseNode"])[]; + /** + * @description Tags that will be added to the Query log comment + * @default null + */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * @description Properties specific to the trends insight + * @default null + */ + trendsFilter: components["schemas"]["TrendsFilter"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** TrendsQueryResponse */ + TrendsQueryResponse: { + /** + * Boxplot Data + * @default null + */ + boxplot_data: components["schemas"]["BoxPlotDatum"][] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @description Wether more breakdown values are available. + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: { + [key: string]: unknown; + }[]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + Trigger: { + readonly job_type: string; + readonly job_id: string; + readonly payload: unknown; + }; + /** + * @description * `git` - Git + * * `redeploy` - Redeploy + * * `rollback` - Rollback + * * `seed` - Seed + * @enum {string} + */ + TriggerKindEnum: "git" | "redeploy" | "rollback" | "seed"; + UploadTarget: { + content_hash: string; + url: string; + fields: { + [key: string]: string; + }; + }; + /** + * UrlMatching + * @enum {unknown} + */ + UrlMatching: "contains" | "exact" | "regex" | null; + /** UsageMetric */ + UsageMetric: { + /** + * Change From Previous Pct + * @default null + */ + change_from_previous_pct: number | null; + display: components["schemas"]["UsageMetricDisplay"]; + format: components["schemas"]["UsageMetricFormat"]; + /** Id */ + id: string; + /** Interval */ + interval: number; + /** Name */ + name: string; + /** Previous */ + previous: number; + /** + * Timeseries + * @description Daily values over the current interval period. Only populated when display is 'sparkline'. + * @default null + */ + timeseries: number[] | null; + /** + * Timeseries Labels + * @description ISO date strings for sparkline tooltip labels. Only populated when display is 'sparkline'. + * @default null + */ + timeseries_labels: string[] | null; + /** Value */ + value: number; + }; + /** + * UsageMetricDisplay + * @enum {string} + */ + UsageMetricDisplay: "number" | "sparkline"; + /** + * UsageMetricFormat + * @enum {string} + */ + UsageMetricFormat: "numeric" | "currency"; + /** UsageMetricsQuery */ + UsageMetricsQuery: { + /** + * Group Key + * @description Group key. Required with group_type_index for group queries. + * @default null + */ + group_key: string | null; + /** + * Group Type Index + * @description Group type index. Required with group_key for group queries. + * @default null + */ + group_type_index: number | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "UsageMetricsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Person Id + * @description Person ID to fetch metrics for. Mutually exclusive with group parameters. + * @default null + */ + person_id: string | null; + /** @default null */ + response: components["schemas"]["UsageMetricsQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** UsageMetricsQueryResponse */ + UsageMetricsQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["UsageMetric"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + User: { + /** Format: date-time */ + readonly date_joined: string; + /** Format: uuid */ + readonly uuid: string; + readonly distinct_id: string | null; + first_name?: string; + last_name?: string; + /** + * Email address + * Format: email + */ + email: string; + /** + * Pending email address awaiting verification + * Format: email + */ + readonly pending_email: string | null; + readonly is_email_verified: boolean | null; + /** @description Map of notification preferences. Keys include `plugin_disabled`, `all_weekly_report_disabled`, `project_weekly_digest_disabled`, `error_tracking_weekly_digest_project_enabled`, `web_analytics_weekly_digest_project_enabled`, `organization_member_join_email_disabled`, `data_pipeline_error_threshold` (number between 0.0 and 1.0), and other per-topic switches. Values are either booleans, or (for per-project/per-resource keys) a map of IDs to booleans. Only the keys you send are updated — other preferences stay as-is. */ + notification_settings?: { + [key: string]: unknown; + }; + /** @description Whether PostHog should anonymize events captured for this user when identified. */ + anonymize_data?: boolean | null; + allow_impersonation?: boolean | null; + toolbar_mode?: components["schemas"]["ToolbarModeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + readonly has_password: boolean; + readonly id: number; + /** + * Staff status + * @description Designates whether the user can log into this admin site. + */ + is_staff?: boolean; + readonly is_impersonated: boolean | null; + readonly is_impersonated_until: string | null; + readonly is_impersonated_read_only: boolean | null; + readonly sensitive_session_expires_at: string | null; + readonly team: components["schemas"]["TeamBasic"]; + readonly organization: components["schemas"]["Organization"]; + readonly organizations: components["schemas"]["OrganizationBasic"][]; + set_current_organization?: string; + set_current_team?: string; + password: string; + /** @description The user's current password. Required when changing `password` if the user already has a usable password set. */ + current_password?: string; + events_column_config?: unknown; + readonly is_2fa_enabled: boolean; + readonly has_social_auth: boolean; + readonly has_sso_enforcement: boolean; + has_seen_product_intro_for?: unknown; + readonly scene_personalisation: components["schemas"]["ScenePersonalisationBasic"][]; + theme_mode?: components["schemas"]["ThemeModeEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + hedgehog_config?: unknown; + allow_sidebar_suggestions?: boolean | null; + shortcut_position?: components["schemas"]["ShortcutPositionEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + role_at_organization?: components["schemas"]["RoleAtOrganizationEnum"]; + /** @description Whether passkeys are enabled for 2FA authentication. Users can disable this to use only TOTP for 2FA while keeping passkeys for login. */ + passkeys_enabled_for_2fa?: boolean | null; + /** Format: date-time */ + readonly onboarding_skipped_at: string | null; + readonly onboarding_skipped_reason: components["schemas"]["OnboardingSkippedReasonEnum"] | components["schemas"]["NullEnum"]; + /** Format: uuid */ + readonly onboarding_skipped_organization_id: string | null; + /** Format: uuid */ + readonly onboarding_delegated_to_invite: string | null; + /** + * Format: uuid + * @description Organization ID of the pending delegation invite, if any. Used by the frontend to scope the 'waiting for teammate' UI to the org where delegation was initiated. + */ + readonly onboarding_delegated_to_organization_id: string | null; + /** Format: date-time */ + readonly onboarding_delegation_accepted_at: string | null; + readonly is_organization_first_user: boolean | null; + /** @description Real-time notification types that currently have a live dispatch site. Drives the in-app notifications settings UI. Read-only. */ + readonly active_realtime_notification_types: string[]; + readonly pending_invites: components["schemas"]["PendingInvite"][]; + }; + UserBasic: { + readonly id: number; + /** Format: uuid */ + readonly uuid: string; + distinct_id?: string | null; + first_name?: string; + last_name?: string; + /** + * Email address + * Format: email + */ + email: string; + is_email_verified?: boolean | null; + readonly hedgehog_config: { + [key: string]: unknown; + } | null; + role_at_organization?: components["schemas"]["RoleAtOrganizationEnum"] | components["schemas"]["BlankEnum"] | components["schemas"]["NullEnum"]; + }; + UserBasicInfo: { + id: number; + first_name: string; + email: string; + }; + /** UserBasicType */ + UserBasicType: { + /** Distinct Id */ + distinct_id: string; + /** Email */ + email: string; + /** First Name */ + first_name: string; + /** @default null */ + hedgehog_config: components["schemas"]["MinimalHedgehogConfig"] | null; + /** Id */ + id: number; + /** + * Is Email Verified + * @default null + */ + is_email_verified: unknown; + /** + * Last Name + * @default null + */ + last_name: string | null; + /** + * Role At Organization + * @default null + */ + role_at_organization: string | null; + /** Uuid */ + uuid: string; + }; + UserBlastRadiusRequest: { + /** @description The release condition to evaluate */ + condition: { + [key: string]: unknown; + }; + /** @description Group type index for group-based flags (null for person-based flags) */ + group_type_index?: number | null; + }; + UserBlastRadiusResponse: { + /** @description Number of entities matching the condition (users or groups depending on group_type_index) */ + affected: number; + /** @description Total number of entities of this type in the project */ + total: number; + }; + UserGitHubAccount: { + /** @description GitHub account type for the installation (e.g. User or Organization). */ + type?: string | null; + /** @description GitHub login or organization name tied to the installation. */ + name?: string | null; + }; + UserGitHubIntegrationItem: { + /** + * Format: uuid + * @description PostHog UserIntegration row id. + */ + id: string; + /** @description Integration kind; always `github` for this API. */ + kind: string; + /** @description GitHub App installation id. */ + installation_id: string; + /** @description Repository selection mode from GitHub (e.g. selected or all). */ + repository_selection?: string | null; + /** @description Installation account metadata from GitHub. */ + account?: components["schemas"]["UserGitHubAccount"] | null; + /** @description True when this installation id matches a team-level GitHub integration on the active project. */ + uses_shared_installation: boolean; + /** + * Format: date-time + * @description When this integration row was created. + */ + created_at: string; + }; + UserGitHubIntegrationListResponse: { + /** @description GitHub personal integrations for the authenticated user. */ + results: components["schemas"]["UserGitHubIntegrationItem"][]; + }; + UserGitHubLinkStartRequest: { + /** @description Optional team/project id (e.g. PostHog Code); web UI uses the session's current team. */ + team_id?: number | null; + /** @description Optional client hint (e.g. posthog_code) for return routing after OAuth. */ + connect_from?: string; + }; + UserGitHubLinkStartResponse: { + /** @description URL to open in the browser to install or authorize the GitHub App for this user. */ + install_url: string; + /** @description OAuth or install flow used for this GitHub connection. */ + connect_flow: string; + }; + UserInterview: { + /** Format: uuid */ + readonly id: string; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + interviewee_emails?: string[]; + readonly transcript: string; + summary?: string; + /** Format: uri */ + audio: string; + }; + /** + * @description * `valid` - Valid + * * `invalid` - Invalid + * * `expired` - Expired + * * `stale` - Stale (resource changed) + * @enum {string} + */ + ValidationStatusEnum: "valid" | "invalid" | "expired" | "stale"; + /** VectorSearchQuery */ + VectorSearchQuery: { + /** Embedding */ + embedding: number[]; + /** + * Embeddingversion + * @default null + */ + embeddingVersion: number | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "VectorSearchQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** @default null */ + response: components["schemas"]["VectorSearchQueryResponse"] | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** VectorSearchQueryResponse */ + VectorSearchQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["VectorSearchResponseItem"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** VectorSearchResponseItem */ + VectorSearchResponseItem: { + /** Distance */ + distance: number; + /** Id */ + id: string; + }; + /** + * @description * `summary` - summary + * * `stack` - stack + * * `raw` - raw + * @enum {string} + */ + VerbosityEnum: "summary" | "stack" | "raw"; + ViewLink: { + /** Format: uuid */ + readonly id: string; + deleted?: boolean | null; + readonly created_by: components["schemas"]["UserBasic"]; + /** Format: date-time */ + readonly created_at: string; + source_table_name: string; + source_table_key: string; + joining_table_name: string; + joining_table_key: string; + field_name: string; + configuration?: unknown; + }; + ViewLinkValidation: { + joining_table_name: string; + joining_table_key: string; + source_table_name: string; + source_table_key: string; + }; + /** VizSpecificOptions */ + VizSpecificOptions: { + /** @default null */ + ActionsPie: components["schemas"]["ActionsPie"] | null; + /** @default null */ + RETENTION: components["schemas"]["RETENTION"] | null; + }; + /** VolumeBucket */ + VolumeBucket: { + /** Label */ + label: string; + /** Value */ + value: number; + }; + WarehouseStatusResponse: { + team_name: string; + state: components["schemas"]["WarehouseStatusResponseStateEnum"]; + status_message: string; + /** Format: date-time */ + ready_at: string | null; + /** Format: date-time */ + failed_at: string | null; + }; + /** + * @description * `pending` - pending + * * `provisioning` - provisioning + * * `ready` - ready + * * `failed` - failed + * * `deleting` - deleting + * * `deleted` - deleted + * @enum {string} + */ + WarehouseStatusResponseStateEnum: "pending" | "provisioning" | "ready" | "failed" | "deleting" | "deleted"; + /** WebAnalyticsExternalSummaryQuery */ + WebAnalyticsExternalSummaryQuery: { + dateRange: components["schemas"]["DateRange"]; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "WebAnalyticsExternalSummaryQuery"; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"])[]; + /** @default null */ + response: components["schemas"]["WebAnalyticsExternalSummaryQueryResponse"] | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** WebAnalyticsExternalSummaryQueryResponse */ + WebAnalyticsExternalSummaryQueryResponse: { + /** Data */ + data: { + [key: string]: unknown; + }; + /** @default null */ + error: components["schemas"]["ExternalQueryError"] | null; + status: components["schemas"]["ExternalQueryStatus"]; + }; + /** + * WebAnalyticsItemKind + * @enum {string} + */ + WebAnalyticsItemKind: "unit" | "duration_s" | "percentage" | "currency"; + /** + * WebAnalyticsOrderByDirection + * @enum {string} + */ + WebAnalyticsOrderByDirection: "ASC" | "DESC"; + /** + * WebAnalyticsOrderByFields + * @enum {string} + */ + WebAnalyticsOrderByFields: "Visitors" | "Views" | "AvgTimeOnPage" | "Clicks" | "BounceRate" | "AverageScrollPercentage" | "ScrollGt80Percentage" | "TotalConversions" | "UniqueConversions" | "ConversionRate" | "ConvertingUsers" | "RageClicks" | "DeadClicks" | "Errors"; + /** WebAnalyticsSampling */ + WebAnalyticsSampling: { + /** + * Enabled + * @default null + */ + enabled: boolean | null; + /** @default null */ + forceSamplingRate: components["schemas"]["SamplingRate"] | null; + }; + /** @description Serializer for the exposed /api/web_experiments endpoint, to be used in posthog-js and for headless APIs. */ + WebExperimentsAPI: { + readonly id: number; + name: string; + /** Format: date-time */ + created_at?: string; + readonly feature_flag_key: string; + /** + * @description Variants for the web experiment. Example: + * + * { + * "control": { + * "transforms": [ + * { + * "text": "Here comes Superman!", + * "html": "", + * "selector": "#page > #body > .header h1" + * } + * ], + * "conditions": "None", + * "rollout_percentage": 50 + * }, + * } + */ + variants: unknown; + }; + /** WebExternalClicksTableQuery */ + WebExternalClicksTableQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation - not used in Web Analytics but required for type compatibility + * @default null + */ + aggregation_group_type_index: number | null; + /** @default null */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Conversiongoal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility + * @default null + */ + dataColorTheme: number | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Dopathcleaning + * @default null + */ + doPathCleaning: boolean | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Includerevenue + * @default null + */ + includeRevenue: boolean | null; + /** + * @description Interval for date range calculation (affects date_to rounding for hour vs day ranges) + * @default null + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "WebExternalClicksTableQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Orderby + * @default null + */ + orderBy: (components["schemas"]["WebAnalyticsOrderByFields"] | components["schemas"]["WebAnalyticsOrderByDirection"])[] | null; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"])[]; + /** @default null */ + response: components["schemas"]["WebExternalClicksTableQueryResponse"] | null; + /** @default null */ + sampling: components["schemas"]["WebAnalyticsSampling"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** + * Stripqueryparams + * @default null + */ + stripQueryParams: boolean | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Usesessionstable + * @default null + */ + useSessionsTable: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** WebExternalClicksTableQueryResponse */ + WebExternalClicksTableQueryResponse: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** WebGoalsQuery */ + WebGoalsQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation - not used in Web Analytics but required for type compatibility + * @default null + */ + aggregation_group_type_index: number | null; + /** @default null */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Conversiongoal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility + * @default null + */ + dataColorTheme: number | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Dopathcleaning + * @default null + */ + doPathCleaning: boolean | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Includerevenue + * @default null + */ + includeRevenue: boolean | null; + /** + * @description Interval for date range calculation (affects date_to rounding for hour vs day ranges) + * @default null + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "WebGoalsQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Orderby + * @default null + */ + orderBy: (components["schemas"]["WebAnalyticsOrderByFields"] | components["schemas"]["WebAnalyticsOrderByDirection"])[] | null; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"])[]; + /** @default null */ + response: components["schemas"]["WebGoalsQueryResponse"] | null; + /** @default null */ + sampling: components["schemas"]["WebAnalyticsSampling"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Usesessionstable + * @default null + */ + useSessionsTable: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** WebGoalsQueryResponse */ + WebGoalsQueryResponse: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + }; + /** WebNotableChangeItem */ + WebNotableChangeItem: { + /** Current Value */ + current_value: number; + /** Dimension Type */ + dimension_type: string; + /** Dimension Value */ + dimension_value: string; + /** Impact Score */ + impact_score: number; + /** Metric */ + metric: string; + /** Percent Change */ + percent_change: number; + /** Previous Value */ + previous_value: number; + }; + /** WebNotableChangesQuery */ + WebNotableChangesQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation - not used in Web Analytics but required for type compatibility + * @default null + */ + aggregation_group_type_index: number | null; + /** @default null */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Conversiongoal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility + * @default null + */ + dataColorTheme: number | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Dopathcleaning + * @default null + */ + doPathCleaning: boolean | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Includerevenue + * @default null + */ + includeRevenue: boolean | null; + /** + * @description Interval for date range calculation (affects date_to rounding for hour vs day ranges) + * @default null + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "WebNotableChangesQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Orderby + * @default null + */ + orderBy: (components["schemas"]["WebAnalyticsOrderByFields"] | components["schemas"]["WebAnalyticsOrderByDirection"])[] | null; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"])[]; + /** @default null */ + response: components["schemas"]["WebNotableChangesQueryResponse"] | null; + /** @default null */ + sampling: components["schemas"]["WebAnalyticsSampling"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Usesessionstable + * @default null + */ + useSessionsTable: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** WebNotableChangesQueryResponse */ + WebNotableChangesQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["WebNotableChangeItem"][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Usedpreaggregatedtables + * @default null + */ + usedPreAggregatedTables: boolean | null; + }; + /** WebOverviewItem */ + WebOverviewItem: { + /** + * Changefrompreviouspct + * @default null + */ + changeFromPreviousPct: number | null; + /** + * Isincreasebad + * @default null + */ + isIncreaseBad: boolean | null; + /** Key */ + key: string; + kind: components["schemas"]["WebAnalyticsItemKind"]; + /** + * Previous + * @default null + */ + previous: number | null; + /** + * Usedpreaggregatedtables + * @default null + */ + usedPreAggregatedTables: boolean | null; + /** + * Value + * @default null + */ + value: number | null; + }; + /** WebOverviewQuery */ + WebOverviewQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation - not used in Web Analytics but required for type compatibility + * @default null + */ + aggregation_group_type_index: number | null; + /** @default null */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Conversiongoal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility + * @default null + */ + dataColorTheme: number | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Dopathcleaning + * @default null + */ + doPathCleaning: boolean | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Includerevenue + * @default null + */ + includeRevenue: boolean | null; + /** + * @description Interval for date range calculation (affects date_to rounding for hour vs day ranges) + * @default null + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "WebOverviewQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Orderby + * @default null + */ + orderBy: (components["schemas"]["WebAnalyticsOrderByFields"] | components["schemas"]["WebAnalyticsOrderByDirection"])[] | null; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"])[]; + /** @default null */ + response: components["schemas"]["WebOverviewQueryResponse"] | null; + /** @default null */ + sampling: components["schemas"]["WebAnalyticsSampling"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Usesessionstable + * @default null + */ + useSessionsTable: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** WebOverviewQueryResponse */ + WebOverviewQueryResponse: { + /** + * Datefrom + * @default null + */ + dateFrom: string | null; + /** + * Dateto + * @default null + */ + dateTo: string | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["WebOverviewItem"][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Usedpreaggregatedtables + * @default null + */ + usedPreAggregatedTables: boolean | null; + }; + /** WebPageURLSearchQuery */ + WebPageURLSearchQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation - not used in Web Analytics but required for type compatibility + * @default null + */ + aggregation_group_type_index: number | null; + /** @default null */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Conversiongoal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility + * @default null + */ + dataColorTheme: number | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Dopathcleaning + * @default null + */ + doPathCleaning: boolean | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Includerevenue + * @default null + */ + includeRevenue: boolean | null; + /** + * @description Interval for date range calculation (affects date_to rounding for hour vs day ranges) + * @default null + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "WebPageURLSearchQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Orderby + * @default null + */ + orderBy: (components["schemas"]["WebAnalyticsOrderByFields"] | components["schemas"]["WebAnalyticsOrderByDirection"])[] | null; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"])[]; + /** @default null */ + response: components["schemas"]["WebPageURLSearchQueryResponse"] | null; + /** @default null */ + sampling: components["schemas"]["WebAnalyticsSampling"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** + * Searchterm + * @default null + */ + searchTerm: string | null; + /** + * Stripqueryparams + * @default null + */ + stripQueryParams: boolean | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Usesessionstable + * @default null + */ + useSessionsTable: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** WebPageURLSearchQueryResponse */ + WebPageURLSearchQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["PageURL"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** + * WebStatsBreakdown + * @enum {string} + */ + WebStatsBreakdown: "Page" | "InitialPage" | "ExitPage" | "ExitClick" | "PreviousPage" | "ScreenName" | "InitialChannelType" | "InitialReferringDomain" | "InitialReferringURL" | "InitialUTMSource" | "InitialUTMCampaign" | "InitialUTMMedium" | "InitialUTMTerm" | "InitialUTMContent" | "InitialUTMSourceMediumCampaign" | "Browser" | "OS" | "Viewport" | "DeviceType" | "Country" | "Region" | "City" | "Timezone" | "Language" | "FrustrationMetrics"; + /** WebStatsTableQuery */ + WebStatsTableQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation - not used in Web Analytics but required for type compatibility + * @default null + */ + aggregation_group_type_index: number | null; + breakdownBy: components["schemas"]["WebStatsBreakdown"]; + /** @default null */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Conversiongoal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility + * @default null + */ + dataColorTheme: number | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Dopathcleaning + * @default null + */ + doPathCleaning: boolean | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Includeavgtimeonpage + * @default null + */ + includeAvgTimeOnPage: boolean | null; + /** + * Includebouncerate + * @default null + */ + includeBounceRate: boolean | null; + /** + * Includehost + * @default null + */ + includeHost: boolean | null; + /** + * Includerevenue + * @default null + */ + includeRevenue: boolean | null; + /** + * Includescrolldepth + * @default null + */ + includeScrollDepth: boolean | null; + /** + * @description Interval for date range calculation (affects date_to rounding for hour vs day ranges) + * @default null + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "WebStatsTableQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * Orderby + * @default null + */ + orderBy: (components["schemas"]["WebAnalyticsOrderByFields"] | components["schemas"]["WebAnalyticsOrderByDirection"])[] | null; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"])[]; + /** @default null */ + response: components["schemas"]["WebStatsTableQueryResponse"] | null; + /** @default null */ + sampling: components["schemas"]["WebAnalyticsSampling"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Usesessionstable + * @default null + */ + useSessionsTable: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** WebStatsTableQueryResponse */ + WebStatsTableQueryResponse: { + /** + * Columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: unknown[]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @default null + */ + types: unknown[] | null; + /** + * Usedpreaggregatedtables + * @default null + */ + usedPreAggregatedTables: boolean | null; + }; + /** WebTrendsItem */ + WebTrendsItem: { + /** Bucket */ + bucket: string; + metrics: components["schemas"]["Metrics"]; + }; + /** + * WebTrendsMetric + * @enum {string} + */ + WebTrendsMetric: "UniqueUsers" | "PageViews" | "Sessions" | "Bounces" | "SessionDuration" | "TotalSessions"; + /** WebTrendsQuery */ + WebTrendsQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation - not used in Web Analytics but required for type compatibility + * @default null + */ + aggregation_group_type_index: number | null; + /** @default null */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Conversiongoal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility + * @default null + */ + dataColorTheme: number | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Dopathcleaning + * @default null + */ + doPathCleaning: boolean | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Includerevenue + * @default null + */ + includeRevenue: boolean | null; + /** @description Interval for date range calculation (affects date_to rounding for hour vs day ranges) */ + interval: components["schemas"]["IntervalType"]; + /** + * Kind + * @default WebTrendsQuery + * @constant + */ + kind: "WebTrendsQuery"; + /** + * Limit + * @default null + */ + limit: number | null; + /** Metrics */ + metrics: components["schemas"]["WebTrendsMetric"][]; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * Orderby + * @default null + */ + orderBy: (components["schemas"]["WebAnalyticsOrderByFields"] | components["schemas"]["WebAnalyticsOrderByDirection"])[] | null; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"])[]; + /** @default null */ + response: components["schemas"]["WebTrendsQueryResponse"] | null; + /** @default null */ + sampling: components["schemas"]["WebAnalyticsSampling"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Usesessionstable + * @default null + */ + useSessionsTable: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** WebTrendsQueryResponse */ + WebTrendsQueryResponse: { + /** + * Clickhouse + * @description Executed ClickHouse query + * @default null + */ + clickhouse: string | null; + /** + * Columns + * @description Returned columns + * @default null + */ + columns: unknown[] | null; + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Explain + * @description Query explanation output + * @default null + */ + explain: string[] | null; + /** + * Hasmore + * @default null + */ + hasMore: boolean | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * Limit + * @default null + */ + limit: number | null; + /** + * @description Query metadata output + * @default null + */ + metadata: components["schemas"]["HogQLMetadataResponse"] | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Offset + * @default null + */ + offset: number | null; + /** + * Query + * @description Input query string + * @default null + */ + query: string | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["WebTrendsItem"][]; + /** @default null */ + samplingRate: components["schemas"]["SamplingRate"] | null; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + /** + * Types + * @description Types of returned columns + * @default null + */ + types: unknown[] | null; + /** + * Usedpreaggregatedtables + * @default null + */ + usedPreAggregatedTables: boolean | null; + }; + /** + * WebVitalsMetric + * @enum {string} + */ + WebVitalsMetric: "INP" | "LCP" | "CLS" | "FCP"; + /** WebVitalsPathBreakdownQuery */ + WebVitalsPathBreakdownQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation - not used in Web Analytics but required for type compatibility + * @default null + */ + aggregation_group_type_index: number | null; + /** @default null */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Conversiongoal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility + * @default null + */ + dataColorTheme: number | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Dopathcleaning + * @default null + */ + doPathCleaning: boolean | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Includerevenue + * @default null + */ + includeRevenue: boolean | null; + /** + * @description Interval for date range calculation (affects date_to rounding for hour vs day ranges) + * @default null + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "WebVitalsPathBreakdownQuery"; + metric: components["schemas"]["WebVitalsMetric"]; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Orderby + * @default null + */ + orderBy: (components["schemas"]["WebAnalyticsOrderByFields"] | components["schemas"]["WebAnalyticsOrderByDirection"])[] | null; + percentile: components["schemas"]["WebVitalsPercentile"]; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"])[]; + /** @default null */ + response: components["schemas"]["WebVitalsPathBreakdownQueryResponse"] | null; + /** @default null */ + sampling: components["schemas"]["WebAnalyticsSampling"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** Thresholds */ + thresholds: number[]; + /** + * Usesessionstable + * @default null + */ + useSessionsTable: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** WebVitalsPathBreakdownQueryResponse */ + WebVitalsPathBreakdownQueryResponse: { + /** + * Error + * @description Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise. + * @default null + */ + error: string | null; + /** + * Hogql + * @description Generated HogQL query. + * @default null + */ + hogql: string | null; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * @description Query status indicates whether next to the provided data, a query is still running. + * @default null + */ + query_status: components["schemas"]["QueryStatus"] | null; + /** + * @description The date range used for the query + * @default null + */ + resolved_date_range: components["schemas"]["ResolvedDateRangeResponse"] | null; + /** Results */ + results: components["schemas"]["WebVitalsPathBreakdownResult"][]; + /** + * Timings + * @description Measured timings for different parts of the query generation process + * @default null + */ + timings: components["schemas"]["QueryTiming"][] | null; + }; + /** WebVitalsPathBreakdownResult */ + WebVitalsPathBreakdownResult: { + /** Good */ + good: components["schemas"]["WebVitalsPathBreakdownResultItem"][]; + /** Needs Improvements */ + needs_improvements: components["schemas"]["WebVitalsPathBreakdownResultItem"][]; + /** Poor */ + poor: components["schemas"]["WebVitalsPathBreakdownResultItem"][]; + }; + /** WebVitalsPathBreakdownResultItem */ + WebVitalsPathBreakdownResultItem: { + /** Path */ + path: string; + /** Value */ + value: number; + }; + /** + * WebVitalsPercentile + * @enum {string} + */ + WebVitalsPercentile: "p75" | "p90" | "p99"; + /** WebVitalsQuery */ + WebVitalsQuery: { + /** + * Aggregation Group Type Index + * @description Groups aggregation - not used in Web Analytics but required for type compatibility + * @default null + */ + aggregation_group_type_index: number | null; + /** @default null */ + compareFilter: components["schemas"]["CompareFilter"] | null; + /** + * Conversiongoal + * @default null + */ + conversionGoal: components["schemas"]["ActionConversionGoal"] | components["schemas"]["CustomEventConversionGoal"] | null; + /** + * Datacolortheme + * @description Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility + * @default null + */ + dataColorTheme: number | null; + /** @default null */ + dateRange: components["schemas"]["DateRange"] | null; + /** + * Dopathcleaning + * @default null + */ + doPathCleaning: boolean | null; + /** + * Filtertestaccounts + * @default null + */ + filterTestAccounts: boolean | null; + /** + * Includerevenue + * @default null + */ + includeRevenue: boolean | null; + /** + * @description Interval for date range calculation (affects date_to rounding for hour vs day ranges) + * @default null + */ + interval: components["schemas"]["IntervalType"] | null; + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + kind: "WebVitalsQuery"; + /** + * @description Modifiers used when performing the query + * @default null + */ + modifiers: components["schemas"]["HogQLQueryModifiers"] | null; + /** + * Orderby + * @default null + */ + orderBy: (components["schemas"]["WebAnalyticsOrderByFields"] | components["schemas"]["WebAnalyticsOrderByDirection"])[] | null; + /** Properties */ + properties: (components["schemas"]["EventPropertyFilter"] | components["schemas"]["PersonPropertyFilter"] | components["schemas"]["SessionPropertyFilter"] | components["schemas"]["CohortPropertyFilter"])[]; + /** @default null */ + response: components["schemas"]["WebGoalsQueryResponse"] | null; + /** @default null */ + sampling: components["schemas"]["WebAnalyticsSampling"] | null; + /** + * Samplingfactor + * @description Sampling rate + * @default null + */ + samplingFactor: number | null; + /** Source */ + source: components["schemas"]["TrendsQuery"] | components["schemas"]["FunnelsQuery"] | components["schemas"]["RetentionQuery"] | components["schemas"]["PathsQuery"] | components["schemas"]["StickinessQuery"] | components["schemas"]["LifecycleQuery"] | components["schemas"]["WebStatsTableQuery"] | components["schemas"]["WebOverviewQuery"]; + /** @default null */ + tags: components["schemas"]["QueryLogTags"] | null; + /** + * Usesessionstable + * @default null + */ + useSessionsTable: boolean | null; + /** + * Version + * @description version of the node, used for schema migrations + * @default null + */ + version: number | null; + }; + /** + * @description * `0` - Sunday + * * `1` - Monday + * @enum {integer} + */ + WeekStartDayEnum: 0 | 1; + WeeklyDigestResponse: { + /** @description Unique visitors. */ + visitors: components["schemas"]["NumericMetric"]; + /** @description Total pageviews. */ + pageviews: components["schemas"]["NumericMetric"]; + /** @description Total sessions. */ + sessions: components["schemas"]["NumericMetric"]; + /** @description Bounce rate (0–100). */ + bounce_rate: components["schemas"]["NumericMetric"]; + /** @description Average session duration. */ + avg_session_duration: components["schemas"]["DurationMetric"]; + /** @description Top 5 pages by unique visitors. */ + top_pages: components["schemas"]["TopPage"][]; + /** @description Top 5 traffic sources by unique visitors. */ + top_sources: components["schemas"]["TopSource"][]; + /** @description Goal conversions. */ + goals: components["schemas"]["Goal"][]; + /** + * Format: uri + * @description Link to the Web analytics dashboard for this project. + */ + dashboard_url: string; + }; + WelcomeResponse: { + organization_name: string; + inviter: components["schemas"]["_WelcomeInviter"] | null; + team_members: components["schemas"]["_WelcomeTeamMember"][]; + recent_activity: components["schemas"]["_WelcomeRecentActivity"][]; + popular_dashboards: components["schemas"]["_WelcomePopularDashboard"][]; + products_in_use: string[]; + suggested_next_steps: components["schemas"]["_WelcomeSuggestedStep"][]; + is_organization_first_user: boolean; + }; + /** + * @description * `button` - button + * * `tab` - tab + * * `selector` - selector + * @enum {string} + */ + WidgetTypeEnum: "button" | "tab" | "selector"; + WoWChange: { + /** @description Absolute percentage change, rounded to nearest integer. */ + percent: number; + /** + * @description Direction of the change relative to the prior period. + * + * * `Up` - Up + * * `Down` - Down + */ + direction: components["schemas"]["DirectionEnum"]; + /** @description Hex color indicating whether the change is a positive or negative signal. */ + color: string; + /** @description Short label, e.g. 'Up 12%'. */ + text: string; + /** @description Verbose label, e.g. 'Up 12% from prior period'. */ + long_text: string; + }; + /** WorkflowVariablePropertyFilter */ + WorkflowVariablePropertyFilter: { + /** Key */ + key: string; + /** + * Label + * @default null + */ + label: string | null; + operator: components["schemas"]["PropertyOperator"]; + /** + * Type + * @default workflow_variable + * @constant + */ + type: "workflow_variable"; + /** + * Value + * @default null + */ + value: (string | number | boolean)[] | string | number | boolean | null; + }; + /** + * YAxisPosition + * @enum {string} + */ + YAxisPosition: "left" | "right"; + /** + * YAxisScaleType + * @enum {string} + */ + YAxisScaleType: "log10" | "linear"; + /** YAxisSettings */ + YAxisSettings: { + /** + * Label + * @default null + */ + label: string | null; + /** @default null */ + scale: components["schemas"]["Scale"] | null; + /** + * Showgridlines + * @default null + */ + showGridLines: boolean | null; + /** + * Showticks + * @default null + */ + showTicks: boolean | null; + /** + * Startatzero + * @description Whether the Y axis should start at zero + * @default null + */ + startAtZero: boolean | null; + }; + /** ZScoreDetectorConfig */ + ZScoreDetectorConfig: { + /** + * @description Preprocessing transforms applied before detection + * @default null + */ + preprocessing: components["schemas"]["PreprocessingConfig"] | null; + /** + * Threshold + * @description Anomaly probability threshold [0-1]. Points above this probability are flagged (default: 0.9) + * @default null + */ + threshold: number | null; + /** + * Type + * @default zscore + * @constant + */ + type: "zscore"; + /** + * Window + * @description Rolling window size for calculating mean/std (default: 30) + * @default null + */ + window: number | null; + }; + _CompareFilter: { + /** + * @description When true, also fetch results for a comparison window and return them under `compare`. + * @default false + */ + compare: boolean; + /** @description Relative date offset for the comparison window (e.g. '-1h', '-1d', '-7d'). Defaults to the immediately previous period of equal length. */ + compare_to?: string | null; + }; + _DateRange: { + /** @description Start of the date range. Accepts ISO 8601 timestamps or relative formats: -7d, -1h, -1mStart, etc. */ + date_from?: string | null; + /** @description End of the date range. Same format as date_from. Omit or null for "now". */ + date_to?: string | null; + }; + /** + * _ExperimentApiMetricsList + * @description List wrapper for OpenAPI schema generation — the field stores an array of metrics. + */ + _ExperimentApiMetricsList: components["schemas"]["ExperimentApiMetric"][]; + /** + * _InsightQuerySchema + * @description The query definition for this insight. The `kind` field determines the query type: + * - `InsightVizNode` — product analytics (trends, funnels, retention, paths, stickiness, lifecycle) + * - `DataVisualizationNode` — SQL insights using HogQL + * - `DataTableNode` — raw data tables + * - `HogQuery` — Hog language queries + */ + _InsightQuerySchema: components["schemas"]["InsightVizNode"] | components["schemas"]["DataTableNode"] | components["schemas"]["DataVisualizationNode"] | components["schemas"]["HogQuery"]; + _LogAttributeEntry: { + name: string; + /** @description Property filter type: "log_attribute" or "log_resource_attribute". Use this as the `type` field when filtering. */ + propertyFilterType: string; + /** + * @description How the search query matched this row: "key" if the attribute key matched, "value" if a value matched. + * + * * `key` - key + * * `value` - value + */ + matchedOn: components["schemas"]["MatchedOnEnum"]; + /** @description Sample matching value — only set when matchedOn is "value". */ + matchedValue?: string | null; + }; + _LogAttributeValue: { + /** @description Attribute value (used as the identifier). */ + id: string; + /** @description Display name — currently identical to `id`. */ + name: string; + }; + _LogEntry: { + uuid: string; + /** @description ISO 8601 timestamp of the original log event. */ + timestamp: string; + /** @description ISO 8601 timestamp the log pipeline observed the event (may differ from `timestamp`). */ + observed_timestamp: string; + body: string; + /** @description Log severity as a string (e.g. "info", "error"). Preferred over severity_number. */ + severity_text: string; + /** @description Log severity as a numeric code. Redundant with severity_text; kept for OpenTelemetry compatibility. */ + severity_number: number; + /** @description ClickHouse alias for severity_text. Redundant; prefer severity_text. */ + level: string; + /** @description Trace ID. Returns "00000000000000000000000000000000" when not set (padding, not null). */ + trace_id: string; + /** @description Span ID. Returns "0000000000000000" when not set (padding, not null). */ + span_id: string; + /** @description OpenTelemetry trace flags. */ + trace_flags?: number; + /** @description Log-level attributes as a string-keyed map. Values are strings (numeric/datetime attributes are also accessible via materialized columns). */ + attributes: { + [key: string]: string; + }; + /** @description Resource-level attributes (service.name, k8s.*, host.hostname, etc.) as a string-keyed map. Repeats across all logs from the same pod/host. */ + resource_attributes: { + [key: string]: string; + }; + /** @description OpenTelemetry event name, if set. */ + event_name?: string; + }; + _LogPropertyFilter: { + /** @description Attribute key. For type "log", use "message". For "log_attribute"/"log_resource_attribute", use the attribute key (e.g. "k8s.container.name"). */ + key: string; + /** + * @description "log" filters the log body/message. "log_attribute" filters log-level attributes. "log_resource_attribute" filters resource-level attributes. + * + * * `log` - log + * * `log_attribute` - log_attribute + * * `log_resource_attribute` - log_resource_attribute + */ + type: components["schemas"]["_LogPropertyFilterTypeEnum"]; + /** + * @description Comparison operator. + * + * * `exact` - exact + * * `is_not` - is_not + * * `icontains` - icontains + * * `not_icontains` - not_icontains + * * `regex` - regex + * * `not_regex` - not_regex + * * `gt` - gt + * * `lt` - lt + * * `is_date_exact` - is_date_exact + * * `is_date_before` - is_date_before + * * `is_date_after` - is_date_after + * * `is_set` - is_set + * * `is_not_set` - is_not_set + */ + operator: components["schemas"]["_LogPropertyFilterOperatorEnum"]; + /** @description Value to compare against. String, number, or array of strings. Omit for is_set/is_not_set operators. */ + value?: unknown; + }; + /** + * @description * `exact` - exact + * * `is_not` - is_not + * * `icontains` - icontains + * * `not_icontains` - not_icontains + * * `regex` - regex + * * `not_regex` - not_regex + * * `gt` - gt + * * `lt` - lt + * * `is_date_exact` - is_date_exact + * * `is_date_before` - is_date_before + * * `is_date_after` - is_date_after + * * `is_set` - is_set + * * `is_not_set` - is_not_set + * @enum {string} + */ + _LogPropertyFilterOperatorEnum: "exact" | "is_not" | "icontains" | "not_icontains" | "regex" | "not_regex" | "gt" | "lt" | "is_date_exact" | "is_date_before" | "is_date_after" | "is_set" | "is_not_set"; + /** + * @description * `log` - log + * * `log_attribute` - log_attribute + * * `log_resource_attribute` - log_resource_attribute + * @enum {string} + */ + _LogPropertyFilterTypeEnum: "log" | "log_attribute" | "log_resource_attribute"; + _LogsAttributesResponse: { + /** @description Available attribute keys matching the filters. */ + results: components["schemas"]["_LogAttributeEntry"][]; + /** @description Total attribute keys matched (not paginated). */ + count: number; + }; + _LogsCountBody: { + /** @description Date range for the count. Defaults to last hour. */ + dateRange?: components["schemas"]["_DateRange"]; + /** @description Filter by log severity levels. */ + severityLevels?: components["schemas"]["SeverityLevelsEnum"][]; + /** @description Filter by service names. */ + serviceNames?: string[]; + /** @description Full-text search term to filter log bodies. */ + searchTerm?: string; + /** @description Property filters for the query. */ + filterGroup?: components["schemas"]["_LogPropertyFilter"][]; + }; + _LogsCountRangeBucket: { + /** @description Bucket start as ISO 8601 timestamp. Inclusive lower bound. Pass back as `dateRange.date_from` to drill in. */ + date_from: string; + /** @description Bucket end as ISO 8601 timestamp. Exclusive upper bound. Pass back as `dateRange.date_to` to drill in. */ + date_to: string; + /** @description Log entries matching the filters within this bucket. */ + count: number; + }; + _LogsCountRangesBody: { + /** @description Window to bucket. Defaults to last hour. Use a bucket's date_from/date_to from a prior response to recursively narrow into a sub-range. */ + dateRange?: components["schemas"]["_DateRange"]; + /** + * @description Approximate number of buckets to return. The bucket interval is picked adaptively from a fixed list (1/5/10s, 1/2/5/10/15/30/60/120/240/360/720/1440m) to land near this target. Defaults to 10, capped at 100. + * @default 10 + */ + targetBuckets: number; + /** @description Filter by log severity levels. Applied before bucketing. */ + severityLevels?: components["schemas"]["SeverityLevelsEnum"][]; + /** @description Filter by service names. Applied before bucketing. */ + serviceNames?: string[]; + /** @description Full-text search across log bodies. Applied before bucketing. */ + searchTerm?: string; + /** @description Property filters applied before bucketing. Same shape as `query-logs`. */ + filterGroup?: components["schemas"]["_LogPropertyFilter"][]; + }; + _LogsCountRangesRequest: { + /** @description The bucketed-count query to execute. */ + query: components["schemas"]["_LogsCountRangesBody"]; + }; + _LogsCountRangesResponse: { + /** @description Buckets ordered by `date_from` ascending. Empty buckets are omitted — infer gaps by comparing each bucket's `date_to` to the next bucket's `date_from`. */ + ranges: components["schemas"]["_LogsCountRangeBucket"][]; + /** @description Short-form duration of the chosen bucket width (e.g. "1h", "5m", "30s", "1d"). Informational only — use each bucket's `date_from`/`date_to` for follow-up queries. */ + interval: string; + }; + _LogsCountRequest: { + /** @description The count query to execute. */ + query: components["schemas"]["_LogsCountBody"]; + }; + _LogsCountResponse: { + /** @description Number of log entries matching the filters. */ + count: number; + }; + _LogsQueryBody: { + /** @description Date range for the query. Defaults to last hour. */ + dateRange?: components["schemas"]["_DateRange"]; + /** + * @description Filter by log severity levels. + * @default [] + */ + severityLevels: components["schemas"]["SeverityLevelsEnum"][]; + /** + * @description Filter by service names. + * @default [] + */ + serviceNames: string[]; + /** + * @description Order results by timestamp. + * + * * `latest` - latest + * * `earliest` - earliest + */ + orderBy?: components["schemas"]["OrderByEnum"]; + /** @description Full-text search term to filter log bodies. */ + searchTerm?: string; + /** + * @description Property filters for the query. + * @default [] + */ + filterGroup: components["schemas"]["_LogPropertyFilter"][]; + /** + * @description Max results (1-1000). + * @default 100 + */ + limit: number; + /** @description Pagination cursor from previous response. */ + after?: string; + }; + _LogsQueryRequest: { + /** @description The logs query to execute. */ + query: components["schemas"]["_LogsQueryBody"]; + }; + _LogsQueryResponse: { + /** @description The parsed query that was executed, echoed back for confirmation. */ + query: { + [key: string]: unknown; + }; + /** @description Log entries matching the query. */ + results: components["schemas"]["_LogEntry"][]; + /** @description True if more results exist beyond this page. */ + hasMore: boolean; + /** @description Opaque cursor to pass as `after` in the next request to fetch the next page. Null when hasMore is false. */ + nextCursor?: string | null; + /** @description Maximum number of rows the `export` endpoint will produce — informational. */ + maxExportableLogs: number; + }; + _LogsServiceActiveRule: { + /** Format: uuid */ + rule_id: string; + rule_name: string; + summary_string: string; + }; + _LogsServiceAggregate: { + /** @description Service name, or "(no value)" / "(no service)" placeholder for unset entries. */ + service_name: string; + /** @description Total log entries from this service in the window. */ + log_count: number; + /** @description Count of logs at severity "error" or "fatal". */ + error_count: number; + /** + * Format: double + * @description Pre-computed error_count / log_count, rounded to 4 decimals. Useful for ranking noisy services. + */ + error_rate: number; + /** + * Format: double + * @description Share of total log volume in the window for this service (0–100). + */ + volume_share_pct?: number; + /** @description Counts by coarse severity bucket (debug, info, warn, error+fatal). */ + severity_breakdown?: components["schemas"]["_LogsServiceSeverityBreakdown"]; + /** @description Enabled sampling rules whose scope includes this service. */ + active_rules?: components["schemas"]["_LogsServiceActiveRule"][]; + }; + _LogsServiceSeverityBreakdown: { + debug: number; + info: number; + warn: number; + error: number; + }; + _LogsServicesBody: { + /** @description Date range for the services aggregation. Defaults to last hour. */ + dateRange?: components["schemas"]["_DateRange"]; + /** @description Filter by log severity levels. */ + severityLevels?: components["schemas"]["SeverityLevelsEnum"][]; + /** @description Restrict the aggregation to these service names. */ + serviceNames?: string[]; + /** @description Full-text search term to filter log bodies. */ + searchTerm?: string; + /** @description Property filters for the query. */ + filterGroup?: components["schemas"]["_LogPropertyFilter"][]; + }; + _LogsServicesRequest: { + /** @description The services aggregation query to execute. */ + query: components["schemas"]["_LogsServicesBody"]; + }; + _LogsServicesResponse: { + /** @description Per-service aggregates, ordered by log_count descending. Capped at 25 services. */ + services: components["schemas"]["_LogsServiceAggregate"][]; + /** @description Time-bucketed counts broken down by service, for plotting volume over time. */ + sparkline: components["schemas"]["_LogsServicesSparklineBucket"][]; + /** @description Roll-up stats for the Services tab header. */ + summary?: components["schemas"]["_LogsServicesSummary"]; + }; + _LogsServicesSparklineBucket: { + /** @description Bucket start time (ISO 8601). */ + time: string; + service_name: string; + count: number; + }; + _LogsServicesSummary: { + /** @description Number of top services included in the volume_share aggregate (up to 5). */ + top_services_count: number; + /** + * Format: double + * @description Combined volume share (percent) of the top services by log_count. + */ + top_services_volume_share_pct: number; + }; + _LogsSparklineBody: { + /** @description Date range for the sparkline. Defaults to last hour. */ + dateRange?: components["schemas"]["_DateRange"]; + /** + * @description Filter by log severity levels. + * @default [] + */ + severityLevels: components["schemas"]["SeverityLevelsEnum"][]; + /** + * @description Filter by service names. + * @default [] + */ + serviceNames: string[]; + /** @description Full-text search term to filter log bodies. */ + searchTerm?: string; + /** + * @description Property filters for the query. + * @default [] + */ + filterGroup: components["schemas"]["_LogPropertyFilter"][]; + /** + * @description Break down sparkline by "severity" (default) or "service". + * + * * `severity` - severity + * * `service` - service + */ + sparklineBreakdownBy?: components["schemas"]["SparklineBreakdownByEnum"]; + }; + _LogsSparklineBucket: { + /** @description Bucket start time (ISO 8601). */ + time: string; + /** @description Severity label when sparklineBreakdownBy="severity". Present only for severity-broken-down sparklines. */ + severity?: string; + /** @description Service name when sparklineBreakdownBy="service". Present only for service-broken-down sparklines. */ + service?: string; + count: number; + }; + _LogsSparklineRequest: { + /** @description The sparkline query to execute. */ + query: components["schemas"]["_LogsSparklineBody"]; + }; + _LogsSparklineResponse: { + /** @description Time-bucketed log counts. Each bucket carries either `severity` or `service` depending on breakdown. */ + results: components["schemas"]["_LogsSparklineBucket"][]; + }; + _LogsValuesResponse: { + /** @description Distinct values observed for the requested attribute. */ + results: components["schemas"]["_LogAttributeValue"][]; + /** @description Always false — reserved for future cached-value refresh signalling. */ + refreshing: boolean; + }; + _SpanPropertyFilter: { + /** @description Attribute key. For type "span", use built-in fields (trace_id, span_id, duration, name, kind, status_code). For "span_attribute"/"span_resource_attribute", use the attribute key (e.g. "http.method"). */ + key: string; + /** + * @description "span" filters built-in span fields. "span_attribute" filters span-level attributes. "span_resource_attribute" filters resource-level attributes. + * + * * `span` - span + * * `span_attribute` - span_attribute + * * `span_resource_attribute` - span_resource_attribute + */ + type: components["schemas"]["_SpanPropertyFilterTypeEnum"]; + /** + * @description Comparison operator. + * + * * `exact` - exact + * * `is_not` - is_not + * * `icontains` - icontains + * * `not_icontains` - not_icontains + * * `regex` - regex + * * `not_regex` - not_regex + * * `gt` - gt + * * `lt` - lt + * * `is_set` - is_set + * * `is_not_set` - is_not_set + */ + operator: components["schemas"]["_SpanPropertyFilterOperatorEnum"]; + /** @description Value to compare against. String, number, or array of strings. Omit for is_set/is_not_set operators. */ + value?: unknown; + }; + /** + * @description * `exact` - exact + * * `is_not` - is_not + * * `icontains` - icontains + * * `not_icontains` - not_icontains + * * `regex` - regex + * * `not_regex` - not_regex + * * `gt` - gt + * * `lt` - lt + * * `is_set` - is_set + * * `is_not_set` - is_not_set + * @enum {string} + */ + _SpanPropertyFilterOperatorEnum: "exact" | "is_not" | "icontains" | "not_icontains" | "regex" | "not_regex" | "gt" | "lt" | "is_set" | "is_not_set"; + /** + * @description * `span` - span + * * `span_attribute` - span_attribute + * * `span_resource_attribute` - span_resource_attribute + * @enum {string} + */ + _SpanPropertyFilterTypeEnum: "span" | "span_attribute" | "span_resource_attribute"; + _SymbolSetDownloadResponse: { + /** + * Format: uri + * @description Presigned URL to download the source map file. Use immediately; expires after one hour. + */ + url: string; + }; + _TracingAggregationQueryBody: { + /** @description Date range for the primary window. Defaults to last hour. */ + dateRange?: components["schemas"]["_TracingDateRange"]; + /** @description Optional comparison-window configuration. When omitted, only the primary window is returned. */ + compareFilter?: components["schemas"]["_CompareFilter"]; + /** @description Filter by service names. */ + serviceNames?: string[]; + /** + * @description Property filters applied to spans in both windows. + * @default [] + */ + filterGroup: components["schemas"]["_SpanPropertyFilter"][]; + }; + _TracingAggregationRequest: { + /** @description The span aggregation query to execute. */ + query: components["schemas"]["_TracingAggregationQueryBody"]; + }; + _TracingDateRange: { + /** @description Start of the date range. Accepts ISO 8601 timestamps or relative formats: -1h, -6h, -1d, -7d, etc. */ + date_from?: string | null; + /** @description End of the date range. Same format as date_from. Omit or null for "now". */ + date_to?: string | null; + }; + _TracingQueryBody: { + /** @description Date range for the query. Defaults to last hour. */ + dateRange?: components["schemas"]["_TracingDateRange"]; + /** @description Filter by service names. */ + serviceNames?: string[]; + /** @description Filter by HTTP status codes. */ + statusCodes?: number[]; + /** + * @description Order results by timestamp. Defaults to latest. + * + * * `latest` - latest + * * `earliest` - earliest + */ + orderBy?: components["schemas"]["OrderByEnum"]; + /** + * @description Property filters for the query. + * @default [] + */ + filterGroup: components["schemas"]["_SpanPropertyFilter"][]; + /** @description Filter to a specific trace ID (hex string). */ + traceId?: string; + /** + * @description Max results (1-1000). Defaults to 100. + * @default 100 + */ + limit: number; + /** @description Pagination cursor from previous response. */ + after?: string; + /** + * @description Filter to root spans only. Defaults to true. + * @default true + */ + rootSpans: boolean; + /** @description Number of child spans to prefetch per trace (1-100). */ + prefetchSpans?: number; + }; + _TracingQueryRequest: { + /** @description The tracing spans query to execute. */ + query: components["schemas"]["_TracingQueryBody"]; + }; + _TracingTraceRequest: { + /** @description Date range for the query. Defaults to last 24 hours. */ + dateRange?: components["schemas"]["_TracingDateRange"]; + }; + _TracingTreeQueryBody: { + /** @description Span name to scope the matched trace set. Required because the (trace_id, parent_span_id) self-join is unsafe without bounding the matched traces. */ + spanName: string; + /** @description Date range for the primary window. Defaults to last hour. */ + dateRange?: components["schemas"]["_TracingDateRange"]; + /** @description Optional comparison-window configuration. When omitted, only the primary window is returned. */ + compareFilter?: components["schemas"]["_CompareFilter"]; + /** @description Filter by service names. */ + serviceNames?: string[]; + /** + * @description Additional property filters applied to spans in both windows. + * @default [] + */ + filterGroup: components["schemas"]["_SpanPropertyFilter"][]; + }; + _TracingTreeRequest: { + /** @description The span call-tree aggregation query to execute. */ + query: components["schemas"]["_TracingTreeQueryBody"]; + }; + _User: { + readonly id: number; + /** Format: uuid */ + readonly uuid: string; + readonly first_name: string; + readonly last_name: string; + /** + * Email address + * Format: email + */ + readonly email: string; + }; + _WelcomeInviter: { + name: string; + /** Format: email */ + email: string; + }; + _WelcomePopularDashboard: { + id: number; + name: string; + description: string; + team_id: number; + url: string; + }; + _WelcomeRecentActivity: { + /** @description Scope.activity pair, e.g. 'Insight.created'. */ + type: string; + actor_name: string; + entity_name: string; + entity_url: string | null; + /** Format: date-time */ + timestamp: string; + }; + _WelcomeSuggestedStep: { + label: string; + href: string; + reason: string; + docs_href?: string; + product_key?: string; + }; + _WelcomeTeamMember: { + name: string; + /** Format: email */ + email: string; + avatar: string | null; + role: string; + last_active: components["schemas"]["LastActiveEnum"]; + }; + }; + responses: never; + parameters: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + ProjectIdPath: string; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + EnvironmentIdPath: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + OrganizationIdPath: string; + }; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record; +export interface operations { + code_invites_check_access_retrieve: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Access check result */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + code_invites_redeem_create: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CodeInviteRedeemRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["CodeInviteRedeemRequest"]; + "multipart/form-data": components["schemas"]["CodeInviteRedeemRequest"]; + }; + }; + responses: { + /** @description Invite code redeemed successfully */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Invalid or expired invite code */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + }; + }; + environments_alerts_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedAlertList"]; + }; + }; + }; + }; + environments_alerts_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Alert"]; + "application/x-www-form-urlencoded": components["schemas"]["Alert"]; + "multipart/form-data": components["schemas"]["Alert"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Alert"]; + }; + }; + }; + }; + environments_alerts_retrieve: { + parameters: { + query?: { + /** @description Relative date string for the start of the check history window (e.g. '-24h', '-7d', '-14d'). Returns checks created after this time. Max retention is 14 days. */ + checks_date_from?: string; + /** @description Relative date string for the end of the check history window (e.g. '-1h', '-1d'). Defaults to now if not specified. */ + checks_date_to?: string; + /** @description Maximum number of check results to return (default 5, max 500). Applied after date filtering. */ + checks_limit?: number; + /** @description Number of newest checks to skip (0-based). Use with checks_limit for pagination. Default 0. */ + checks_offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this alert configuration. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Alert"]; + }; + }; + }; + }; + environments_alerts_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this alert configuration. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Alert"]; + "application/x-www-form-urlencoded": components["schemas"]["Alert"]; + "multipart/form-data": components["schemas"]["Alert"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Alert"]; + }; + }; + }; + }; + environments_alerts_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this alert configuration. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_alerts_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this alert configuration. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedAlert"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedAlert"]; + "multipart/form-data": components["schemas"]["PatchedAlert"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Alert"]; + }; + }; + }; + }; + environments_alerts_simulate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AlertSimulate"]; + "application/x-www-form-urlencoded": components["schemas"]["AlertSimulate"]; + "multipart/form-data": components["schemas"]["AlertSimulate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AlertSimulateResponse"]; + }; + }; + }; + }; + environments_batch_exports_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedBatchExportList"]; + }; + }; + }; + }; + environments_batch_exports_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportRequest"]; + "multipart/form-data": components["schemas"]["BatchExportRequest"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExport"]; + }; + }; + }; + }; + environments_batch_exports_backfills_list: { + parameters: { + query?: { + /** @description The pagination cursor value. */ + cursor?: string; + /** @description Which field to use when ordering the results. */ + ordering?: string; + }; + header?: never; + path: { + batch_export_id: string; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedBatchExportBackfillList"]; + }; + }; + }; + }; + environments_batch_exports_backfills_create: { + parameters: { + query?: never; + header?: never; + path: { + batch_export_id: string; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportBackfill"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportBackfill"]; + "multipart/form-data": components["schemas"]["BatchExportBackfill"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExportBackfill"]; + }; + }; + }; + }; + environments_batch_exports_backfills_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + batch_export_id: string; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export backfill. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExportBackfill"]; + }; + }; + }; + }; + environments_batch_exports_backfills_cancel_create: { + parameters: { + query?: never; + header?: never; + path: { + batch_export_id: string; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export backfill. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportBackfill"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportBackfill"]; + "multipart/form-data": components["schemas"]["BatchExportBackfill"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_batch_exports_runs_list: { + parameters: { + query?: { + /** @description The pagination cursor value. */ + cursor?: string; + /** @description Which field to use when ordering the results. */ + ordering?: string; + }; + header?: never; + path: { + batch_export_id: string; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedBatchExportRunList"]; + }; + }; + }; + }; + environments_batch_exports_runs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + batch_export_id: string; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export run. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExportRun"]; + }; + }; + }; + }; + environments_batch_exports_runs_cancel_create: { + parameters: { + query?: never; + header?: never; + path: { + batch_export_id: string; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export run. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportRun"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportRun"]; + "multipart/form-data": components["schemas"]["BatchExportRun"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_batch_exports_runs_logs_retrieve: { + parameters: { + query?: { + /** @description Only return entries after this ISO 8601 timestamp. */ + after?: string; + /** @description Only return entries before this ISO 8601 timestamp. */ + before?: string; + /** @description Filter logs to a specific execution instance. */ + instance_id?: string; + /** @description Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR. */ + level?: string; + /** @description Maximum number of log entries to return (1-500, default 50). */ + limit?: number; + /** @description Case-insensitive substring search across log messages. */ + search?: string; + }; + header?: never; + path: { + batch_export_id: string; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export run. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_batch_exports_runs_retry_create: { + parameters: { + query?: never; + header?: never; + path: { + batch_export_id: string; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export run. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportRun"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportRun"]; + "multipart/form-data": components["schemas"]["BatchExportRun"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_batch_exports_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExport"]; + }; + }; + }; + }; + environments_batch_exports_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportRequest"]; + "multipart/form-data": components["schemas"]["BatchExportRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExport"]; + }; + }; + }; + }; + environments_batch_exports_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_batch_exports_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedBatchExportRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedBatchExportRequest"]; + "multipart/form-data": components["schemas"]["PatchedBatchExportRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExport"]; + }; + }; + }; + }; + environments_batch_exports_logs_retrieve: { + parameters: { + query?: { + /** @description Only return entries after this ISO 8601 timestamp. */ + after?: string; + /** @description Only return entries before this ISO 8601 timestamp. */ + before?: string; + /** @description Filter logs to a specific execution instance. */ + instance_id?: string; + /** @description Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR. */ + level?: string; + /** @description Maximum number of log entries to return (1-500, default 50). */ + limit?: number; + /** @description Case-insensitive substring search across log messages. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_batch_exports_pause_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExport"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExport"]; + "multipart/form-data": components["schemas"]["BatchExport"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_batch_exports_run_test_step_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExport"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExport"]; + "multipart/form-data": components["schemas"]["BatchExport"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_batch_exports_unpause_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this batch export. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExport"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExport"]; + "multipart/form-data": components["schemas"]["BatchExport"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_batch_exports_run_test_step_new_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExport"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExport"]; + "multipart/form-data": components["schemas"]["BatchExport"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_batch_exports_test_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_dashboards_list: { + parameters: { + query?: { + format?: "json" | "txt"; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Optional. Fuzzy match against dashboard `name` and `description` using Postgres trigram word similarity (handles typos, transpositions, and prefix-as-you-type). `name` matches rank above `description` matches. Results are ordered by relevance, then pinned status, then name. When omitted, dashboards are ordered by pinned status then alphabetical name. Capped at 200 characters; longer queries return a 400 error. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDashboardBasicList"]; + "text/event-stream": components["schemas"]["PaginatedDashboardBasicList"]; + }; + }; + }; + }; + environments_dashboards_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Dashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["Dashboard"]; + "multipart/form-data": components["schemas"]["Dashboard"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dashboard"]; + "text/event-stream": components["schemas"]["Dashboard"]; + }; + }; + }; + }; + environments_dashboards_collaborators_list: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DashboardCollaborator"][]; + }; + }; + }; + }; + environments_dashboards_collaborators_create: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DashboardCollaborator"]; + "application/x-www-form-urlencoded": components["schemas"]["DashboardCollaborator"]; + "multipart/form-data": components["schemas"]["DashboardCollaborator"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DashboardCollaborator"]; + }; + }; + }; + }; + environments_dashboards_collaborators_destroy: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + user__uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_dashboards_sharing_list: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"][]; + }; + }; + }; + }; + environments_dashboards_sharing_passwords_create: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + environments_dashboards_sharing_passwords_destroy: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + password_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_dashboards_sharing_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + environments_dashboards_retrieve: { + parameters: { + query?: { + /** @description Object (or pre-encoded JSON string) to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token. */ + filters_override?: string; + format?: "json" | "txt"; + /** @description Object (or pre-encoded JSON string) to override dashboard variables for this request only (not persisted). Format: {"": {"code_name": "", "variableId": "", "value": }}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token. */ + variables_override?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this dashboard. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dashboard"]; + "text/event-stream": components["schemas"]["Dashboard"]; + }; + }; + }; + }; + environments_dashboards_update: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this dashboard. */ + id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Dashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["Dashboard"]; + "multipart/form-data": components["schemas"]["Dashboard"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dashboard"]; + "text/event-stream": components["schemas"]["Dashboard"]; + }; + }; + }; + }; + environments_dashboards_destroy: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this dashboard. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_dashboards_partial_update: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this dashboard. */ + id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDashboard"]; + "multipart/form-data": components["schemas"]["PatchedDashboard"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dashboard"]; + "text/event-stream": components["schemas"]["Dashboard"]; + }; + }; + }; + }; + environments_dashboards_analyze_refresh_result_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this dashboard. */ + id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Dashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["Dashboard"]; + "multipart/form-data": components["schemas"]["Dashboard"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_dashboards_copy_tile_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this dashboard. */ + id: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CopyDashboardTileRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["CopyDashboardTileRequest"]; + "multipart/form-data": components["schemas"]["CopyDashboardTileRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dashboard"]; + "text/event-stream": components["schemas"]["Dashboard"]; + }; + }; + }; + }; + environments_dashboards_move_tile_partial_update: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this dashboard. */ + id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDashboard"]; + "multipart/form-data": components["schemas"]["PatchedDashboard"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_dashboards_reorder_tiles_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this dashboard. */ + id: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ReorderTilesRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ReorderTilesRequest"]; + "multipart/form-data": components["schemas"]["ReorderTilesRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dashboard"]; + "text/event-stream": components["schemas"]["Dashboard"]; + }; + }; + }; + }; + environments_dashboards_run_insights_retrieve: { + parameters: { + query?: { + /** @description Object (or pre-encoded JSON string) to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token. */ + filters_override?: string; + format?: "json" | "txt"; + /** @description 'optimized' (default) returns LLM-friendly formatted text per insight. 'json' returns the raw query result objects. */ + output_format?: "json" | "optimized"; + /** @description Cache behavior. 'force_cache' (default) serves from cache even if stale. 'blocking' uses cache if fresh, otherwise recalculates. 'force_blocking' always recalculates. */ + refresh?: "blocking" | "force_blocking" | "force_cache"; + /** @description Object (or pre-encoded JSON string) to override dashboard variables for this request only (not persisted). Format: {"": {"code_name": "", "variableId": "", "value": }}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token. */ + variables_override?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this dashboard. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunInsightsResponse"]; + "text/event-stream": components["schemas"]["RunInsightsResponse"]; + }; + }; + }; + }; + environments_dashboards_snapshot_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this dashboard. */ + id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Dashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["Dashboard"]; + "multipart/form-data": components["schemas"]["Dashboard"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_dashboards_stream_tiles_retrieve: { + parameters: { + query?: { + /** @description Object (or pre-encoded JSON string) to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token. */ + filters_override?: string; + format?: "json" | "txt"; + /** @description Layout size for tile positioning. 'sm' (default) for standard, 'xs' for mobile. The snake_case alias `layout_size` is also accepted for backward compatibility. */ + layoutSize?: "sm" | "xs"; + /** @description Object (or pre-encoded JSON string) to override dashboard variables for this request only (not persisted). Format: {"": {"code_name": "", "variableId": "", "value": }}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token. */ + variables_override?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this dashboard. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_dashboards_bulk_update_tags_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BulkUpdateTagsRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BulkUpdateTagsRequest"]; + "multipart/form-data": components["schemas"]["BulkUpdateTagsRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BulkUpdateTagsResponse"]; + "text/event-stream": components["schemas"]["BulkUpdateTagsResponse"]; + }; + }; + }; + }; + environments_dashboards_create_from_template_json_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Dashboard"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_dashboards_create_unlisted_dashboard_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Dashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["Dashboard"]; + "multipart/form-data": components["schemas"]["Dashboard"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_data_color_themes_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDataColorThemeList"]; + }; + }; + }; + }; + environments_data_color_themes_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataColorTheme"]; + "application/x-www-form-urlencoded": components["schemas"]["DataColorTheme"]; + "multipart/form-data": components["schemas"]["DataColorTheme"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataColorTheme"]; + }; + }; + }; + }; + environments_data_color_themes_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this data color theme. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataColorTheme"]; + }; + }; + }; + }; + environments_data_color_themes_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this data color theme. */ + id: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataColorTheme"]; + "application/x-www-form-urlencoded": components["schemas"]["DataColorTheme"]; + "multipart/form-data": components["schemas"]["DataColorTheme"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataColorTheme"]; + }; + }; + }; + }; + environments_data_color_themes_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this data color theme. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_data_color_themes_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this data color theme. */ + id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDataColorTheme"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDataColorTheme"]; + "multipart/form-data": components["schemas"]["PatchedDataColorTheme"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataColorTheme"]; + }; + }; + }; + }; + environments_data_modeling_jobs_list: { + parameters: { + query?: { + /** @description The pagination cursor value. */ + cursor?: string; + /** @description Number of results to return per page. */ + limit?: number; + saved_query_id?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDataModelingJobList"]; + }; + }; + }; + }; + environments_data_modeling_jobs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data modeling job. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataModelingJob"]; + }; + }; + }; + }; + environments_data_modeling_jobs_recent_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataModelingJob"]; + }; + }; + }; + }; + environments_data_modeling_jobs_running_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataModelingJob"]; + }; + }; + }; + }; + environments_data_warehouse_check_database_name_retrieve: { + parameters: { + query: { + /** @description Database name to check */ + name: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CheckDatabaseNameResponse"]; + }; + }; + }; + }; + environments_data_warehouse_completed_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_data_warehouse_data_health_issues_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_data_warehouse_data_ops_dashboard_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_data_warehouse_deprovision_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DeprovisionWarehouseResponse"]; + }; + }; + }; + }; + environments_data_warehouse_job_stats_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_data_warehouse_property_values_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_data_warehouse_provision_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProvisionWarehouseRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ProvisionWarehouseRequest"]; + "multipart/form-data": components["schemas"]["ProvisionWarehouseRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProvisionWarehouseResponse"]; + }; + }; + }; + }; + environments_data_warehouse_reset_password_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ResetPasswordResponse"]; + }; + }; + }; + }; + environments_data_warehouse_running_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_data_warehouse_total_rows_stats_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_data_warehouse_warehouse_status_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["WarehouseStatusResponse"]; + }; + }; + }; + }; + environments_dataset_items_list: { + parameters: { + query?: { + /** @description Filter by dataset ID */ + dataset?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDatasetItemList"]; + }; + }; + }; + }; + environments_dataset_items_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DatasetItem"]; + "application/x-www-form-urlencoded": components["schemas"]["DatasetItem"]; + "multipart/form-data": components["schemas"]["DatasetItem"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetItem"]; + }; + }; + }; + }; + environments_dataset_items_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this dataset item. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetItem"]; + }; + }; + }; + }; + environments_dataset_items_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this dataset item. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DatasetItem"]; + "application/x-www-form-urlencoded": components["schemas"]["DatasetItem"]; + "multipart/form-data": components["schemas"]["DatasetItem"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetItem"]; + }; + }; + }; + }; + environments_dataset_items_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this dataset item. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_dataset_items_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this dataset item. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDatasetItem"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDatasetItem"]; + "multipart/form-data": components["schemas"]["PatchedDatasetItem"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetItem"]; + }; + }; + }; + }; + environments_datasets_list: { + parameters: { + query?: { + /** @description Multiple values may be separated by commas. */ + id__in?: string[]; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** + * @description Ordering + * + * * `created_at` - Created At + * * `-created_at` - Created At (descending) + * * `updated_at` - Updated At + * * `-updated_at` - Updated At (descending) + */ + order_by?: ("-created_at" | "-updated_at" | "created_at" | "updated_at")[]; + /** @description Search in name, description, or metadata */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDatasetList"]; + }; + }; + }; + }; + environments_datasets_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Dataset"]; + "application/x-www-form-urlencoded": components["schemas"]["Dataset"]; + "multipart/form-data": components["schemas"]["Dataset"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dataset"]; + }; + }; + }; + }; + environments_datasets_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this dataset. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dataset"]; + }; + }; + }; + }; + environments_datasets_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this dataset. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Dataset"]; + "application/x-www-form-urlencoded": components["schemas"]["Dataset"]; + "multipart/form-data": components["schemas"]["Dataset"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dataset"]; + }; + }; + }; + }; + environments_datasets_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this dataset. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_datasets_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this dataset. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDataset"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDataset"]; + "multipart/form-data": components["schemas"]["PatchedDataset"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dataset"]; + }; + }; + }; + }; + environments_elements_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedElementList"]; + }; + }; + }; + }; + environments_elements_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Element"]; + "application/x-www-form-urlencoded": components["schemas"]["Element"]; + "multipart/form-data": components["schemas"]["Element"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Element"]; + }; + }; + }; + }; + environments_elements_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this element. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Element"]; + }; + }; + }; + }; + environments_elements_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this element. */ + id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Element"]; + "application/x-www-form-urlencoded": components["schemas"]["Element"]; + "multipart/form-data": components["schemas"]["Element"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Element"]; + }; + }; + }; + }; + environments_elements_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this element. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_elements_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this element. */ + id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedElement"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedElement"]; + "multipart/form-data": components["schemas"]["PatchedElement"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Element"]; + }; + }; + }; + }; + environments_elements_stats_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_elements_values_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_endpoints_list: { + parameters: { + query?: { + created_by?: number; + is_active?: boolean; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedEndpointResponseList"]; + }; + }; + }; + }; + environments_endpoints_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["EndpointRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["EndpointRequest"]; + "multipart/form-data": components["schemas"]["EndpointRequest"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointResponse"]; + }; + }; + }; + }; + environments_endpoints_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointVersionResponse"]; + }; + }; + }; + }; + environments_endpoints_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + name: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["EndpointRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["EndpointRequest"]; + "multipart/form-data": components["schemas"]["EndpointRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointResponse"]; + }; + }; + }; + }; + environments_endpoints_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_endpoints_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + name: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedEndpointRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedEndpointRequest"]; + "multipart/form-data": components["schemas"]["PatchedEndpointRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointResponse"]; + }; + }; + }; + }; + environments_endpoints_materialization_preview_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + name: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MaterializationPreviewRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["MaterializationPreviewRequest"]; + "multipart/form-data": components["schemas"]["MaterializationPreviewRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_endpoints_materialization_status_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointMaterialization"]; + }; + }; + }; + }; + "environments_endpoints_openapi.json_retrieve": { + parameters: { + query?: { + /** @description Specific endpoint version to generate the spec for. Defaults to latest. */ + version?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_endpoints_run_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointRunResponse"]; + }; + }; + }; + }; + environments_endpoints_run_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + name: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["EndpointRunRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["EndpointRunRequest"]; + "multipart/form-data": components["schemas"]["EndpointRunRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointRunResponse"]; + }; + }; + }; + }; + environments_endpoints_versions_list: { + parameters: { + query?: { + created_by?: number; + is_active?: boolean; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedEndpointVersionResponseList"]; + }; + }; + }; + }; + environments_endpoints_last_execution_times_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EndpointLastExecutionTimesRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["EndpointLastExecutionTimesRequest"]; + "multipart/form-data": components["schemas"]["EndpointLastExecutionTimesRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["QueryStatusResponse"]; + }; + }; + }; + }; + environments_error_tracking_releases_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedErrorTrackingReleaseList"]; + }; + }; + }; + }; + environments_error_tracking_releases_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingRelease"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingRelease"]; + "multipart/form-data": components["schemas"]["ErrorTrackingRelease"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingRelease"]; + }; + }; + }; + }; + environments_error_tracking_releases_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this error tracking release. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingRelease"]; + }; + }; + }; + }; + environments_error_tracking_releases_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this error tracking release. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingRelease"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingRelease"]; + "multipart/form-data": components["schemas"]["ErrorTrackingRelease"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingRelease"]; + }; + }; + }; + }; + environments_error_tracking_releases_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this error tracking release. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_error_tracking_releases_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this error tracking release. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedErrorTrackingRelease"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedErrorTrackingRelease"]; + "multipart/form-data": components["schemas"]["PatchedErrorTrackingRelease"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingRelease"]; + }; + }; + }; + }; + environments_error_tracking_releases_hash_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + hash_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_error_tracking_symbol_sets_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** + * @description Sort order for symbol sets. Prefix with `-` for descending order. + * + * * `created_at` - created_at + * * `-created_at` - -created_at + * * `ref` - ref + * * `-ref` - -ref + * * `last_used` - last_used + * * `-last_used` - -last_used + */ + order_by?: "created_at" | "-created_at" | "ref" | "-ref" | "last_used" | "-last_used"; + /** @description Exact symbol set reference to filter by. */ + ref?: string; + /** + * @description Upload status filter: `valid` has an uploaded file, `invalid` is missing a file, `all` returns both. + * + * * `all` - all + * * `valid` - valid + * * `invalid` - invalid + */ + status?: "all" | "valid" | "invalid"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedErrorTrackingSymbolSetList"]; + }; + }; + }; + }; + environments_error_tracking_symbol_sets_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this error tracking symbol set. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingSymbolSet"]; + }; + }; + }; + }; + environments_error_tracking_symbol_sets_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this error tracking symbol set. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_error_tracking_symbol_sets_download_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this error tracking symbol set. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_SymbolSetDownloadResponse"]; + }; + }; + }; + }; + environments_error_tracking_symbol_sets_finish_upload_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this error tracking symbol set. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingSymbolSetFinishUpload"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_error_tracking_symbol_sets_bulk_delete_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingSymbolSetBulkDelete"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_error_tracking_symbol_sets_bulk_finish_upload_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingSymbolSetBulkFinishUpload"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_error_tracking_symbol_sets_bulk_start_upload_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ErrorTrackingSymbolSetBulkStartUpload"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_events_list: { + parameters: { + query?: { + /** @description Only return events with a timestamp after this time. Default: now() - 24 hours. */ + after?: string; + /** @description Only return events with a timestamp before this time. Default: now() + 5 seconds. */ + before?: string; + /** @description Filter list by distinct id. */ + distinct_id?: number; + /** @description Filter list by event. For example `user sign up` or `$pageview`. */ + event?: string; + format?: "csv" | "json"; + /** @description The maximum number of results to return */ + limit?: number; + /** + * @deprecated + * @description Allows to skip first offset rows. Will fail for value larger than 100000. Read about proper way of paginating: https://posthog.com/docs/api/queries#5-use-timestamp-based-pagination-instead-of-offset + */ + offset?: number; + /** @description Filter list by person id. */ + person_id?: number; + /** @description Filter events by event property, person property, cohort, groups and more. */ + properties?: components["schemas"]["Property"][]; + /** @description (Experimental) JSON-serialized array of HogQL expressions to return */ + select?: string[]; + /** @description (Experimental) JSON-serialized array of HogQL expressions that must pass */ + where?: string[]; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedClickhouseEventList"]; + "text/csv": components["schemas"]["PaginatedClickhouseEventList"]; + }; + }; + }; + }; + environments_events_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + "text/csv": { + [key: string]: unknown; + }; + }; + }; + }; + }; + environments_events_values_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_exports_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedExportedAssetList"]; + }; + }; + }; + }; + environments_exports_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExportedAsset"]; + "application/x-www-form-urlencoded": components["schemas"]["ExportedAsset"]; + "multipart/form-data": components["schemas"]["ExportedAsset"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExportedAsset"]; + }; + }; + }; + }; + environments_exports_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this exported asset. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExportedAsset"]; + }; + }; + }; + }; + environments_exports_content_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this exported asset. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_schemas_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedExternalDataSchemaList"]; + }; + }; + }; + }; + environments_external_data_schemas_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSchema"]; + "multipart/form-data": components["schemas"]["ExternalDataSchema"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + }; + }; + }; + }; + environments_external_data_schemas_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data schema. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + }; + }; + }; + }; + environments_external_data_schemas_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data schema. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSchema"]; + "multipart/form-data": components["schemas"]["ExternalDataSchema"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + }; + }; + }; + }; + environments_external_data_schemas_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data schema. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_schemas_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data schema. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedExternalDataSchema"]; + "multipart/form-data": components["schemas"]["PatchedExternalDataSchema"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + }; + }; + }; + }; + environments_external_data_schemas_cancel_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data schema. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSchema"]; + "multipart/form-data": components["schemas"]["ExternalDataSchema"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_schemas_delete_data_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data schema. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_schemas_incremental_fields_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data schema. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSchema"]; + "multipart/form-data": components["schemas"]["ExternalDataSchema"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_schemas_reload_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data schema. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSchema"]; + "multipart/form-data": components["schemas"]["ExternalDataSchema"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_schemas_resync_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data schema. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSchema"]; + "multipart/form-data": components["schemas"]["ExternalDataSchema"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_sources_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedExternalDataSourceSerializersList"]; + }; + }; + }; + }; + environments_external_data_sources_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceCreate"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceCreate"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceCreate"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + }; + }; + environments_external_data_sources_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data source. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + }; + }; + environments_external_data_sources_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data source. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + }; + }; + environments_external_data_sources_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data source. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_sources_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data source. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["PatchedExternalDataSourceSerializers"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + }; + }; + environments_external_data_sources_bulk_update_schemas_partial_update: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data source. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedExternalDataSourceBulkUpdateSchemas"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedExternalDataSourceBulkUpdateSchemas"]; + "multipart/form-data": components["schemas"]["PatchedExternalDataSourceBulkUpdateSchemas"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedExternalDataSchemaList"]; + }; + }; + }; + }; + environments_external_data_sources_create_webhook_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data source. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_sources_delete_webhook_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data source. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_sources_jobs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data source. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_sources_refresh_schemas_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data source. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_sources_reload_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data source. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_sources_revenue_analytics_config_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data source. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["PatchedExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_sources_update_webhook_inputs_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data source. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_sources_webhook_info_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this external data source. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_sources_check_cdc_prerequisites_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Whether the Postgres database satisfies CDC prerequisites. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + valid?: boolean; + errors?: string[]; + }; + }; + }; + /** @description Invalid config, disallowed host, or connection failure. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_sources_connections_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedExternalDataSourceConnectionOptionList"]; + }; + }; + }; + }; + environments_external_data_sources_database_schema_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DatabaseSchemaRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["DatabaseSchemaRequest"]; + "multipart/form-data": components["schemas"]["DatabaseSchemaRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_sources_source_prefix_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_external_data_sources_wizard_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_file_system_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedFileSystemList"]; + }; + }; + }; + }; + environments_file_system_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystem"]; + }; + }; + }; + }; + environments_file_system_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this file system. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystem"]; + }; + }; + }; + }; + environments_file_system_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this file system. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystem"]; + }; + }; + }; + }; + environments_file_system_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this file system. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_file_system_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this file system. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedFileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedFileSystem"]; + "multipart/form-data": components["schemas"]["PatchedFileSystem"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystem"]; + }; + }; + }; + }; + environments_file_system_count_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this file system. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_file_system_link_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this file system. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_file_system_move_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this file system. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_file_system_count_by_path_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_file_system_log_view_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_file_system_log_view_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_file_system_undo_delete_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_file_system_unfiled_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_file_system_shortcut_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedFileSystemShortcutList"]; + }; + }; + }; + }; + environments_file_system_shortcut_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystemShortcut"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystemShortcut"]; + "multipart/form-data": components["schemas"]["FileSystemShortcut"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystemShortcut"]; + }; + }; + }; + }; + environments_file_system_shortcut_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this file system shortcut. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystemShortcut"]; + }; + }; + }; + }; + environments_file_system_shortcut_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this file system shortcut. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystemShortcut"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystemShortcut"]; + "multipart/form-data": components["schemas"]["FileSystemShortcut"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystemShortcut"]; + }; + }; + }; + }; + environments_file_system_shortcut_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this file system shortcut. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_file_system_shortcut_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this file system shortcut. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedFileSystemShortcut"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedFileSystemShortcut"]; + "multipart/form-data": components["schemas"]["PatchedFileSystemShortcut"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystemShortcut"]; + }; + }; + }; + }; + environments_file_system_shortcut_reorder_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystemShortcutReorder"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystemShortcutReorder"]; + "multipart/form-data": components["schemas"]["FileSystemShortcutReorder"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedFileSystemShortcutList"]; + }; + }; + }; + }; + environments_groups_list: { + parameters: { + query: { + /** @description Pagination cursor returned in the `next` URL of a previous response */ + cursor?: string; + /** @description Filter groups whose key contains this string (case-insensitive) */ + group_key?: string; + /** @description Specify the group type to list */ + group_type_index: number; + /** @description Search the group name */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Group"][]; + }; + }; + }; + }; + environments_groups_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CreateGroup"]; + "application/x-www-form-urlencoded": components["schemas"]["CreateGroup"]; + "multipart/form-data": components["schemas"]["CreateGroup"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Group"]; + }; + }; + }; + }; + environments_groups_activity_retrieve: { + parameters: { + query: { + /** @description Specify the group type to find */ + group_type_index: number; + /** @description Specify the id of the user to find groups for */ + id: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_groups_delete_property_create: { + parameters: { + query: { + /** @description Specify the key of the group to find */ + group_key: string; + /** @description Specify the group type to find */ + group_type_index: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Group"]; + "application/x-www-form-urlencoded": components["schemas"]["Group"]; + "multipart/form-data": components["schemas"]["Group"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_groups_find_retrieve: { + parameters: { + query: { + /** @description Specify the key of the group to find */ + group_key: string; + /** @description Specify the group type to find */ + group_type_index: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_groups_property_definitions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_groups_property_values_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_groups_related_retrieve: { + parameters: { + query: { + /** @description Specify the group type to find */ + group_type_index: number; + /** @description Specify the id of the user to find groups for */ + id: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_groups_update_property_create: { + parameters: { + query: { + /** @description Specify the key of the group to find */ + group_key: string; + /** @description Specify the group type to find */ + group_type_index: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Group"]; + "application/x-www-form-urlencoded": components["schemas"]["Group"]; + "multipart/form-data": components["schemas"]["Group"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_heatmap_screenshots_content_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this saved heatmap. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_heatmaps_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHeatmapsResponseList"]; + }; + }; + }; + }; + environments_heatmaps_events_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_hog_flows_list: { + parameters: { + query?: { + created_at?: string; + created_by?: number; + id?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + updated_at?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHogFlowMinimalList"]; + }; + }; + }; + }; + environments_hog_flows_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + environments_hog_flows_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + environments_hog_flows_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + environments_hog_flows_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_hog_flows_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedHogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedHogFlow"]; + "multipart/form-data": components["schemas"]["PatchedHogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + environments_hog_flows_batch_jobs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + environments_hog_flows_batch_jobs_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + environments_hog_flows_blocked_runs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + environments_hog_flows_invocations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + environments_hog_flows_logs_retrieve: { + parameters: { + query?: { + /** @description Only return entries after this ISO 8601 timestamp. */ + after?: string; + /** @description Only return entries before this ISO 8601 timestamp. */ + before?: string; + /** @description Filter logs to a specific execution instance. */ + instance_id?: string; + /** @description Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR. */ + level?: string; + /** @description Maximum number of log entries to return (1-500, default 50). */ + limit?: number; + /** @description Case-insensitive substring search across log messages. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_hog_flows_metrics_retrieve: { + parameters: { + query?: { + /** @description Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'. */ + after?: string; + /** @description End of the time range. Same format as 'after'. Defaults to now. */ + before?: string; + /** + * @description Group the series by metric 'name' or 'kind'. Defaults to 'kind'. + * + * * `name` - name + * * `kind` - kind + */ + breakdown_by?: "name" | "kind"; + /** @description Filter metrics to a specific execution instance. */ + instance_id?: string; + /** + * @description Time bucket size for the series. One of: hour, day, week. Defaults to 'day'. + * + * * `hour` - hour + * * `day` - day + * * `week` - week + */ + interval?: "hour" | "day" | "week"; + /** @description Comma-separated metric kinds to filter by, e.g. 'success,failure'. */ + kind?: string; + /** @description Comma-separated metric names to filter by. */ + name?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AppMetricsResponse"]; + }; + }; + }; + }; + environments_hog_flows_metrics_totals_retrieve: { + parameters: { + query?: { + /** @description Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'. */ + after?: string; + /** @description End of the time range. Same format as 'after'. Defaults to now. */ + before?: string; + /** + * @description Group the series by metric 'name' or 'kind'. Defaults to 'kind'. + * + * * `name` - name + * * `kind` - kind + */ + breakdown_by?: "name" | "kind"; + /** @description Filter metrics to a specific execution instance. */ + instance_id?: string; + /** + * @description Time bucket size for the series. One of: hour, day, week. Defaults to 'day'. + * + * * `hour` - hour + * * `day` - day + * * `week` - week + */ + interval?: "hour" | "day" | "week"; + /** @description Comma-separated metric kinds to filter by, e.g. 'success,failure'. */ + kind?: string; + /** @description Comma-separated metric names to filter by. */ + name?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AppMetricsTotalsResponse"]; + }; + }; + }; + }; + environments_hog_flows_replay_all_blocked_runs_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + environments_hog_flows_replay_blocked_run_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + environments_hog_flows_schedules_list: { + parameters: { + query?: { + created_at?: string; + created_by?: number; + id?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + updated_at?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHogFlowScheduleList"]; + }; + }; + }; + }; + environments_hog_flows_schedules_create: { + parameters: { + query?: { + created_at?: string; + created_by?: number; + id?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + updated_at?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHogFlowScheduleList"]; + }; + }; + }; + }; + environments_hog_flows_schedules_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + schedule_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_hog_flows_schedules_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog flow. */ + id: string; + schedule_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedHogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedHogFlow"]; + "multipart/form-data": components["schemas"]["PatchedHogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + environments_hog_flows_bulk_delete_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + environments_hog_flows_user_blast_radius_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BlastRadiusRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BlastRadiusRequest"]; + "multipart/form-data": components["schemas"]["BlastRadiusRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BlastRadius"]; + }; + }; + }; + }; + environments_hog_functions_list: { + parameters: { + query?: { + created_at?: string; + created_by?: number; + enabled?: boolean; + id?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Multiple values may be separated by commas. */ + type?: string[]; + updated_at?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHogFunctionMinimalList"]; + }; + }; + }; + }; + environments_hog_functions_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["HogFunction"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFunction"]; + "multipart/form-data": components["schemas"]["HogFunction"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFunction"]; + }; + }; + }; + }; + environments_hog_functions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog function. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFunction"]; + }; + }; + }; + }; + environments_hog_functions_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog function. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["HogFunction"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFunction"]; + "multipart/form-data": components["schemas"]["HogFunction"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFunction"]; + }; + }; + }; + }; + environments_hog_functions_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog function. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_hog_functions_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog function. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedHogFunction"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedHogFunction"]; + "multipart/form-data": components["schemas"]["PatchedHogFunction"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFunction"]; + }; + }; + }; + }; + environments_hog_functions_enable_backfills_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog function. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["HogFunction"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFunction"]; + "multipart/form-data": components["schemas"]["HogFunction"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_hog_functions_invocations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog function. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFunctionInvocation"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFunctionInvocation"]; + "multipart/form-data": components["schemas"]["HogFunctionInvocation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFunctionInvocation"]; + }; + }; + }; + }; + environments_hog_functions_logs_retrieve: { + parameters: { + query?: { + /** @description Only return entries after this ISO 8601 timestamp. */ + after?: string; + /** @description Only return entries before this ISO 8601 timestamp. */ + before?: string; + /** @description Filter logs to a specific execution instance. */ + instance_id?: string; + /** @description Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR. */ + level?: string; + /** @description Maximum number of log entries to return (1-500, default 50). */ + limit?: number; + /** @description Case-insensitive substring search across log messages. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog function. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_hog_functions_metrics_retrieve: { + parameters: { + query?: { + /** @description Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'. */ + after?: string; + /** @description End of the time range. Same format as 'after'. Defaults to now. */ + before?: string; + /** + * @description Group the series by metric 'name' or 'kind'. Defaults to 'kind'. + * + * * `name` - name + * * `kind` - kind + */ + breakdown_by?: "name" | "kind"; + /** @description Filter metrics to a specific execution instance. */ + instance_id?: string; + /** + * @description Time bucket size for the series. One of: hour, day, week. Defaults to 'day'. + * + * * `hour` - hour + * * `day` - day + * * `week` - week + */ + interval?: "hour" | "day" | "week"; + /** @description Comma-separated metric kinds to filter by, e.g. 'success,failure'. */ + kind?: string; + /** @description Comma-separated metric names to filter by. */ + name?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog function. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AppMetricsResponse"]; + }; + }; + }; + }; + environments_hog_functions_metrics_totals_retrieve: { + parameters: { + query?: { + /** @description Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'. */ + after?: string; + /** @description End of the time range. Same format as 'after'. Defaults to now. */ + before?: string; + /** + * @description Group the series by metric 'name' or 'kind'. Defaults to 'kind'. + * + * * `name` - name + * * `kind` - kind + */ + breakdown_by?: "name" | "kind"; + /** @description Filter metrics to a specific execution instance. */ + instance_id?: string; + /** + * @description Time bucket size for the series. One of: hour, day, week. Defaults to 'day'. + * + * * `hour` - hour + * * `day` - day + * * `week` - week + */ + interval?: "hour" | "day" | "week"; + /** @description Comma-separated metric kinds to filter by, e.g. 'success,failure'. */ + kind?: string; + /** @description Comma-separated metric names to filter by. */ + name?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this hog function. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AppMetricsTotalsResponse"]; + }; + }; + }; + }; + environments_hog_functions_icon_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_hog_functions_icons_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_hog_functions_rearrange_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedHogFunctionRearrange"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedHogFunctionRearrange"]; + "multipart/form-data": components["schemas"]["PatchedHogFunctionRearrange"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFunction"][]; + }; + }; + }; + }; + environments_insight_variables_list: { + parameters: { + query?: { + /** @description A page number within the paginated result set. */ + page?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedInsightVariableList"]; + }; + }; + }; + }; + environments_insight_variables_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["InsightVariable"]; + "application/x-www-form-urlencoded": components["schemas"]["InsightVariable"]; + "multipart/form-data": components["schemas"]["InsightVariable"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["InsightVariable"]; + }; + }; + }; + }; + environments_insight_variables_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this insight variable. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["InsightVariable"]; + }; + }; + }; + }; + environments_insight_variables_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this insight variable. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["InsightVariable"]; + "application/x-www-form-urlencoded": components["schemas"]["InsightVariable"]; + "multipart/form-data": components["schemas"]["InsightVariable"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["InsightVariable"]; + }; + }; + }; + }; + environments_insight_variables_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this insight variable. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_insight_variables_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this insight variable. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedInsightVariable"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedInsightVariable"]; + "multipart/form-data": components["schemas"]["PatchedInsightVariable"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["InsightVariable"]; + }; + }; + }; + }; + environments_insights_list: { + parameters: { + query?: { + /** @description Return basic insight metadata only (no results, faster). */ + basic?: boolean; + /** @description JSON-encoded array of user IDs. Only returns insights whose `created_by` is in the list, e.g. `[1,42]`. */ + created_by?: string; + /** @description Filter by `created_at > created_date_from`. Accepts absolute or relative dates. */ + created_date_from?: string; + /** @description Filter by `created_at < created_date_to`. Accepts absolute or relative dates. */ + created_date_to?: string; + /** @description JSON-encoded array of dashboard IDs. Returns insights attached to every listed dashboard (AND). */ + dashboards?: string; + /** @description Filter by `last_modified_at > date_from`. Accepts absolute dates (`2025-04-23`) or relative strings (`-7d`, `-1m`). */ + date_from?: string; + /** @description Filter by `last_modified_at < date_to`. Accepts absolute dates or relative strings. */ + date_to?: string; + /** @description Include this parameter (any value) to restrict results to insights marked as favorited. */ + favorited?: boolean; + format?: "csv" | "json"; + /** @description Restrict to a single insight type. `JSON` matches non-wrapper query insights; `SQL` matches HogQL queries. */ + insight?: "FUNNELS" | "JSON" | "LIFECYCLE" | "PATHS" | "RETENTION" | "SQL" | "STICKINESS" | "TRENDS"; + /** @description Filter by `last_viewed_at > last_viewed_date_from`. Accepts absolute or relative dates. */ + last_viewed_date_from?: string; + /** @description Filter by `last_viewed_at < last_viewed_date_to`. Accepts absolute or relative dates. */ + last_viewed_date_to?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** + * @description Whether to refresh the retrieved insights, how aggressively, and if sync or async: + * - `'force_cache'` - return cached data or a cache miss; always completes immediately as it never calculates + * - `'blocking'` - calculate synchronously (returning only when the query is done), UNLESS there are very fresh results in the cache + * - `'async'` - kick off background calculation (returning immediately with a query status), UNLESS there are very fresh results in the cache + * - `'lazy_async'` - kick off background calculation, UNLESS there are somewhat fresh results in the cache + * - `'force_blocking'` - calculate synchronously, even if fresh results are already cached + * - `'force_async'` - kick off background calculation, even if fresh results are already cached + * Background calculation can be tracked using the `query_status` response field. + */ + refresh?: "async" | "async_except_on_cache_miss" | "blocking" | "force_async" | "force_blocking" | "force_cache" | "lazy_async"; + /** @description When truthy, restricts results to insights that are saved (or attached to a visible dashboard). When falsy, only unsaved insights. */ + saved?: boolean; + /** @description Case-insensitive substring match across name, derived_name, description, and tag names. */ + search?: string; + short_id?: string; + /** @description JSON-encoded array of tag names. Returns insights with any of the listed tags. */ + tags?: string; + /** @description Include this parameter (any value) to restrict results to insights created by the authenticated user. */ + user?: boolean; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedInsightList"]; + "text/csv": components["schemas"]["PaginatedInsightList"]; + }; + }; + }; + }; + environments_insights_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Insight"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Insight"]; + "text/csv": components["schemas"]["Insight"]; + }; + }; + }; + }; + environments_insights_sharing_list: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + insight_id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"][]; + }; + }; + }; + }; + environments_insights_sharing_passwords_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + insight_id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + environments_insights_sharing_passwords_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + insight_id: number; + password_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_insights_sharing_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + insight_id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + environments_insights_thresholds_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + insight_id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedThresholdWithAlertList"]; + }; + }; + }; + }; + environments_insights_thresholds_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this threshold. */ + id: string; + insight_id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ThresholdWithAlert"]; + }; + }; + }; + }; + environments_insights_retrieve: { + parameters: { + query?: { + /** @description Object (or pre-encoded JSON string) to override the insight's filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token. */ + filters_override?: string; + format?: "csv" | "json"; + /** + * @description Only if loading an insight in the context of a dashboard: The relevant dashboard's ID. + * When set, the specified dashboard's filters and date range override will be applied. + */ + from_dashboard?: number; + /** + * @description Whether to refresh the insight, how aggresively, and if sync or async: + * - `'force_cache'` - return cached data or a cache miss; always completes immediately as it never calculates + * - `'blocking'` - calculate synchronously (returning only when the query is done), UNLESS there are very fresh results in the cache + * - `'async'` - kick off background calculation (returning immediately with a query status), UNLESS there are very fresh results in the cache + * - `'lazy_async'` - kick off background calculation, UNLESS there are somewhat fresh results in the cache + * - `'force_blocking'` - calculate synchronously, even if fresh results are already cached + * - `'force_async'` - kick off background calculation, even if fresh results are already cached + * Background calculation can be tracked using the `query_status` response field. + */ + refresh?: "async" | "async_except_on_cache_miss" | "blocking" | "force_async" | "force_blocking" | "force_cache" | "lazy_async"; + /** @description Object (or pre-encoded JSON string) to override the insight's HogQL variables for this request only (not persisted). Format: {"": {"code_name": "", "variableId": "", "value": }}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `insight-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token. */ + variables_override?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight. */ + id: number | string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Insight"]; + "text/csv": components["schemas"]["Insight"]; + }; + }; + }; + }; + environments_insights_update: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight. */ + id: number | string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Insight"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Insight"]; + "text/csv": components["schemas"]["Insight"]; + }; + }; + }; + }; + environments_insights_destroy: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight. */ + id: number | string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_insights_partial_update: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight. */ + id: number | string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedInsight"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Insight"]; + "text/csv": components["schemas"]["Insight"]; + }; + }; + }; + }; + environments_insights_activity_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + /** @description Page size. Defaults to 10. */ + limit?: number; + /** @description 1-indexed page number. Defaults to 1. */ + page?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this insight. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ActivityLogPaginatedResponse"]; + "text/csv": components["schemas"]["ActivityLogPaginatedResponse"]; + }; + }; + }; + }; + environments_insights_analyze_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this insight. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_insights_suggestions_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this insight. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_insights_suggestions_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this insight. */ + id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Insight"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_insights_all_activity_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + /** @description Page size. Defaults to 10. */ + limit?: number; + /** @description 1-indexed page number. Defaults to 1. */ + page?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ActivityLogPaginatedResponse"]; + "text/csv": components["schemas"]["ActivityLogPaginatedResponse"]; + }; + }; + }; + }; + environments_insights_bulk_update_tags_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BulkUpdateTagsRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BulkUpdateTagsResponse"]; + "text/csv": components["schemas"]["BulkUpdateTagsResponse"]; + }; + }; + }; + }; + environments_insights_cancel_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Insight"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_insights_generate_metadata_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Insight"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_insights_my_last_viewed_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_insights_trending_retrieve: { + parameters: { + query?: { + /** @description Time window in days to compute view counts over. Defaults to 7. Larger windows surface consistently popular insights; smaller windows surface what's hot right now. */ + days?: number; + format?: "csv" | "json"; + /** @description Maximum number of insights to return. Defaults to 10. Capped at 100. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedTrendingInsightList"]; + "text/csv": components["schemas"]["PaginatedTrendingInsightList"]; + }; + }; + }; + }; + environments_insights_viewed_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["InsightViewedRequest"]; + }; + }; + responses: { + /** @description Views recorded. */ + 201: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_list: { + parameters: { + query?: { + /** + * @description * `anthropic` - Anthropic + * * `apns` - Apple Push + * * `azure-blob` - Azure Blob + * * `bing-ads` - Bing Ads + * * `clickup` - Clickup + * * `customerio-app` - Customerio App + * * `customerio-track` - Customerio Track + * * `customerio-webhook` - Customerio Webhook + * * `databricks` - Databricks + * * `email` - Email + * * `firebase` - Firebase + * * `github` - Github + * * `gitlab` - Gitlab + * * `google-ads` - Google Ads + * * `google-cloud-service-account` - Google Cloud Service Account + * * `google-cloud-storage` - Google Cloud Storage + * * `google-pubsub` - Google Pubsub + * * `google-sheets` - Google Sheets + * * `hubspot` - Hubspot + * * `intercom` - Intercom + * * `jira` - Jira + * * `linear` - Linear + * * `linkedin-ads` - Linkedin Ads + * * `meta-ads` - Meta Ads + * * `pinterest-ads` - Pinterest Ads + * * `postgresql` - Postgresql + * * `reddit-ads` - Reddit Ads + * * `salesforce` - Salesforce + * * `slack` - Slack + * * `slack-posthog-code` - Slack Posthog Code + * * `snapchat` - Snapchat + * * `stripe` - Stripe + * * `tiktok-ads` - Tiktok Ads + * * `twilio` - Twilio + * * `vercel` - Vercel + */ + kind?: "anthropic" | "apns" | "azure-blob" | "bing-ads" | "clickup" | "customerio-app" | "customerio-track" | "customerio-webhook" | "databricks" | "email" | "firebase" | "github" | "gitlab" | "google-ads" | "google-cloud-service-account" | "google-cloud-storage" | "google-pubsub" | "google-sheets" | "hubspot" | "intercom" | "jira" | "linear" | "linkedin-ads" | "meta-ads" | "pinterest-ads" | "postgresql" | "reddit-ads" | "salesforce" | "slack" | "slack-posthog-code" | "snapchat" | "stripe" | "tiktok-ads" | "twilio" | "vercel"; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedIntegrationConfigList"]; + }; + }; + }; + }; + environments_integrations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["IntegrationConfig"]; + "multipart/form-data": components["schemas"]["IntegrationConfig"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + }; + }; + }; + }; + environments_integrations_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + }; + }; + }; + }; + environments_integrations_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_anthropic_managed_agent_envs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_anthropic_managed_agent_vaults_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_anthropic_managed_agents_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_channels_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SlackChannelsResponse"]; + }; + }; + }; + }; + environments_integrations_clickup_lists_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_clickup_spaces_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_clickup_workspaces_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_email_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedIntegrationConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedIntegrationConfig"]; + "multipart/form-data": components["schemas"]["PatchedIntegrationConfig"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + }; + }; + }; + }; + environments_integrations_email_verify_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["IntegrationConfig"]; + "multipart/form-data": components["schemas"]["IntegrationConfig"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_github_branches_retrieve: { + parameters: { + query: { + /** @description Maximum number of branches to return */ + limit?: number; + /** @description Number of branches to skip */ + offset?: number; + /** @description Repository in owner/repo format */ + repo: string; + /** @description Optional case-insensitive branch name search query. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GitHubBranchesResponse"]; + }; + }; + }; + }; + environments_integrations_github_repos_retrieve: { + parameters: { + query?: { + /** @description Maximum number of repositories to return per request (max 500). */ + limit?: number; + /** @description Number of repositories to skip before returning results. */ + offset?: number; + /** @description Optional case-insensitive repository name search query. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GitHubReposResponse"]; + }; + }; + }; + }; + environments_integrations_github_repos_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GitHubReposRefreshResponse"]; + }; + }; + }; + }; + environments_integrations_google_accessible_accounts_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_google_conversion_actions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_jira_projects_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_linear_teams_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_linkedin_ads_accounts_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_linkedin_ads_conversion_rules_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_twilio_phone_numbers_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this integration. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_authorize_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_domain_connect_apply_url_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["IntegrationConfig"]; + "multipart/form-data": components["schemas"]["IntegrationConfig"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_domain_connect_check_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_github_link_existing_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["IntegrationConfig"]; + "multipart/form-data": components["schemas"]["IntegrationConfig"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_integrations_github_oauth_authorize_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["IntegrationConfig"]; + "multipart/form-data": components["schemas"]["IntegrationConfig"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_logs_alerts_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLogsAlertConfigurationList"]; + }; + }; + }; + }; + environments_logs_alerts_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsAlertConfiguration"]; + "multipart/form-data": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + }; + }; + environments_logs_alerts_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + }; + }; + environments_logs_alerts_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsAlertConfiguration"]; + "multipart/form-data": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + }; + }; + environments_logs_alerts_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_logs_alerts_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedLogsAlertConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedLogsAlertConfiguration"]; + "multipart/form-data": components["schemas"]["PatchedLogsAlertConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + }; + }; + environments_logs_alerts_destinations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsAlertCreateDestination"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsAlertCreateDestination"]; + "multipart/form-data": components["schemas"]["LogsAlertCreateDestination"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertDestinationResponse"]; + }; + }; + }; + }; + environments_logs_alerts_destinations_delete_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsAlertDeleteDestination"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsAlertDeleteDestination"]; + "multipart/form-data": components["schemas"]["LogsAlertDeleteDestination"]; + }; + }; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_logs_alerts_events_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLogsAlertEventList"]; + }; + }; + }; + }; + environments_logs_alerts_reset_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + }; + }; + environments_logs_alerts_simulate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsAlertSimulateRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsAlertSimulateRequest"]; + "multipart/form-data": components["schemas"]["LogsAlertSimulateRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertSimulateResponse"]; + }; + }; + }; + }; + environments_logs_attributes_retrieve: { + parameters: { + query?: { + /** + * @description Type of attributes: "log" for log attributes, "resource" for resource attributes. Defaults to "log". + * + * * `log` - log + * * `resource` - resource + */ + attribute_type?: "log" | "resource"; + /** @description Date range to search within. Defaults to last hour. */ + dateRange?: components["schemas"]["_DateRange"]; + /** @description Property filters to narrow which logs are scanned for attributes. */ + filterGroup?: components["schemas"]["_LogPropertyFilter"][]; + /** @description Max results (default: 100) */ + limit?: number; + /** @description Pagination offset (default: 0) */ + offset?: number; + /** @description Search filter for attribute names */ + search?: string; + /** @description When true, the search query also matches attribute values (not just keys). Each result indicates whether it matched on key or value. */ + search_values?: boolean; + /** @description Filter attributes to those appearing in logs from these services. */ + serviceNames?: string[]; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsAttributesResponse"]; + }; + }; + }; + }; + environments_logs_count_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_LogsCountRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_LogsCountRequest"]; + "multipart/form-data": components["schemas"]["_LogsCountRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsCountResponse"]; + }; + }; + }; + }; + environments_logs_count_ranges_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_LogsCountRangesRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_LogsCountRangesRequest"]; + "multipart/form-data": components["schemas"]["_LogsCountRangesRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsCountRangesResponse"]; + }; + }; + }; + }; + environments_logs_export_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + environments_logs_has_logs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + environments_logs_query_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_LogsQueryRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_LogsQueryRequest"]; + "multipart/form-data": components["schemas"]["_LogsQueryRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsQueryResponse"]; + }; + }; + }; + }; + environments_logs_sampling_rules_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLogsSamplingRuleList"]; + }; + }; + }; + }; + environments_logs_sampling_rules_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsSamplingRule"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsSamplingRule"]; + "multipart/form-data": components["schemas"]["LogsSamplingRule"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsSamplingRule"]; + }; + }; + }; + }; + environments_logs_sampling_rules_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this logs exclusion rule. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsSamplingRule"]; + }; + }; + }; + }; + environments_logs_sampling_rules_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this logs exclusion rule. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsSamplingRule"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsSamplingRule"]; + "multipart/form-data": components["schemas"]["LogsSamplingRule"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsSamplingRule"]; + }; + }; + }; + }; + environments_logs_sampling_rules_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this logs exclusion rule. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_logs_sampling_rules_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this logs exclusion rule. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedLogsSamplingRule"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedLogsSamplingRule"]; + "multipart/form-data": components["schemas"]["PatchedLogsSamplingRule"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsSamplingRule"]; + }; + }; + }; + }; + environments_logs_sampling_rules_simulate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this logs exclusion rule. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsSamplingRuleSimulateResponse"]; + }; + }; + }; + }; + environments_logs_sampling_rules_reorder_create: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsSamplingRuleReorder"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsSamplingRuleReorder"]; + "multipart/form-data": components["schemas"]["LogsSamplingRuleReorder"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLogsSamplingRuleList"]; + }; + }; + }; + }; + environments_logs_services_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_LogsServicesRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_LogsServicesRequest"]; + "multipart/form-data": components["schemas"]["_LogsServicesRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsServicesResponse"]; + }; + }; + }; + }; + environments_logs_sparkline_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_LogsSparklineRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_LogsSparklineRequest"]; + "multipart/form-data": components["schemas"]["_LogsSparklineRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsSparklineResponse"]; + }; + }; + }; + }; + environments_logs_values_retrieve: { + parameters: { + query: { + /** + * @description Type of attribute: "log" or "resource". Defaults to "log". + * + * * `log` - log + * * `resource` - resource + */ + attribute_type?: "log" | "resource"; + /** @description Date range to search within. Defaults to last hour. */ + dateRange?: components["schemas"]["_DateRange"]; + /** @description Property filters to narrow which logs are scanned for values. */ + filterGroup?: components["schemas"]["_LogPropertyFilter"][]; + /** @description The attribute key to get values for */ + key: string; + /** @description Filter values to those appearing in logs from these services. */ + serviceNames?: string[]; + /** @description Search filter for attribute values */ + value?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsValuesResponse"]; + }; + }; + }; + }; + environments_persisted_folder_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedPersistedFolderList"]; + }; + }; + }; + }; + environments_persisted_folder_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PersistedFolder"]; + "application/x-www-form-urlencoded": components["schemas"]["PersistedFolder"]; + "multipart/form-data": components["schemas"]["PersistedFolder"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersistedFolder"]; + }; + }; + }; + }; + environments_persisted_folder_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this Persisted Folder. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersistedFolder"]; + }; + }; + }; + }; + environments_persisted_folder_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this Persisted Folder. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PersistedFolder"]; + "application/x-www-form-urlencoded": components["schemas"]["PersistedFolder"]; + "multipart/form-data": components["schemas"]["PersistedFolder"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersistedFolder"]; + }; + }; + }; + }; + environments_persisted_folder_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this Persisted Folder. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persisted_folder_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this Persisted Folder. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedPersistedFolder"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedPersistedFolder"]; + "multipart/form-data": components["schemas"]["PatchedPersistedFolder"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersistedFolder"]; + }; + }; + }; + }; + environments_persons_list: { + parameters: { + query?: { + /** @description Filter list by distinct id. */ + distinct_id?: string; + /** @description Filter persons by email (exact match) */ + email?: string; + format?: "csv" | "json"; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Filter Persons by person properties. */ + properties?: components["schemas"]["Property"][]; + /** @description Search persons, either by email (full text search) or distinct_id (exact match). */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedPersonRecordList"]; + "text/csv": components["schemas"]["PaginatedPersonRecordList"]; + }; + }; + }; + }; + environments_persons_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique value identifying this person. Accepts both numeric ID and UUID. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersonRecord"]; + "text/csv": components["schemas"]["PersonRecord"]; + }; + }; + }; + }; + environments_persons_update: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique value identifying this person. Accepts both numeric ID and UUID. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersonRecord"]; + "text/csv": components["schemas"]["PersonRecord"]; + }; + }; + }; + }; + environments_persons_partial_update: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique value identifying this person. Accepts both numeric ID and UUID. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedPersonRecord"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersonRecord"]; + "text/csv": components["schemas"]["PersonRecord"]; + }; + }; + }; + }; + environments_persons_activity_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this person. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_delete_property_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique value identifying this person. Accepts both numeric ID and UUID. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PersonDeletePropertyRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_properties_timeline_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this person. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_split_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this person. */ + id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_update_property_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique value identifying this person. Accepts both numeric ID and UUID. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PersonUpdatePropertyRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_all_activity_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_batch_by_distinct_ids_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_batch_by_uuids_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_bulk_delete_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonBulkDeleteRequest"]; + }; + }; + responses: { + 202: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersonBulkDeleteResponse"]; + "text/csv": components["schemas"]["PersonBulkDeleteResponse"]; + }; + }; + }; + }; + environments_persons_cohorts_retrieve: { + parameters: { + query: { + format?: "csv" | "json"; + /** @description The person ID or UUID to get cohorts for. */ + person_id: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_deletion_status_list: { + parameters: { + query?: { + format?: "csv" | "json"; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Filter by a specific person UUID. */ + person_uuid?: string; + /** @description Filter by deletion status: 'pending', 'completed', or 'all'. */ + status?: "all" | "completed" | "pending"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedAsyncDeletionStatusList"]; + "text/csv": components["schemas"]["PaginatedAsyncDeletionStatusList"]; + }; + }; + }; + }; + environments_persons_funnel_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_funnel_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_funnel_correlation_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_funnel_correlation_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_lifecycle_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_properties_at_time_retrieve: { + parameters: { + query: { + /** @description The distinct_id of the person (mutually exclusive with person_id) */ + distinct_id?: string; + format?: "csv" | "json"; + /** @description Whether to handle $set_once operations (default: false) */ + include_set_once?: boolean; + /** @description The person_id (UUID) to build properties for (mutually exclusive with distinct_id) */ + person_id?: string; + /** @description ISO datetime string for the point in time (e.g., '2023-06-15T14:30:00Z') */ + timestamp: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersonPropertiesAtTimeResponse"]; + "text/csv": components["schemas"]["PersonPropertiesAtTimeResponse"]; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + "text/csv": unknown; + }; + }; + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + "text/csv": unknown; + }; + }; + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + "text/csv": unknown; + }; + }; + }; + }; + environments_persons_reset_person_distinct_id_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_trends_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_persons_values_retrieve: { + parameters: { + query: { + format?: "csv" | "json"; + /** @description The person property key to get values for (e.g., 'email', 'plan', 'role'). */ + key: string; + /** @description Optional search string to filter values (case-insensitive substring match). */ + value?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_plugin_configs_logs_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + plugin_config_id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedPluginLogEntryList"]; + }; + }; + }; + }; + environments_project_secret_api_keys_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedProjectSecretAPIKeyList"]; + }; + }; + }; + }; + environments_project_secret_api_keys_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + "application/x-www-form-urlencoded": components["schemas"]["ProjectSecretAPIKey"]; + "multipart/form-data": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + }; + }; + environments_project_secret_api_keys_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique value identifying this project secret api key. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + }; + }; + environments_project_secret_api_keys_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique value identifying this project secret api key. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + "application/x-www-form-urlencoded": components["schemas"]["ProjectSecretAPIKey"]; + "multipart/form-data": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + }; + }; + environments_project_secret_api_keys_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique value identifying this project secret api key. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_project_secret_api_keys_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique value identifying this project secret api key. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedProjectSecretAPIKey"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedProjectSecretAPIKey"]; + "multipart/form-data": components["schemas"]["PatchedProjectSecretAPIKey"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + }; + }; + environments_project_secret_api_keys_roll_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique value identifying this project secret api key. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + }; + }; + environments_query_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["QueryRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["QueryRequest"]; + "multipart/form-data": components["schemas"]["QueryRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["QueryResponseAlternative"]; + }; + }; + }; + }; + environments_query_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["QueryStatusResponse"]; + }; + }; + }; + }; + environments_query_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Query cancelled */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_query_log_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + environments_query_create_with_kind: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + query_kind: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_query_check_auth_for_async_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + environments_query_draft_sql_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + environments_query_upgrade_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["QueryUpgradeRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["QueryUpgradeRequest"]; + "multipart/form-data": components["schemas"]["QueryUpgradeRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["QueryUpgradeResponse"]; + }; + }; + }; + }; + environments_saved_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHeatmapScreenshotResponseList"]; + }; + }; + }; + }; + environments_saved_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HeatmapScreenshotResponse"]; + "application/x-www-form-urlencoded": components["schemas"]["HeatmapScreenshotResponse"]; + "multipart/form-data": components["schemas"]["HeatmapScreenshotResponse"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeatmapScreenshotResponse"]; + }; + }; + }; + }; + environments_saved_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeatmapScreenshotResponse"]; + }; + }; + }; + }; + environments_saved_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_saved_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedHeatmapScreenshotResponse"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedHeatmapScreenshotResponse"]; + "multipart/form-data": components["schemas"]["PatchedHeatmapScreenshotResponse"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeatmapScreenshotResponse"]; + }; + }; + }; + }; + environments_saved_regenerate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HeatmapScreenshotResponse"]; + "application/x-www-form-urlencoded": components["schemas"]["HeatmapScreenshotResponse"]; + "multipart/form-data": components["schemas"]["HeatmapScreenshotResponse"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_session_recording_playlists_list: { + parameters: { + query?: { + created_by?: number; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + short_id?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSessionRecordingPlaylistList"]; + }; + }; + }; + }; + environments_session_recording_playlists_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + "application/x-www-form-urlencoded": components["schemas"]["SessionRecordingPlaylist"]; + "multipart/form-data": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + }; + }; + environments_session_recording_playlists_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + }; + }; + environments_session_recording_playlists_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + "application/x-www-form-urlencoded": components["schemas"]["SessionRecordingPlaylist"]; + "multipart/form-data": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + }; + }; + environments_session_recording_playlists_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_session_recording_playlists_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedSessionRecordingPlaylist"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedSessionRecordingPlaylist"]; + "multipart/form-data": components["schemas"]["PatchedSessionRecordingPlaylist"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + }; + }; + environments_session_recording_playlists_recordings_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_session_recording_playlists_recordings_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + session_recording_id: string; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + "application/x-www-form-urlencoded": components["schemas"]["SessionRecordingPlaylist"]; + "multipart/form-data": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_session_recording_playlists_recordings_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + session_recording_id: string; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_session_recordings_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSessionRecordingList"]; + }; + }; + }; + }; + environments_session_recordings_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this session recording. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecording"]; + }; + }; + }; + }; + environments_session_recordings_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this session recording. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SessionRecording"]; + "application/x-www-form-urlencoded": components["schemas"]["SessionRecording"]; + "multipart/form-data": components["schemas"]["SessionRecording"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecording"]; + }; + }; + }; + }; + environments_session_recordings_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this session recording. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_session_recordings_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this session recording. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedSessionRecording"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedSessionRecording"]; + "multipart/form-data": components["schemas"]["PatchedSessionRecording"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecording"]; + }; + }; + }; + }; + environments_session_recordings_sharing_list: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + recording_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"][]; + }; + }; + }; + }; + environments_session_recordings_sharing_passwords_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + recording_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + environments_session_recordings_sharing_passwords_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + password_id: string; + recording_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_session_recordings_sharing_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + recording_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + environments_sessions_property_definitions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_sessions_values_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_subscriptions_list: { + parameters: { + query?: { + /** @description Filter by creator user UUID. */ + created_by?: string; + /** @description Filter by dashboard ID. */ + dashboard?: number; + /** @description Filter by insight ID. */ + insight?: number; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Which field to use when ordering the results. */ + ordering?: string; + /** @description Filter by subscription resource: insight vs dashboard export. */ + resource_type?: "dashboard" | "insight"; + /** @description A search term. */ + search?: string; + /** @description Filter by delivery channel (email, Slack, or webhook). */ + target_type?: "email" | "slack" | "webhook"; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSubscriptionList"]; + }; + }; + }; + }; + environments_subscriptions_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Subscription"]; + "application/x-www-form-urlencoded": components["schemas"]["Subscription"]; + "multipart/form-data": components["schemas"]["Subscription"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Subscription"]; + }; + }; + }; + }; + environments_subscriptions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this subscription. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Subscription"]; + }; + }; + }; + }; + environments_subscriptions_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this subscription. */ + id: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Subscription"]; + "application/x-www-form-urlencoded": components["schemas"]["Subscription"]; + "multipart/form-data": components["schemas"]["Subscription"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Subscription"]; + }; + }; + }; + }; + environments_subscriptions_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this subscription. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_subscriptions_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this subscription. */ + id: number; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedSubscription"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedSubscription"]; + "multipart/form-data": components["schemas"]["PatchedSubscription"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Subscription"]; + }; + }; + }; + }; + environments_subscriptions_test_delivery_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A unique integer value identifying this subscription. */ + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Test delivery workflow started */ + 202: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_subscriptions_summary_quota_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Org-wide AI summary quota: count of currently-active summaries and the limit for the org's plan tier. `limit` is null when no cap is configured. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + active_count: number; + limit: number | null; + at_limit: boolean; + }; + }; + }; + }; + }; + environments_warehouse_saved_queries_list: { + parameters: { + query?: { + /** @description A page number within the paginated result set. */ + page?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDataWarehouseSavedQueryMinimalList"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_warehouse_saved_queries_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["PatchedDataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_ancestors_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_cancel_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_dependencies_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_descendants_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_materialize_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_revert_materialization_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_run_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_run_history_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_queries_resume_schedules_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + environments_warehouse_saved_query_folders_list: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQueryFolder"][]; + }; + }; + }; + }; + environments_warehouse_saved_query_folders_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQueryFolder"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQueryFolder"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQueryFolder"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQueryFolder"]; + }; + }; + }; + }; + environments_warehouse_saved_query_folders_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query folder. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQueryFolder"]; + }; + }; + }; + }; + environments_warehouse_saved_query_folders_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query folder. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_warehouse_saved_query_folders_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse saved query folder. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDataWarehouseSavedQueryFolder"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDataWarehouseSavedQueryFolder"]; + "multipart/form-data": components["schemas"]["PatchedDataWarehouseSavedQueryFolder"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQueryFolder"]; + }; + }; + }; + }; + environments_warehouse_tables_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedTableList"]; + }; + }; + }; + }; + environments_warehouse_tables_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Table"]; + "application/x-www-form-urlencoded": components["schemas"]["Table"]; + "multipart/form-data": components["schemas"]["Table"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Table"]; + }; + }; + }; + }; + environments_warehouse_tables_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse table. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Table"]; + }; + }; + }; + }; + environments_warehouse_tables_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse table. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Table"]; + "application/x-www-form-urlencoded": components["schemas"]["Table"]; + "multipart/form-data": components["schemas"]["Table"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Table"]; + }; + }; + }; + }; + environments_warehouse_tables_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse table. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_warehouse_tables_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse table. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTable"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTable"]; + "multipart/form-data": components["schemas"]["PatchedTable"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Table"]; + }; + }; + }; + }; + environments_warehouse_tables_refresh_schema_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse table. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Table"]; + "application/x-www-form-urlencoded": components["schemas"]["Table"]; + "multipart/form-data": components["schemas"]["Table"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_warehouse_tables_update_schema_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse table. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Table"]; + "application/x-www-form-urlencoded": components["schemas"]["Table"]; + "multipart/form-data": components["schemas"]["Table"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_warehouse_tables_file_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "multipart/form-data": components["schemas"]["Table"]; + "application/x-www-form-urlencoded": components["schemas"]["Table"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_warehouse_view_link_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedViewLinkList"]; + }; + }; + }; + }; + environments_warehouse_view_link_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ViewLink"]; + "application/x-www-form-urlencoded": components["schemas"]["ViewLink"]; + "multipart/form-data": components["schemas"]["ViewLink"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + environments_warehouse_view_link_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse join. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + environments_warehouse_view_link_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse join. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ViewLink"]; + "application/x-www-form-urlencoded": components["schemas"]["ViewLink"]; + "multipart/form-data": components["schemas"]["ViewLink"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + environments_warehouse_view_link_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse join. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_warehouse_view_link_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse join. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedViewLink"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedViewLink"]; + "multipart/form-data": components["schemas"]["PatchedViewLink"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + environments_warehouse_view_link_validate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ViewLinkValidation"]; + "application/x-www-form-urlencoded": components["schemas"]["ViewLinkValidation"]; + "multipart/form-data": components["schemas"]["ViewLinkValidation"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_warehouse_view_links_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedViewLinkList"]; + }; + }; + }; + }; + environments_warehouse_view_links_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ViewLink"]; + "application/x-www-form-urlencoded": components["schemas"]["ViewLink"]; + "multipart/form-data": components["schemas"]["ViewLink"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + environments_warehouse_view_links_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse join. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + environments_warehouse_view_links_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse join. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ViewLink"]; + "application/x-www-form-urlencoded": components["schemas"]["ViewLink"]; + "multipart/form-data": components["schemas"]["ViewLink"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + environments_warehouse_view_links_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse join. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_warehouse_view_links_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + /** @description A UUID string identifying this data warehouse join. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedViewLink"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedViewLink"]; + "multipart/form-data": components["schemas"]["PatchedViewLink"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + environments_warehouse_view_links_validate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Deprecated. Use /api/projects/{project_id}/ instead. */ + environment_id: components["parameters"]["EnvironmentIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ViewLinkValidation"]; + "application/x-www-form-urlencoded": components["schemas"]["ViewLinkValidation"]; + "multipart/form-data": components["schemas"]["ViewLinkValidation"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + approval_policies_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedApprovalPolicyList"]; + }; + }; + }; + }; + approval_policies_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ApprovalPolicy"]; + "application/x-www-form-urlencoded": components["schemas"]["ApprovalPolicy"]; + "multipart/form-data": components["schemas"]["ApprovalPolicy"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ApprovalPolicy"]; + }; + }; + }; + }; + approval_policies_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this approval policy. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ApprovalPolicy"]; + }; + }; + }; + }; + approval_policies_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this approval policy. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ApprovalPolicy"]; + "application/x-www-form-urlencoded": components["schemas"]["ApprovalPolicy"]; + "multipart/form-data": components["schemas"]["ApprovalPolicy"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ApprovalPolicy"]; + }; + }; + }; + }; + approval_policies_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this approval policy. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + approval_policies_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this approval policy. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedApprovalPolicy"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedApprovalPolicy"]; + "multipart/form-data": components["schemas"]["PatchedApprovalPolicy"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ApprovalPolicy"]; + }; + }; + }; + }; + change_requests_list: { + parameters: { + query?: { + action_key?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + requester?: number; + resource_id?: string; + resource_type?: string; + /** @description Multiple values may be separated by commas. */ + state?: string[]; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedChangeRequestList"]; + }; + }; + }; + }; + change_requests_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this change request. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ChangeRequest"]; + }; + }; + }; + }; + change_requests_approve_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this change request. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ChangeRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ChangeRequest"]; + "multipart/form-data": components["schemas"]["ChangeRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ChangeRequest"]; + }; + }; + }; + }; + change_requests_cancel_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this change request. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ChangeRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ChangeRequest"]; + "multipart/form-data": components["schemas"]["ChangeRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ChangeRequest"]; + }; + }; + }; + }; + change_requests_reject_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this change request. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ChangeRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ChangeRequest"]; + "multipart/form-data": components["schemas"]["ChangeRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ChangeRequest"]; + }; + }; + }; + }; + conversations_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedConversationMinimalList"]; + }; + }; + }; + }; + conversations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Message"]; + "application/x-www-form-urlencoded": components["schemas"]["Message"]; + "multipart/form-data": components["schemas"]["Message"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Message"]; + }; + }; + }; + }; + conversations_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this conversation. */ + conversation: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Conversation"]; + }; + }; + }; + }; + conversations_append_message_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this conversation. */ + conversation: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["MessageMinimal"]; + "application/x-www-form-urlencoded": components["schemas"]["MessageMinimal"]; + "multipart/form-data": components["schemas"]["MessageMinimal"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageMinimal"]; + }; + }; + }; + }; + conversations_cancel_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this conversation. */ + conversation: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedConversation"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedConversation"]; + "multipart/form-data": components["schemas"]["PatchedConversation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Conversation"]; + }; + }; + }; + }; + conversations_queue_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this conversation. */ + conversation: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Conversation"]; + }; + }; + }; + }; + conversations_queue_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this conversation. */ + conversation: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Conversation"]; + "application/x-www-form-urlencoded": components["schemas"]["Conversation"]; + "multipart/form-data": components["schemas"]["Conversation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Conversation"]; + }; + }; + }; + }; + conversations_queue_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this conversation. */ + conversation: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + queue_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + conversations_queue_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this conversation. */ + conversation: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + queue_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedConversation"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedConversation"]; + "multipart/form-data": components["schemas"]["PatchedConversation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Conversation"]; + }; + }; + }; + }; + conversations_queue_clear_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this conversation. */ + conversation: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Conversation"]; + "application/x-www-form-urlencoded": components["schemas"]["Conversation"]; + "multipart/form-data": components["schemas"]["Conversation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Conversation"]; + }; + }; + }; + }; + conversations_views_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedTicketViewList"]; + }; + }; + }; + }; + conversations_views_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TicketView"]; + "application/x-www-form-urlencoded": components["schemas"]["TicketView"]; + "multipart/form-data": components["schemas"]["TicketView"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TicketView"]; + }; + }; + }; + }; + conversations_views_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TicketView"]; + }; + }; + }; + }; + conversations_views_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + customer_journeys_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedCustomerJourneyList"]; + }; + }; + }; + }; + customer_journeys_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CustomerJourney"]; + "application/x-www-form-urlencoded": components["schemas"]["CustomerJourney"]; + "multipart/form-data": components["schemas"]["CustomerJourney"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CustomerJourney"]; + }; + }; + }; + }; + customer_journeys_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this customer journey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CustomerJourney"]; + }; + }; + }; + }; + customer_journeys_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this customer journey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CustomerJourney"]; + "application/x-www-form-urlencoded": components["schemas"]["CustomerJourney"]; + "multipart/form-data": components["schemas"]["CustomerJourney"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CustomerJourney"]; + }; + }; + }; + }; + customer_journeys_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this customer journey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + customer_journeys_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this customer journey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedCustomerJourney"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedCustomerJourney"]; + "multipart/form-data": components["schemas"]["PatchedCustomerJourney"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CustomerJourney"]; + }; + }; + }; + }; + customer_profile_configs_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedCustomerProfileConfigList"]; + }; + }; + }; + }; + customer_profile_configs_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CustomerProfileConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["CustomerProfileConfig"]; + "multipart/form-data": components["schemas"]["CustomerProfileConfig"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CustomerProfileConfig"]; + }; + }; + }; + }; + customer_profile_configs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this customer profile config. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CustomerProfileConfig"]; + }; + }; + }; + }; + customer_profile_configs_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this customer profile config. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CustomerProfileConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["CustomerProfileConfig"]; + "multipart/form-data": components["schemas"]["CustomerProfileConfig"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CustomerProfileConfig"]; + }; + }; + }; + }; + customer_profile_configs_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this customer profile config. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + customer_profile_configs_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this customer profile config. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedCustomerProfileConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedCustomerProfileConfig"]; + "multipart/form-data": components["schemas"]["PatchedCustomerProfileConfig"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CustomerProfileConfig"]; + }; + }; + }; + }; + desktop_recordings_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDesktopRecordingList"]; + }; + }; + }; + }; + desktop_recordings_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["CreateRecordingRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["CreateRecordingRequest"]; + "multipart/form-data": components["schemas"]["CreateRecordingRequest"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CreateRecordingResponse"]; + }; + }; + }; + }; + desktop_recordings_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this desktop recording. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DesktopRecording"]; + }; + }; + }; + }; + desktop_recordings_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this desktop recording. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DesktopRecording"]; + "application/x-www-form-urlencoded": components["schemas"]["DesktopRecording"]; + "multipart/form-data": components["schemas"]["DesktopRecording"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DesktopRecording"]; + }; + }; + }; + }; + desktop_recordings_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this desktop recording. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + desktop_recordings_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this desktop recording. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDesktopRecording"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDesktopRecording"]; + "multipart/form-data": components["schemas"]["PatchedDesktopRecording"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DesktopRecording"]; + }; + }; + }; + }; + desktop_recordings_append_segments_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this desktop recording. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AppendSegments"]; + "application/x-www-form-urlencoded": components["schemas"]["AppendSegments"]; + "multipart/form-data": components["schemas"]["AppendSegments"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DesktopRecording"]; + }; + }; + }; + }; + error_tracking_assignment_rules_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedErrorTrackingAssignmentRuleList"]; + }; + }; + }; + }; + error_tracking_assignment_rules_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingAssignmentRuleCreateRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingAssignmentRuleCreateRequest"]; + "multipart/form-data": components["schemas"]["ErrorTrackingAssignmentRuleCreateRequest"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingAssignmentRule"]; + }; + }; + }; + }; + error_tracking_assignment_rules_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking assignment rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingAssignmentRule"]; + }; + }; + }; + }; + error_tracking_assignment_rules_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking assignment rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ErrorTrackingAssignmentRuleUpdateRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingAssignmentRuleUpdateRequest"]; + "multipart/form-data": components["schemas"]["ErrorTrackingAssignmentRuleUpdateRequest"]; + }; + }; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_assignment_rules_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking assignment rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_assignment_rules_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking assignment rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedErrorTrackingAssignmentRuleUpdateRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedErrorTrackingAssignmentRuleUpdateRequest"]; + "multipart/form-data": components["schemas"]["PatchedErrorTrackingAssignmentRuleUpdateRequest"]; + }; + }; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_assignment_rules_reorder_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedErrorTrackingAssignmentRule"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedErrorTrackingAssignmentRule"]; + "multipart/form-data": components["schemas"]["PatchedErrorTrackingAssignmentRule"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_fingerprints_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedErrorTrackingFingerprintList"]; + }; + }; + }; + }; + error_tracking_fingerprints_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Fingerprint ID. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingFingerprint"]; + }; + }; + }; + }; + error_tracking_fingerprints_destroy: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_git_provider_file_links_resolve_github_retrieve: { + parameters: { + query: { + /** @description Code snippet to search for in repository files. */ + code_sample: string; + /** @description File name to match in search results. */ + file_name: string; + /** @description Repository owner or namespace. */ + owner: string; + /** @description Repository name. */ + repository: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GitProviderFileLinkResolveResponse"]; + }; + }; + }; + }; + error_tracking_git_provider_file_links_resolve_gitlab_retrieve: { + parameters: { + query: { + /** @description Code snippet to search for in repository files. */ + code_sample: string; + /** @description File name to match in search results. */ + file_name: string; + /** @description Repository owner or namespace. */ + owner: string; + /** @description Repository name. */ + repository: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GitProviderFileLinkResolveResponse"]; + }; + }; + }; + }; + error_tracking_grouping_rules_list: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingGroupingRuleListResponse"]; + }; + }; + }; + }; + error_tracking_grouping_rules_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingGroupingRuleCreateRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingGroupingRuleCreateRequest"]; + "multipart/form-data": components["schemas"]["ErrorTrackingGroupingRuleCreateRequest"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingGroupingRule"]; + }; + }; + }; + }; + error_tracking_grouping_rules_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking grouping rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingGroupingRule"]; + }; + }; + }; + }; + error_tracking_grouping_rules_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking grouping rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingGroupingRule"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingGroupingRule"]; + "multipart/form-data": components["schemas"]["ErrorTrackingGroupingRule"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingGroupingRule"]; + }; + }; + }; + }; + error_tracking_grouping_rules_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking grouping rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_grouping_rules_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking grouping rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedErrorTrackingGroupingRule"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedErrorTrackingGroupingRule"]; + "multipart/form-data": components["schemas"]["PatchedErrorTrackingGroupingRule"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingGroupingRule"]; + }; + }; + }; + }; + error_tracking_grouping_rules_reorder_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedErrorTrackingGroupingRule"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedErrorTrackingGroupingRule"]; + "multipart/form-data": components["schemas"]["PatchedErrorTrackingGroupingRule"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_issues_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedErrorTrackingIssueFullList"]; + }; + }; + }; + }; + error_tracking_issues_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingIssueFull"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingIssueFull"]; + "multipart/form-data": components["schemas"]["ErrorTrackingIssueFull"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingIssueFull"]; + }; + }; + }; + }; + error_tracking_issues_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking issue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingIssueFull"]; + }; + }; + }; + }; + error_tracking_issues_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking issue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingIssueFull"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingIssueFull"]; + "multipart/form-data": components["schemas"]["ErrorTrackingIssueFull"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingIssueFull"]; + }; + }; + }; + }; + error_tracking_issues_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking issue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_issues_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking issue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedErrorTrackingIssueFull"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedErrorTrackingIssueFull"]; + "multipart/form-data": components["schemas"]["PatchedErrorTrackingIssueFull"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingIssueFull"]; + }; + }; + }; + }; + error_tracking_issues_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking issue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_issues_assign_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking issue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedErrorTrackingIssueFull"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedErrorTrackingIssueFull"]; + "multipart/form-data": components["schemas"]["PatchedErrorTrackingIssueFull"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_issues_cohort_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking issue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingIssueFull"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingIssueFull"]; + "multipart/form-data": components["schemas"]["ErrorTrackingIssueFull"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_issues_merge_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking issue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingIssueMergeRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingIssueMergeRequest"]; + "multipart/form-data": components["schemas"]["ErrorTrackingIssueMergeRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingIssueMergeResponse"]; + }; + }; + }; + }; + error_tracking_issues_split_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking issue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ErrorTrackingIssueSplitRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingIssueSplitRequest"]; + "multipart/form-data": components["schemas"]["ErrorTrackingIssueSplitRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingIssueSplitResponse"]; + }; + }; + }; + }; + error_tracking_issues_all_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_issues_bulk_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingIssueFull"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingIssueFull"]; + "multipart/form-data": components["schemas"]["ErrorTrackingIssueFull"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_issues_exists_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_issues_values_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_query_issue_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingIssueQueryRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingIssueQueryRequest"]; + "multipart/form-data": components["schemas"]["ErrorTrackingIssueQueryRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingIssueDetail"]; + }; + }; + /** @description Issue not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_query_issue_events_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingIssueEventsQueryRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingIssueEventsQueryRequest"]; + "multipart/form-data": components["schemas"]["ErrorTrackingIssueEventsQueryRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingIssueEventsResponse"]; + }; + }; + /** @description Issue not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_query_issues_list_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ErrorTrackingIssuesListQueryRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingIssuesListQueryRequest"]; + "multipart/form-data": components["schemas"]["ErrorTrackingIssuesListQueryRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingIssuesListResponse"]; + }; + }; + }; + }; + error_tracking_recommendations_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedErrorTrackingRecommendationList"]; + }; + }; + }; + }; + error_tracking_recommendations_dismiss_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking recommendation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingRecommendation"]; + }; + }; + }; + }; + error_tracking_recommendations_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking recommendation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingRecommendation"]; + }; + }; + }; + }; + error_tracking_recommendations_restore_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking recommendation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingRecommendation"]; + }; + }; + }; + }; + error_tracking_settings_retrieve_settings_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingSettings"]; + }; + }; + }; + }; + error_tracking_settings_update_settings_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedErrorTrackingSettings"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedErrorTrackingSettings"]; + "multipart/form-data": components["schemas"]["PatchedErrorTrackingSettings"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingSettings"]; + }; + }; + }; + }; + error_tracking_spike_detection_config_list: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingSpikeDetectionConfig"][]; + }; + }; + }; + }; + error_tracking_spike_detection_config_update_config_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedErrorTrackingSpikeDetectionConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedErrorTrackingSpikeDetectionConfig"]; + "multipart/form-data": components["schemas"]["PatchedErrorTrackingSpikeDetectionConfig"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingSpikeDetectionConfig"]; + }; + }; + }; + }; + error_tracking_spike_events_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedErrorTrackingSpikeEventList"]; + }; + }; + }; + }; + error_tracking_stack_frames_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedErrorTrackingStackFrameList"]; + }; + }; + }; + }; + error_tracking_stack_frames_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking stack frame. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingStackFrame"]; + }; + }; + }; + }; + error_tracking_stack_frames_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking stack frame. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_stack_frames_batch_get_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingStackFrame"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingStackFrame"]; + "multipart/form-data": components["schemas"]["ErrorTrackingStackFrame"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_suppression_rules_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedErrorTrackingSuppressionRuleList"]; + }; + }; + }; + }; + error_tracking_suppression_rules_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ErrorTrackingSuppressionRuleCreateRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingSuppressionRuleCreateRequest"]; + "multipart/form-data": components["schemas"]["ErrorTrackingSuppressionRuleCreateRequest"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingSuppressionRule"]; + }; + }; + }; + }; + error_tracking_suppression_rules_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking suppression rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingSuppressionRule"]; + }; + }; + }; + }; + error_tracking_suppression_rules_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking suppression rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingSuppressionRule"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingSuppressionRule"]; + "multipart/form-data": components["schemas"]["ErrorTrackingSuppressionRule"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingSuppressionRule"]; + }; + }; + }; + }; + error_tracking_suppression_rules_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking suppression rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_suppression_rules_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking suppression rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedErrorTrackingSuppressionRule"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedErrorTrackingSuppressionRule"]; + "multipart/form-data": components["schemas"]["PatchedErrorTrackingSuppressionRule"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingSuppressionRule"]; + }; + }; + }; + }; + error_tracking_suppression_rules_reorder_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedErrorTrackingSuppressionRule"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedErrorTrackingSuppressionRule"]; + "multipart/form-data": components["schemas"]["PatchedErrorTrackingSuppressionRule"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + evaluation_runs_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EvaluationRunRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["EvaluationRunRequest"]; + "multipart/form-data": components["schemas"]["EvaluationRunRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + evaluations_list: { + parameters: { + query?: { + /** @description Filter by enabled status */ + enabled?: boolean; + /** @description Multiple values may be separated by commas. */ + id__in?: string[]; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** + * @description Ordering + * + * * `created_at` - Created At + * * `-created_at` - Created At (descending) + * * `updated_at` - Updated At + * * `-updated_at` - Updated At (descending) + * * `name` - Name + * * `-name` - Name (descending) + */ + order_by?: ("-created_at" | "-name" | "-updated_at" | "created_at" | "name" | "updated_at")[]; + /** @description Search in name or description */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedEvaluationList"]; + }; + }; + }; + }; + evaluations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Evaluation"]; + "application/x-www-form-urlencoded": components["schemas"]["Evaluation"]; + "multipart/form-data": components["schemas"]["Evaluation"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Evaluation"]; + }; + }; + }; + }; + evaluations_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this evaluation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Evaluation"]; + }; + }; + }; + }; + evaluations_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this evaluation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Evaluation"]; + "application/x-www-form-urlencoded": components["schemas"]["Evaluation"]; + "multipart/form-data": components["schemas"]["Evaluation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Evaluation"]; + }; + }; + }; + }; + evaluations_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this evaluation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + evaluations_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this evaluation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedEvaluation"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedEvaluation"]; + "multipart/form-data": components["schemas"]["PatchedEvaluation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Evaluation"]; + }; + }; + }; + }; + evaluations_test_hog_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TestHogRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TestHogRequest"]; + "multipart/form-data": components["schemas"]["TestHogRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TestHogResponse"]; + }; + }; + }; + }; + event_filter_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EventFilterConfig"]; + }; + }; + }; + }; + event_filter_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["EventFilterConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["EventFilterConfig"]; + "multipart/form-data": components["schemas"]["EventFilterConfig"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EventFilterConfig"]; + }; + }; + }; + }; + event_filter_metrics_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AppMetricsResponse"]; + }; + }; + }; + }; + event_filter_metrics_totals_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AppMetricsTotalsResponse"]; + }; + }; + }; + }; + health_issues_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHealthIssueList"]; + }; + }; + }; + }; + health_issues_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this health issue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HealthIssue"]; + }; + }; + }; + }; + health_issues_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this health issue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedHealthIssue"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedHealthIssue"]; + "multipart/form-data": components["schemas"]["PatchedHealthIssue"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HealthIssue"]; + }; + }; + }; + }; + health_issues_resolve_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this health issue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["HealthIssue"]; + "application/x-www-form-urlencoded": components["schemas"]["HealthIssue"]; + "multipart/form-data": components["schemas"]["HealthIssue"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HealthIssue"]; + }; + }; + }; + }; + health_issues_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Health check refresh jobs scheduled for the team. */ + 202: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Refresh was triggered recently; try again later. */ + 429: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + health_issues_summary_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HealthIssue"]; + }; + }; + }; + }; + lineage_get_upstream_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + llm_analytics_clustering_config_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + llm_analytics_clustering_config_set_event_filters_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + llm_analytics_clustering_jobs_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedClusteringJobList"]; + }; + }; + }; + }; + llm_analytics_clustering_jobs_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ClusteringJob"]; + "application/x-www-form-urlencoded": components["schemas"]["ClusteringJob"]; + "multipart/form-data": components["schemas"]["ClusteringJob"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ClusteringJob"]; + }; + }; + }; + }; + llm_analytics_clustering_jobs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this clustering job. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ClusteringJob"]; + }; + }; + }; + }; + llm_analytics_clustering_jobs_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this clustering job. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ClusteringJob"]; + "application/x-www-form-urlencoded": components["schemas"]["ClusteringJob"]; + "multipart/form-data": components["schemas"]["ClusteringJob"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ClusteringJob"]; + }; + }; + }; + }; + llm_analytics_clustering_jobs_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this clustering job. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + llm_analytics_clustering_jobs_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this clustering job. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedClusteringJob"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedClusteringJob"]; + "multipart/form-data": components["schemas"]["PatchedClusteringJob"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ClusteringJob"]; + }; + }; + }; + }; + llm_analytics_evaluation_config_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EvaluationConfig"]; + }; + }; + }; + }; + llm_analytics_evaluation_config_set_active_key_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EvaluationConfigSetActiveKeyRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["EvaluationConfigSetActiveKeyRequest"]; + "multipart/form-data": components["schemas"]["EvaluationConfigSetActiveKeyRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EvaluationConfig"]; + }; + }; + }; + }; + llm_analytics_evaluation_reports_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedEvaluationReportList"]; + }; + }; + }; + }; + llm_analytics_evaluation_reports_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EvaluationReport"]; + "application/x-www-form-urlencoded": components["schemas"]["EvaluationReport"]; + "multipart/form-data": components["schemas"]["EvaluationReport"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EvaluationReport"]; + }; + }; + }; + }; + llm_analytics_evaluation_reports_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this evaluation report. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EvaluationReport"]; + }; + }; + }; + }; + llm_analytics_evaluation_reports_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this evaluation report. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EvaluationReport"]; + "application/x-www-form-urlencoded": components["schemas"]["EvaluationReport"]; + "multipart/form-data": components["schemas"]["EvaluationReport"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EvaluationReport"]; + }; + }; + }; + }; + llm_analytics_evaluation_reports_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this evaluation report. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + llm_analytics_evaluation_reports_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this evaluation report. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedEvaluationReport"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedEvaluationReport"]; + "multipart/form-data": components["schemas"]["PatchedEvaluationReport"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EvaluationReport"]; + }; + }; + }; + }; + llm_analytics_evaluation_reports_generate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this evaluation report. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 202: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + llm_analytics_evaluation_reports_runs_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description A UUID string identifying this evaluation report. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedEvaluationReportRunList"]; + }; + }; + }; + }; + llm_analytics_evaluation_summary_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EvaluationSummaryRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["EvaluationSummaryRequest"]; + "multipart/form-data": components["schemas"]["EvaluationSummaryRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EvaluationSummaryResponse"]; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + llm_analytics_models_retrieve: { + parameters: { + query: { + /** @description Optional provider key UUID. When supplied, models reachable with that specific key are returned (useful for Azure OpenAI, where the deployment list depends on the configured endpoint). Must belong to the same provider as the `provider` parameter. */ + key_id?: string; + /** @description LLM provider to list models for. Must be one of the supported providers. */ + provider: "anthropic" | "azure_openai" | "fireworks" | "gemini" | "openai" | "openrouter" | "together_ai"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMModelsListResponse"]; + }; + }; + }; + }; + llm_analytics_offline_evaluations_experiment_items_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["OfflineExperimentItemsRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["OfflineExperimentItemsRequest"]; + "multipart/form-data": components["schemas"]["OfflineExperimentItemsRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OfflineExperimentItemsResponse"]; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + llm_analytics_provider_key_validations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + llm_analytics_provider_keys_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLLMProviderKeyList"]; + }; + }; + }; + }; + llm_analytics_provider_keys_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LLMProviderKey"]; + "application/x-www-form-urlencoded": components["schemas"]["LLMProviderKey"]; + "multipart/form-data": components["schemas"]["LLMProviderKey"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMProviderKey"]; + }; + }; + }; + }; + llm_analytics_provider_keys_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this llm provider key. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMProviderKey"]; + }; + }; + }; + }; + llm_analytics_provider_keys_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this llm provider key. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LLMProviderKey"]; + "application/x-www-form-urlencoded": components["schemas"]["LLMProviderKey"]; + "multipart/form-data": components["schemas"]["LLMProviderKey"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMProviderKey"]; + }; + }; + }; + }; + llm_analytics_provider_keys_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this llm provider key. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + llm_analytics_provider_keys_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this llm provider key. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedLLMProviderKey"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedLLMProviderKey"]; + "multipart/form-data": components["schemas"]["PatchedLLMProviderKey"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMProviderKey"]; + }; + }; + }; + }; + llm_analytics_provider_keys_assign_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this llm provider key. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LLMProviderKey"]; + "application/x-www-form-urlencoded": components["schemas"]["LLMProviderKey"]; + "multipart/form-data": components["schemas"]["LLMProviderKey"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMProviderKey"]; + }; + }; + }; + }; + llm_analytics_provider_keys_dependent_configs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this llm provider key. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMProviderKey"]; + }; + }; + }; + }; + llm_analytics_provider_keys_validate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this llm provider key. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LLMProviderKey"]; + "application/x-www-form-urlencoded": components["schemas"]["LLMProviderKey"]; + "multipart/form-data": components["schemas"]["LLMProviderKey"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMProviderKey"]; + }; + }; + }; + }; + llm_analytics_provider_keys_trial_evaluations_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMProviderKey"]; + }; + }; + }; + }; + llm_analytics_review_queue_items_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Order by `created_at` or `updated_at`. */ + order_by?: string; + /** @description Filter by a specific review queue ID. */ + queue_id?: string; + /** @description Search pending trace IDs. */ + search?: string; + /** @description Filter by an exact trace ID. */ + trace_id?: string; + /** @description Filter by multiple trace IDs separated by commas. */ + trace_id__in?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedReviewQueueItemList"]; + }; + }; + }; + }; + llm_analytics_review_queue_items_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ReviewQueueItemCreate"]; + "application/x-www-form-urlencoded": components["schemas"]["ReviewQueueItemCreate"]; + "multipart/form-data": components["schemas"]["ReviewQueueItemCreate"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ReviewQueueItem"]; + }; + }; + }; + }; + llm_analytics_review_queue_items_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this review queue item. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ReviewQueueItem"]; + }; + }; + }; + }; + llm_analytics_review_queue_items_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this review queue item. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + llm_analytics_review_queue_items_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this review queue item. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedReviewQueueItemUpdate"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedReviewQueueItemUpdate"]; + "multipart/form-data": components["schemas"]["PatchedReviewQueueItemUpdate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ReviewQueueItem"]; + }; + }; + }; + }; + llm_analytics_review_queues_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + name?: string; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Order by `name`, `updated_at`, or `created_at`. */ + order_by?: string; + /** @description Search review queue names. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedReviewQueueList"]; + }; + }; + }; + }; + llm_analytics_review_queues_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ReviewQueueCreate"]; + "application/x-www-form-urlencoded": components["schemas"]["ReviewQueueCreate"]; + "multipart/form-data": components["schemas"]["ReviewQueueCreate"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ReviewQueue"]; + }; + }; + }; + }; + llm_analytics_review_queues_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this review queue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ReviewQueue"]; + }; + }; + }; + }; + llm_analytics_review_queues_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this review queue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + llm_analytics_review_queues_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this review queue. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedReviewQueueUpdate"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedReviewQueueUpdate"]; + "multipart/form-data": components["schemas"]["PatchedReviewQueueUpdate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ReviewQueue"]; + }; + }; + }; + }; + llm_analytics_score_definitions_list: { + parameters: { + query?: { + /** @description Filter by archived state. */ + archived?: boolean; + /** @description Filter by scorer kind. */ + kind?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Sort by name, kind, created_at, updated_at, or current_version. */ + order_by?: string; + /** @description Search scorers by name or description. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedScoreDefinitionList"]; + }; + }; + }; + }; + llm_analytics_score_definitions_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ScoreDefinitionCreate"]; + "application/x-www-form-urlencoded": components["schemas"]["ScoreDefinitionCreate"]; + "multipart/form-data": components["schemas"]["ScoreDefinitionCreate"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ScoreDefinition"]; + }; + }; + }; + }; + llm_analytics_score_definitions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this score definition. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ScoreDefinition"]; + }; + }; + }; + }; + llm_analytics_score_definitions_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this score definition. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedScoreDefinitionMetadata"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedScoreDefinitionMetadata"]; + "multipart/form-data": components["schemas"]["PatchedScoreDefinitionMetadata"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ScoreDefinition"]; + }; + }; + }; + }; + llm_analytics_score_definitions_new_version_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this score definition. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ScoreDefinitionNewVersion"]; + "application/x-www-form-urlencoded": components["schemas"]["ScoreDefinitionNewVersion"]; + "multipart/form-data": components["schemas"]["ScoreDefinitionNewVersion"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ScoreDefinition"]; + }; + }; + }; + }; + llm_analytics_sentiment_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SentimentRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["SentimentRequest"]; + "multipart/form-data": components["schemas"]["SentimentRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SentimentBatchResponse"]; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + llm_analytics_sentiment_generations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SentimentGenerationsRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["SentimentGenerationsRequest"]; + "multipart/form-data": components["schemas"]["SentimentGenerationsRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SentimentGenerationsResponse"]; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + llm_analytics_summarization_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SummarizeRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["SummarizeRequest"]; + "multipart/form-data": components["schemas"]["SummarizeRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SummarizeResponse"]; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + llm_analytics_summarization_batch_check_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchCheckRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchCheckRequest"]; + "multipart/form-data": components["schemas"]["BatchCheckRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchCheckResponse"]; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + llm_analytics_text_repr_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TextReprRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TextReprRequest"]; + "multipart/form-data": components["schemas"]["TextReprRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TextReprResponse"]; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + 503: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + llm_analytics_trace_reviews_list: { + parameters: { + query?: { + /** @description Filter by a stable scorer definition ID. */ + definition_id?: string; + /** @description Filter by multiple scorer definition IDs separated by commas. */ + definition_id__in?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Order by `updated_at` or `created_at`. */ + order_by?: string; + /** @description Search trace IDs and comments. */ + search?: string; + /** @description Filter by an exact trace ID. */ + trace_id?: string; + /** @description Filter by multiple trace IDs separated by commas. */ + trace_id__in?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedTraceReviewList"]; + }; + }; + }; + }; + llm_analytics_trace_reviews_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TraceReviewCreate"]; + "application/x-www-form-urlencoded": components["schemas"]["TraceReviewCreate"]; + "multipart/form-data": components["schemas"]["TraceReviewCreate"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TraceReview"]; + }; + }; + }; + }; + llm_analytics_trace_reviews_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this trace review. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TraceReview"]; + }; + }; + }; + }; + llm_analytics_trace_reviews_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this trace review. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + llm_analytics_trace_reviews_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this trace review. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTraceReviewUpdate"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTraceReviewUpdate"]; + "multipart/form-data": components["schemas"]["PatchedTraceReviewUpdate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TraceReview"]; + }; + }; + }; + }; + llm_analytics_translate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TranslateRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TranslateRequest"]; + "multipart/form-data": components["schemas"]["TranslateRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + llm_prompts_list: { + parameters: { + query?: { + /** + * @description Controls how much prompt content is included in the response. 'full' includes the full prompt, 'preview' includes a short prompt_preview, and 'none' omits prompt content entirely. The outline field is always included. + * + * * `full` - full + * * `preview` - preview + * * `none` - none + */ + content?: "full" | "preview" | "none"; + /** @description Filter prompts by the ID of the user who created them. */ + created_by_id?: number; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Optional substring filter applied to prompt names and prompt content. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLLMPromptListList"]; + }; + }; + }; + }; + llm_prompts_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LLMPrompt"]; + "application/x-www-form-urlencoded": components["schemas"]["LLMPrompt"]; + "multipart/form-data": components["schemas"]["LLMPrompt"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMPrompt"]; + }; + }; + }; + }; + llm_prompts_name_retrieve: { + parameters: { + query?: { + /** + * @description Controls how much prompt content is included in the response. 'full' includes the full prompt, 'preview' includes a short prompt_preview, and 'none' omits prompt content entirely. The outline field is always included. + * + * * `full` - full + * * `preview` - preview + * * `none` - none + */ + content?: "full" | "preview" | "none"; + /** @description Specific prompt version to fetch. If omitted, the latest version is returned. */ + version?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + prompt_name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMPromptPublic"]; + }; + }; + }; + }; + llm_prompts_name_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + prompt_name: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedLLMPromptPublish"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedLLMPromptPublish"]; + "multipart/form-data": components["schemas"]["PatchedLLMPromptPublish"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMPrompt"]; + }; + }; + }; + }; + llm_prompts_name_archive_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + prompt_name: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LLMPrompt"]; + "application/x-www-form-urlencoded": components["schemas"]["LLMPrompt"]; + "multipart/form-data": components["schemas"]["LLMPrompt"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMPrompt"]; + }; + }; + }; + }; + llm_prompts_name_duplicate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + prompt_name: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LLMPromptDuplicate"]; + "application/x-www-form-urlencoded": components["schemas"]["LLMPromptDuplicate"]; + "multipart/form-data": components["schemas"]["LLMPromptDuplicate"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMPrompt"]; + }; + }; + }; + }; + llm_prompts_resolve_name_retrieve: { + parameters: { + query?: { + /** @description Return versions older than this version number. Mutually exclusive with offset. */ + before_version?: number; + /** @description Maximum number of versions to return per page (1-100). */ + limit?: number; + /** @description Zero-based offset into version history for pagination. Mutually exclusive with before_version. */ + offset?: number; + /** @description Specific prompt version to fetch. If omitted, the latest version is returned. */ + version?: number; + /** @description Exact prompt version UUID to resolve. Can be used together with version for extra safety. */ + version_id?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + prompt_name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMPromptResolveResponse"]; + }; + }; + }; + }; + llm_skills_list: { + parameters: { + query?: { + /** @description Filter skills by the ID of the user who created them. */ + created_by_id?: number; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Optional substring filter applied to skill names and descriptions. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLLMSkillListList"]; + }; + }; + }; + }; + llm_skills_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LLMSkillCreate"]; + "application/x-www-form-urlencoded": components["schemas"]["LLMSkillCreate"]; + "multipart/form-data": components["schemas"]["LLMSkillCreate"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMSkillCreate"]; + }; + }; + }; + }; + llm_skills_name_retrieve: { + parameters: { + query?: { + /** @description Specific skill version to fetch. If omitted, the latest version is returned. */ + version?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + skill_name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMSkill"]; + }; + }; + }; + }; + llm_skills_name_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + skill_name: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedLLMSkillPublish"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedLLMSkillPublish"]; + "multipart/form-data": components["schemas"]["PatchedLLMSkillPublish"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMSkill"]; + }; + }; + }; + }; + llm_skills_name_archive_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + skill_name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + llm_skills_name_duplicate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + skill_name: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LLMSkillDuplicate"]; + "application/x-www-form-urlencoded": components["schemas"]["LLMSkillDuplicate"]; + "multipart/form-data": components["schemas"]["LLMSkillDuplicate"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMSkill"]; + }; + }; + }; + }; + llm_skills_name_files_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + skill_name: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LLMSkillFileCreate"]; + "application/x-www-form-urlencoded": components["schemas"]["LLMSkillFileCreate"]; + "multipart/form-data": components["schemas"]["LLMSkillFileCreate"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMSkill"]; + }; + }; + }; + }; + llm_skills_name_files_rename_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + skill_name: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LLMSkillFileRename"]; + "application/x-www-form-urlencoded": components["schemas"]["LLMSkillFileRename"]; + "multipart/form-data": components["schemas"]["LLMSkillFileRename"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMSkill"]; + }; + }; + }; + }; + llm_skills_name_files_retrieve: { + parameters: { + query?: { + /** @description Specific skill version to fetch. If omitted, the latest version is returned. */ + version?: number; + }; + header?: never; + path: { + file_path: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + skill_name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMSkillFile"]; + }; + }; + }; + }; + llm_skills_name_files_destroy: { + parameters: { + query?: { + /** @description Latest version you are editing from. If provided, the request fails with 409 when another write has landed in the meantime. */ + base_version?: number; + }; + header?: never; + path: { + file_path: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + skill_name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMSkill"]; + }; + }; + }; + }; + llm_skills_resolve_name_retrieve: { + parameters: { + query?: { + /** @description Return versions older than this version number. Mutually exclusive with offset. */ + before_version?: number; + /** @description Maximum number of versions to return per page (1-100). */ + limit?: number; + /** @description Zero-based offset into version history for pagination. Mutually exclusive with before_version. */ + offset?: number; + /** @description Specific skill version to fetch. If omitted, the latest version is returned. */ + version?: number; + /** @description Exact skill version UUID to resolve. */ + version_id?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + skill_name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LLMSkillResolveResponse"]; + }; + }; + }; + }; + logs_explainLogWithAI_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExplainRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ExplainRequest"]; + "multipart/form-data": components["schemas"]["ExplainRequest"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExplainRequest"]; + }; + }; + }; + }; + logs_views_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLogsViewList"]; + }; + }; + }; + }; + logs_views_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsView"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsView"]; + "multipart/form-data": components["schemas"]["LogsView"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsView"]; + }; + }; + }; + }; + logs_views_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsView"]; + }; + }; + }; + }; + logs_views_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsView"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsView"]; + "multipart/form-data": components["schemas"]["LogsView"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsView"]; + }; + }; + }; + }; + logs_views_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + logs_views_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedLogsView"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedLogsView"]; + "multipart/form-data": components["schemas"]["PatchedLogsView"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsView"]; + }; + }; + }; + }; + managed_viewsets_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + kind: "revenue_analytics"; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + managed_viewsets_update: { + parameters: { + query?: never; + header?: never; + path: { + kind: "revenue_analytics"; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + max_tools_create_and_query_insight_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["InsightsToolCall"]; + "application/x-www-form-urlencoded": components["schemas"]["InsightsToolCall"]; + "multipart/form-data": components["schemas"]["InsightsToolCall"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + mcp_server_installations_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedMCPServerInstallationList"]; + }; + }; + }; + }; + mcp_server_installations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MCPServerInstallation"]; + "application/x-www-form-urlencoded": components["schemas"]["MCPServerInstallation"]; + "multipart/form-data": components["schemas"]["MCPServerInstallation"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MCPServerInstallation"]; + }; + }; + }; + }; + mcp_server_installations_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this mcp server installation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MCPServerInstallation"]; + }; + }; + }; + }; + mcp_server_installations_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this mcp server installation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MCPServerInstallation"]; + "application/x-www-form-urlencoded": components["schemas"]["MCPServerInstallation"]; + "multipart/form-data": components["schemas"]["MCPServerInstallation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MCPServerInstallation"]; + }; + }; + }; + }; + mcp_server_installations_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this mcp server installation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + mcp_server_installations_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this mcp server installation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedMCPServerInstallationUpdate"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedMCPServerInstallationUpdate"]; + "multipart/form-data": components["schemas"]["PatchedMCPServerInstallationUpdate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MCPServerInstallation"]; + }; + }; + }; + }; + mcp_server_installations_proxy_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this mcp server installation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MCPServerInstallation"]; + "application/x-www-form-urlencoded": components["schemas"]["MCPServerInstallation"]; + "multipart/form-data": components["schemas"]["MCPServerInstallation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["MCPServerInstallation"]; + }; + }; + }; + }; + mcp_server_installations_tools_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this mcp server installation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedMCPServerInstallationToolList"]; + }; + }; + }; + }; + mcp_server_installations_tools_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this mcp server installation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + tool_name: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedToolApprovalUpdate"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedToolApprovalUpdate"]; + "multipart/form-data": components["schemas"]["PatchedToolApprovalUpdate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MCPServerInstallationTool"]; + }; + }; + }; + }; + mcp_server_installations_tools_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this mcp server installation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MCPServerInstallation"]; + "application/x-www-form-urlencoded": components["schemas"]["MCPServerInstallation"]; + "multipart/form-data": components["schemas"]["MCPServerInstallation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedMCPServerInstallationToolList"]; + }; + }; + }; + }; + mcp_server_installations_authorize_retrieve: { + parameters: { + query?: { + /** + * @description * `posthog` - posthog + * * `posthog-code` - posthog-code + */ + install_source?: "posthog" | "posthog-code"; + installation_id?: string; + posthog_code_callback_url?: string; + template_id?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + mcp_server_installations_install_custom_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["InstallCustom"]; + "application/x-www-form-urlencoded": components["schemas"]["InstallCustom"]; + "multipart/form-data": components["schemas"]["InstallCustom"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OAuthRedirectResponse"]; + }; + }; + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MCPServerInstallation"]; + }; + }; + }; + }; + mcp_server_installations_install_template_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["InstallTemplate"]; + "application/x-www-form-urlencoded": components["schemas"]["InstallTemplate"]; + "multipart/form-data": components["schemas"]["InstallTemplate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OAuthRedirectResponse"]; + }; + }; + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MCPServerInstallation"]; + }; + }; + }; + }; + mcp_servers_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedMCPServerTemplateList"]; + }; + }; + }; + }; + mcp_tools_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + tool_name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + docs_search: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DocsSearchRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["DocsSearchRequest"]; + "multipart/form-data": components["schemas"]["DocsSearchRequest"]; + }; + }; + responses: { + /** @description Markdown-formatted documentation results. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DocsSearchResponse"]; + }; + }; + }; + }; + retrieve_session_summaries_config: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionSummariesConfig"]; + }; + }; + }; + }; + update_session_summaries_config: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedSessionSummariesConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedSessionSummariesConfig"]; + "multipart/form-data": components["schemas"]["PatchedSessionSummariesConfig"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionSummariesConfig"]; + }; + }; + }; + }; + create_session_summaries: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SessionSummaries"]; + "application/x-www-form-urlencoded": components["schemas"]["SessionSummaries"]; + "multipart/form-data": components["schemas"]["SessionSummaries"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionSummaries"]; + }; + }; + }; + }; + create_session_summaries_individually: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SessionSummaries"]; + "application/x-www-form-urlencoded": components["schemas"]["SessionSummaries"]; + "multipart/form-data": components["schemas"]["SessionSummaries"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionSummaries"]; + }; + }; + }; + }; + subscriptions_deliveries_list: { + parameters: { + query?: { + /** @description The pagination cursor value. */ + cursor?: string; + /** @description Return only deliveries in this run status (starting, completed, failed, or skipped). */ + status?: "completed" | "failed" | "skipped" | "starting"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + subscription_id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSubscriptionDeliveryList"]; + }; + }; + }; + }; + subscriptions_deliveries_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this subscription delivery. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + subscription_id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SubscriptionDelivery"]; + }; + }; + }; + }; + taggers_list: { + parameters: { + query?: { + /** @description Filter by enabled status */ + enabled?: boolean; + /** @description Multiple values may be separated by commas. */ + id__in?: string[]; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** + * @description Ordering + * + * * `created_at` - Created At + * * `-created_at` - Created At (descending) + * * `updated_at` - Updated At + * * `-updated_at` - Updated At (descending) + * * `name` - Name + * * `-name` - Name (descending) + */ + order_by?: ("-created_at" | "-name" | "-updated_at" | "created_at" | "name" | "updated_at")[]; + /** @description Search in name or description */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedTaggerList"]; + }; + }; + }; + }; + taggers_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaggerCreate"]; + "application/x-www-form-urlencoded": components["schemas"]["TaggerCreate"]; + "multipart/form-data": components["schemas"]["TaggerCreate"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Tagger"]; + }; + }; + }; + }; + taggers_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this tagger. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Tagger"]; + }; + }; + }; + }; + taggers_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this tagger. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaggerUpdate"]; + "application/x-www-form-urlencoded": components["schemas"]["TaggerUpdate"]; + "multipart/form-data": components["schemas"]["TaggerUpdate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Tagger"]; + }; + }; + }; + }; + taggers_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this tagger. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + taggers_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this tagger. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTaggerUpdate"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTaggerUpdate"]; + "multipart/form-data": components["schemas"]["PatchedTaggerUpdate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Tagger"]; + }; + }; + }; + }; + taggers_test_hog_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TestHogTaggerRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TestHogTaggerRequest"]; + "multipart/form-data": components["schemas"]["TestHogTaggerRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TestHogTaggerResponse"]; + }; + }; + }; + }; + tracing_spans_aggregate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_TracingAggregationRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_TracingAggregationRequest"]; + "multipart/form-data": components["schemas"]["_TracingAggregationRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tracing_spans_attributes_retrieve: { + parameters: { + query?: { + /** + * @description Type of attributes: "span_attribute" for span-level attributes, "span_resource_attribute" for resource-level attributes. + * + * * `span_attribute` - span_attribute + * * `span_resource_attribute` - span_resource_attribute + */ + attribute_type?: "span_attribute" | "span_resource_attribute"; + /** @description Max results (default: 100). */ + limit?: number; + /** @description Pagination offset (default: 0). */ + offset?: number; + /** @description Search filter for attribute names. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tracing_spans_query_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_TracingQueryRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_TracingQueryRequest"]; + "multipart/form-data": components["schemas"]["_TracingQueryRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tracing_spans_service_names_retrieve: { + parameters: { + query?: { + /** @description JSON-encoded date range, e.g. '{"date_from": "-1h"}'. */ + dateRange?: string; + /** @description Search filter for service names. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tracing_spans_sparkline_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_TracingQueryRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_TracingQueryRequest"]; + "multipart/form-data": components["schemas"]["_TracingQueryRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tracing_spans_trace_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + trace_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["_TracingTraceRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_TracingTraceRequest"]; + "multipart/form-data": components["schemas"]["_TracingTraceRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tracing_spans_tree_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_TracingTreeRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_TracingTreeRequest"]; + "multipart/form-data": components["schemas"]["_TracingTreeRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tracing_spans_values_retrieve: { + parameters: { + query: { + /** + * @description Type of attribute: "span" for built-in span fields (e.g. name), "span_attribute" for span-level attributes, "span_resource_attribute" for resource-level attributes. + * + * * `span` - span + * * `span_attribute` - span_attribute + * * `span_resource_attribute` - span_resource_attribute + */ + attribute_type?: "span" | "span_attribute" | "span_resource_attribute"; + /** @description The attribute key to get values for. */ + key: string; + /** @description Max results (default: 100). */ + limit?: number; + /** @description Pagination offset (default: 0). */ + offset?: number; + /** @description Search filter for attribute values. */ + value?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + user_interviews_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedUserInterviewList"]; + }; + }; + }; + }; + user_interviews_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "multipart/form-data": components["schemas"]["UserInterview"]; + "application/json": components["schemas"]["UserInterview"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UserInterview"]; + }; + }; + }; + }; + user_interviews_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this user interview. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UserInterview"]; + }; + }; + }; + }; + user_interviews_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this user interview. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "multipart/form-data": components["schemas"]["UserInterview"]; + "application/json": components["schemas"]["UserInterview"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UserInterview"]; + }; + }; + }; + }; + user_interviews_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this user interview. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + user_interviews_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this user interview. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "multipart/form-data": components["schemas"]["PatchedUserInterview"]; + "application/json": components["schemas"]["PatchedUserInterview"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UserInterview"]; + }; + }; + }; + }; + vision_lenses_list: { + parameters: { + query?: { + /** @description Filter to lenses that emit Signals. */ + emits_signals?: boolean; + /** @description Filter to enabled vs disabled lenses. */ + enabled?: boolean; + /** + * @description Filter by lens type (monitor, classifier, scorer, summarizer, indexer). + * + * * `monitor` - Monitor + * * `classifier` - Classifier + * * `scorer` - Scorer + * * `summarizer` - Summarizer + * * `indexer` - Indexer + */ + lens_type?: "classifier" | "indexer" | "monitor" | "scorer" | "summarizer"; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** + * @description Sort lenses by name, created_at, updated_at, or lens_type. Prefix with `-` for descending. + * + * * `name` - Name + * * `-name` - Name (descending) + * * `created_at` - Created at + * * `-created_at` - Created at (descending) + * * `updated_at` - Updated at + * * `-updated_at` - Updated at (descending) + * * `lens_type` - Lens type + * * `-lens_type` - Lens type (descending) + */ + order_by?: ("-created_at" | "-lens_type" | "-name" | "-updated_at" | "created_at" | "lens_type" | "name" | "updated_at")[]; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedReplayLensList"]; + }; + }; + }; + }; + vision_lenses_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ReplayLens"]; + "application/x-www-form-urlencoded": components["schemas"]["ReplayLens"]; + "multipart/form-data": components["schemas"]["ReplayLens"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ReplayLens"]; + }; + }; + }; + }; + vision_lenses_observations_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** + * @description Sort observations by created_at, started_at, completed_at, or status. Prefix with `-` for descending. + * + * * `created_at` - Created at + * * `-created_at` - Created at (descending) + * * `started_at` - Started at + * * `-started_at` - Started at (descending) + * * `completed_at` - Completed at + * * `-completed_at` - Completed at (descending) + * * `status` - Status + * * `-status` - Status (descending) + */ + order_by?: ("-completed_at" | "-created_at" | "-started_at" | "-status" | "completed_at" | "created_at" | "started_at" | "status")[]; + /** @description Filter to observations of a specific session recording. */ + session_id?: string; + /** + * @description Filter by observation status. + * + * * `pending` - Pending + * * `running` - Running + * * `succeeded` - Succeeded + * * `failed` - Failed + */ + status?: "failed" | "pending" | "running" | "succeeded"; + /** + * @description Filter by trigger source (schedule or on_demand). + * + * * `schedule` - Schedule + * * `on_demand` - On demand + */ + triggered_by?: "on_demand" | "schedule"; + }; + header?: never; + path: { + lens_id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedReplayObservationList"]; + }; + }; + }; + }; + vision_lenses_observations_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this replay observation. */ + id: string; + lens_id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ReplayObservation"]; + }; + }; + }; + }; + vision_lenses_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this replay lens. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ReplayLens"]; + }; + }; + }; + }; + vision_lenses_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this replay lens. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + vision_lenses_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this replay lens. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedReplayLens"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedReplayLens"]; + "multipart/form-data": components["schemas"]["PatchedReplayLens"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ReplayLens"]; + }; + }; + }; + }; + vision_lenses_observe_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this replay lens. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ObserveRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ObserveRequest"]; + "multipart/form-data": components["schemas"]["ObserveRequest"]; + }; + }; + responses: { + 202: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ObserveResponse"]; + }; + }; + }; + }; + web_analytics_weekly_digest: { + parameters: { + query?: { + /** @description When true (default), include period-over-period change for each metric comparing against the prior equal-length period. Set to false to skip the comparison query (faster). */ + compare?: boolean; + /** @description Lookback window in days (1–90). Defaults to 7. */ + days?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["WeeklyDigestResponse"]; + }; + }; + }; + }; + web_vitals_retrieve: { + parameters: { + query: { + /** @description Filter web vitals by pathname */ + pathname: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedOrganizationList"]; + }; + }; + }; + }; + create: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Organization"]; + "application/x-www-form-urlencoded": components["schemas"]["Organization"]; + "multipart/form-data": components["schemas"]["Organization"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Organization"]; + }; + }; + }; + }; + retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this organization. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Organization"]; + }; + }; + }; + }; + update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this organization. */ + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Organization"]; + "application/x-www-form-urlencoded": components["schemas"]["Organization"]; + "multipart/form-data": components["schemas"]["Organization"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Organization"]; + }; + }; + }; + }; + destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this organization. */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this organization. */ + id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedOrganization"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedOrganization"]; + "multipart/form-data": components["schemas"]["PatchedOrganization"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Organization"]; + }; + }; + }; + }; + org_organizations_advanced_activity_logs_list: { + parameters: { + query?: { + /** @description Filter by activity types (e.g. "created", "updated", "deleted"). */ + activities?: string[]; + /** @description Filter by API clients that generated the activity (from x-posthog-client header). */ + clients?: string[]; + /** @description JSON-encoded map of `detail` field paths to {operation, value} filters. Allowed operations: exact, contains, in. */ + detail_filters?: string; + /** @description Upper bound on `created_at` (inclusive), ISO-8601. */ + end_date?: string; + /** @description Reserved for future HogQL-based filtering. */ + hogql_filter?: string; + /** @description When set, filters rows authored by the system (no user). */ + is_system?: boolean | null; + /** @description Filter by the `item_id` of the affected resource(s). */ + item_ids?: string[]; + /** @description Page number for pagination. When provided, uses page-based pagination ordered by most recent first. */ + page?: number; + /** @description Number of results per page (default: 100, max: 1000). Only used with page-based pagination. */ + page_size?: number; + /** @description Filter by activity scopes (e.g. "FeatureFlag", "Insight"). */ + scopes?: string[]; + /** @description Free-text search across the `detail` JSON column. */ + search_text?: string; + /** @description Lower bound on `created_at` (inclusive), ISO-8601. */ + start_date?: string; + /** @description Filter by project (team) IDs. Only honored on the organization-scoped endpoint; ignored on the project-scoped endpoint. */ + team_ids?: number[]; + /** @description Filter by users who performed the activity (user UUIDs). */ + users?: string[]; + /** @description When set, filters rows where the actor was impersonating another user. */ + was_impersonated?: boolean | null; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedActivityLogList"]; + }; + }; + }; + }; + org_organizations_advanced_activity_logs_available_filters_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AvailableFiltersResponse"]; + }; + }; + }; + }; + org_organizations_advanced_activity_logs_export_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ActivityLog"]; + "application/x-www-form-urlencoded": components["schemas"]["ActivityLog"]; + "multipart/form-data": components["schemas"]["ActivityLog"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ActivityLog"]; + }; + }; + }; + }; + org_organizations_batch_exports_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedBatchExportList"]; + }; + }; + }; + }; + org_organizations_batch_exports_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportRequest"]; + "multipart/form-data": components["schemas"]["BatchExportRequest"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExport"]; + }; + }; + }; + }; + org_organizations_batch_exports_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExport"]; + }; + }; + }; + }; + org_organizations_batch_exports_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportRequest"]; + "multipart/form-data": components["schemas"]["BatchExportRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExport"]; + }; + }; + }; + }; + org_organizations_batch_exports_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + org_organizations_batch_exports_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedBatchExportRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedBatchExportRequest"]; + "multipart/form-data": components["schemas"]["PatchedBatchExportRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExport"]; + }; + }; + }; + }; + org_organizations_batch_exports_logs_retrieve: { + parameters: { + query?: { + /** @description Only return entries after this ISO 8601 timestamp. */ + after?: string; + /** @description Only return entries before this ISO 8601 timestamp. */ + before?: string; + /** @description Filter logs to a specific execution instance. */ + instance_id?: string; + /** @description Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR. */ + level?: string; + /** @description Maximum number of log entries to return (1-500, default 50). */ + limit?: number; + /** @description Case-insensitive substring search across log messages. */ + search?: string; + }; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + org_organizations_batch_exports_pause_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExport"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExport"]; + "multipart/form-data": components["schemas"]["BatchExport"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + org_organizations_batch_exports_run_test_step_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExport"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExport"]; + "multipart/form-data": components["schemas"]["BatchExport"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + org_organizations_batch_exports_unpause_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExport"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExport"]; + "multipart/form-data": components["schemas"]["BatchExport"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + org_organizations_batch_exports_run_test_step_new_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExport"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExport"]; + "multipart/form-data": components["schemas"]["BatchExport"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + org_organizations_batch_exports_test_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + cimd_verification_tokens_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedCIMDVerificationTokenList"]; + }; + }; + }; + }; + cimd_verification_tokens_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CIMDVerificationToken"]; + "application/x-www-form-urlencoded": components["schemas"]["CIMDVerificationToken"]; + "multipart/form-data": components["schemas"]["CIMDVerificationToken"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CIMDVerificationTokenWithValue"]; + }; + }; + }; + }; + cimd_verification_tokens_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this CIMD Verification Token. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CIMDVerificationToken"]; + }; + }; + }; + }; + cimd_verification_tokens_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this CIMD Verification Token. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + domains_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedOrganizationDomainList"]; + }; + }; + }; + }; + domains_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["OrganizationDomain"]; + "application/x-www-form-urlencoded": components["schemas"]["OrganizationDomain"]; + "multipart/form-data": components["schemas"]["OrganizationDomain"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OrganizationDomain"]; + }; + }; + }; + }; + domains_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this domain. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OrganizationDomain"]; + }; + }; + }; + }; + domains_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this domain. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["OrganizationDomain"]; + "application/x-www-form-urlencoded": components["schemas"]["OrganizationDomain"]; + "multipart/form-data": components["schemas"]["OrganizationDomain"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OrganizationDomain"]; + }; + }; + }; + }; + domains_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this domain. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + domains_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this domain. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedOrganizationDomain"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedOrganizationDomain"]; + "multipart/form-data": components["schemas"]["PatchedOrganizationDomain"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OrganizationDomain"]; + }; + }; + }; + }; + domains_scim_logs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this domain. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + domains_scim_token_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this domain. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["OrganizationDomain"]; + "application/x-www-form-urlencoded": components["schemas"]["OrganizationDomain"]; + "multipart/form-data": components["schemas"]["OrganizationDomain"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + domains_verify_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this domain. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["OrganizationDomain"]; + "application/x-www-form-urlencoded": components["schemas"]["OrganizationDomain"]; + "multipart/form-data": components["schemas"]["OrganizationDomain"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + org_organizations_integrations_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedOrganizationIntegrationList"]; + }; + }; + }; + }; + org_organizations_integrations_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this organization integration. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OrganizationIntegration"]; + }; + }; + }; + }; + org_organization_integrations_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this organization integration. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_environment_mapping_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this organization integration. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedOrganizationIntegration"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedOrganizationIntegration"]; + "multipart/form-data": components["schemas"]["PatchedOrganizationIntegration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OrganizationIntegration"]; + }; + }; + }; + }; + invites_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedOrganizationInviteList"]; + }; + }; + }; + }; + invites_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["OrganizationInvite"]; + "application/x-www-form-urlencoded": components["schemas"]["OrganizationInvite"]; + "multipart/form-data": components["schemas"]["OrganizationInvite"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OrganizationInvite"]; + }; + }; + }; + }; + invites_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this organization invite. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + invites_bulk_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["OrganizationInvite"]; + "application/x-www-form-urlencoded": components["schemas"]["OrganizationInvite"]; + "multipart/form-data": components["schemas"]["OrganizationInvite"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + invites_delegate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["OrganizationInviteDelegate"]; + "application/x-www-form-urlencoded": components["schemas"]["OrganizationInviteDelegate"]; + "multipart/form-data": components["schemas"]["OrganizationInviteDelegate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OrganizationInvite"]; + }; + }; + }; + }; + legal_documents_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLegalDocumentDTOList"]; + }; + }; + }; + }; + legal_documents_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CreateLegalDocument"]; + "application/x-www-form-urlencoded": components["schemas"]["CreateLegalDocument"]; + "multipart/form-data": components["schemas"]["CreateLegalDocument"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LegalDocumentDTO"]; + }; + }; + }; + }; + legal_documents_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LegalDocumentDTO"]; + }; + }; + }; + }; + legal_documents_download_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 302: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description No response body */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + members_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Sort order. Defaults to `-joined_at`. */ + order?: "-joined_at" | "joined_at"; + /** @description Fuzzy match against member `first_name`, `last_name`, and `email` using Postgres trigram word similarity. Supports typos and prefix-as-you-type. Capped at 200 characters. */ + search?: string; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedOrganizationMemberList"]; + }; + }; + }; + }; + members_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + user__uuid: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["OrganizationMember"]; + "application/x-www-form-urlencoded": components["schemas"]["OrganizationMember"]; + "multipart/form-data": components["schemas"]["OrganizationMember"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OrganizationMember"]; + }; + }; + }; + }; + members_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + user__uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + members_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + user__uuid: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedOrganizationMember"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedOrganizationMember"]; + "multipart/form-data": components["schemas"]["PatchedOrganizationMember"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OrganizationMember"]; + }; + }; + }; + }; + members_scoped_api_keys_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + user__uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OrganizationMember"]; + }; + }; + }; + }; + oauth_applications_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedOrganizationOAuthApplicationList"]; + }; + }; + }; + }; + organizations_projects_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedProjectBackwardCompatBasicList"]; + }; + }; + }; + }; + organizations_projects_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + "application/x-www-form-urlencoded": components["schemas"]["ProjectBackwardCompat"]; + "multipart/form-data": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + }; + }; + organizations_projects_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project. */ + id: number; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + }; + }; + organizations_projects_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project. */ + id: number; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + "application/x-www-form-urlencoded": components["schemas"]["ProjectBackwardCompat"]; + "multipart/form-data": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + }; + }; + organizations_projects_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project. */ + id: number; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + organizations_projects_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project. */ + id: number; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedProjectBackwardCompat"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedProjectBackwardCompat"]; + "multipart/form-data": components["schemas"]["PatchedProjectBackwardCompat"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + }; + }; + organizations_projects_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project. */ + id: number; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + }; + }; + organizations_projects_add_product_intent_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project. */ + id: number; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedProjectBackwardCompat"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedProjectBackwardCompat"]; + "multipart/form-data": components["schemas"]["PatchedProjectBackwardCompat"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + }; + }; + organizations_projects_change_organization_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project. */ + id: number; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + "application/x-www-form-urlencoded": components["schemas"]["ProjectBackwardCompat"]; + "multipart/form-data": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + }; + }; + organizations_projects_complete_product_onboarding_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project. */ + id: number; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedProjectBackwardCompat"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedProjectBackwardCompat"]; + "multipart/form-data": components["schemas"]["PatchedProjectBackwardCompat"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + }; + }; + organizations_projects_delete_secret_token_backup_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project. */ + id: number; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedProjectBackwardCompat"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedProjectBackwardCompat"]; + "multipart/form-data": components["schemas"]["PatchedProjectBackwardCompat"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + }; + }; + organizations_projects_generate_conversations_public_token_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project. */ + id: number; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + "application/x-www-form-urlencoded": components["schemas"]["ProjectBackwardCompat"]; + "multipart/form-data": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + }; + }; + organizations_projects_is_generating_demo_data_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project. */ + id: number; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + }; + }; + organizations_projects_reset_token_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project. */ + id: number; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedProjectBackwardCompat"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedProjectBackwardCompat"]; + "multipart/form-data": components["schemas"]["PatchedProjectBackwardCompat"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + }; + }; + organizations_projects_rotate_secret_token_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project. */ + id: number; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedProjectBackwardCompat"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedProjectBackwardCompat"]; + "multipart/form-data": components["schemas"]["PatchedProjectBackwardCompat"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectBackwardCompat"]; + }; + }; + }; + }; + proxy_records_list: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProxyRecordListResponse"][]; + }; + }; + }; + }; + proxy_records_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProxyRecord"]; + "application/x-www-form-urlencoded": components["schemas"]["ProxyRecord"]; + "multipart/form-data": components["schemas"]["ProxyRecord"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProxyRecord"]; + }; + }; + }; + }; + proxy_records_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this proxy record. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProxyRecord"]; + }; + }; + }; + }; + proxy_records_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this proxy record. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + proxy_records_diagnose_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this proxy record. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DiagnosticReport"]; + }; + }; + }; + }; + proxy_records_retry_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this proxy record. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProxyRecord"]; + }; + }; + }; + }; + role_external_references_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedRoleExternalReferenceList"]; + }; + }; + }; + }; + role_external_references_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RoleExternalReference"]; + "application/x-www-form-urlencoded": components["schemas"]["RoleExternalReference"]; + "multipart/form-data": components["schemas"]["RoleExternalReference"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RoleExternalReference"]; + }; + }; + }; + }; + role_external_references_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this role external reference. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + role_external_references_lookup_retrieve: { + parameters: { + query: { + /** @description Integration kind (e.g., github, linear, jira, slack). */ + provider: string; + /** @description Provider organization/workspace/site identifier. */ + provider_organization_id: string; + /** @description Stable provider role identifier. */ + provider_role_id?: string; + /** @description Human-friendly provider role identifier. */ + provider_role_slug?: string; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RoleLookupResponse"]; + }; + }; + }; + }; + roles_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedRoleList"]; + }; + }; + }; + }; + roles_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Role"]; + "application/x-www-form-urlencoded": components["schemas"]["Role"]; + "multipart/form-data": components["schemas"]["Role"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Role"]; + }; + }; + }; + }; + roles_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this role. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Role"]; + }; + }; + }; + }; + roles_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this role. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Role"]; + "application/x-www-form-urlencoded": components["schemas"]["Role"]; + "multipart/form-data": components["schemas"]["Role"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Role"]; + }; + }; + }; + }; + roles_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this role. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + roles_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this role. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedRole"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedRole"]; + "multipart/form-data": components["schemas"]["PatchedRole"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Role"]; + }; + }; + }; + }; + roles_role_memberships_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + role_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedRoleMembershipList"]; + }; + }; + }; + }; + roles_role_memberships_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + role_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RoleMembership"]; + "application/x-www-form-urlencoded": components["schemas"]["RoleMembership"]; + "multipart/form-data": components["schemas"]["RoleMembership"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RoleMembership"]; + }; + }; + }; + }; + roles_role_memberships_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this role membership. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + role_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RoleMembership"]; + }; + }; + }; + }; + roles_role_memberships_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this role membership. */ + id: string; + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + role_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + welcome_current_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. */ + organization_id: components["parameters"]["OrganizationIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["WelcomeResponse"]; + }; + }; + /** @description Current organization not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + actions_list: { + parameters: { + query?: { + format?: "csv" | "json"; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedActionList"]; + "text/csv": components["schemas"]["PaginatedActionList"]; + }; + }; + }; + }; + actions_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Action"]; + "application/x-www-form-urlencoded": components["schemas"]["Action"]; + "multipart/form-data": components["schemas"]["Action"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Action"]; + "text/csv": components["schemas"]["Action"]; + }; + }; + }; + }; + actions_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this action. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Action"]; + "text/csv": components["schemas"]["Action"]; + }; + }; + }; + }; + actions_update: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this action. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Action"]; + "application/x-www-form-urlencoded": components["schemas"]["Action"]; + "multipart/form-data": components["schemas"]["Action"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Action"]; + "text/csv": components["schemas"]["Action"]; + }; + }; + }; + }; + actions_destroy: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this action. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + actions_partial_update: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this action. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedAction"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedAction"]; + "multipart/form-data": components["schemas"]["PatchedAction"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Action"]; + "text/csv": components["schemas"]["Action"]; + }; + }; + }; + }; + actions_references_list: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this action. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ActionReference"][]; + "text/csv": components["schemas"]["ActionReference"][]; + }; + }; + }; + }; + actions_bulk_update_tags_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BulkUpdateTagsRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BulkUpdateTagsRequest"]; + "multipart/form-data": components["schemas"]["BulkUpdateTagsRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BulkUpdateTagsResponse"]; + "text/csv": components["schemas"]["BulkUpdateTagsResponse"]; + }; + }; + }; + }; + activity_log_list: { + parameters: { + query?: { + /** @description Filter by the ID of the affected resource. */ + item_id?: string; + /** @description Page number for pagination. When provided, uses page-based pagination ordered by most recent first. */ + page?: number; + /** @description Number of results per page (default: 100, max: 1000). Only used with page-based pagination. */ + page_size?: number; + /** + * @description Filter by a single activity scope, e.g. "FeatureFlag", "Insight", "Dashboard", "Experiment". + * + * * `Cohort` - Cohort + * * `FeatureFlag` - FeatureFlag + * * `Person` - Person + * * `Group` - Group + * * `Insight` - Insight + * * `Plugin` - Plugin + * * `PluginConfig` - PluginConfig + * * `HogFunction` - HogFunction + * * `HogFlow` - HogFlow + * * `DataManagement` - DataManagement + * * `EventDefinition` - EventDefinition + * * `PropertyDefinition` - PropertyDefinition + * * `Notebook` - Notebook + * * `Endpoint` - Endpoint + * * `EndpointVersion` - EndpointVersion + * * `Dashboard` - Dashboard + * * `Replay` - Replay + * * `Experiment` - Experiment + * * `ExperimentHoldout` - ExperimentHoldout + * * `ExperimentSavedMetric` - ExperimentSavedMetric + * * `Survey` - Survey + * * `EarlyAccessFeature` - EarlyAccessFeature + * * `SessionRecordingPlaylist` - SessionRecordingPlaylist + * * `Comment` - Comment + * * `Team` - Team + * * `Project` - Project + * * `ErrorTrackingIssue` - ErrorTrackingIssue + * * `DataWarehouseSavedQuery` - DataWarehouseSavedQuery + * * `LegalDocument` - LegalDocument + * * `Organization` - Organization + * * `OrganizationDomain` - OrganizationDomain + * * `OrganizationMembership` - OrganizationMembership + * * `Role` - Role + * * `UserGroup` - UserGroup + * * `BatchExport` - BatchExport + * * `BatchImport` - BatchImport + * * `Integration` - Integration + * * `Annotation` - Annotation + * * `Tag` - Tag + * * `TaggedItem` - TaggedItem + * * `Subscription` - Subscription + * * `PersonalAPIKey` - PersonalAPIKey + * * `ProjectSecretAPIKey` - ProjectSecretAPIKey + * * `User` - User + * * `Action` - Action + * * `AlertConfiguration` - AlertConfiguration + * * `Threshold` - Threshold + * * `AlertSubscription` - AlertSubscription + * * `ExternalDataSource` - ExternalDataSource + * * `ExternalDataSchema` - ExternalDataSchema + * * `LLMTrace` - LLMTrace + * * `WebAnalyticsFilterPreset` - WebAnalyticsFilterPreset + * * `CustomerProfileConfig` - CustomerProfileConfig + * * `Log` - Log + * * `LogsAlertConfiguration` - LogsAlertConfiguration + * * `LogsExclusionRule` - LogsExclusionRule + * * `ProductTour` - ProductTour + * * `Ticket` - Ticket + */ + scope?: "Cohort" | "FeatureFlag" | "Person" | "Group" | "Insight" | "Plugin" | "PluginConfig" | "HogFunction" | "HogFlow" | "DataManagement" | "EventDefinition" | "PropertyDefinition" | "Notebook" | "Endpoint" | "EndpointVersion" | "Dashboard" | "Replay" | "Experiment" | "ExperimentHoldout" | "ExperimentSavedMetric" | "Survey" | "EarlyAccessFeature" | "SessionRecordingPlaylist" | "Comment" | "Team" | "Project" | "ErrorTrackingIssue" | "DataWarehouseSavedQuery" | "LegalDocument" | "Organization" | "OrganizationDomain" | "OrganizationMembership" | "Role" | "UserGroup" | "BatchExport" | "BatchImport" | "Integration" | "Annotation" | "Tag" | "TaggedItem" | "Subscription" | "PersonalAPIKey" | "ProjectSecretAPIKey" | "User" | "Action" | "AlertConfiguration" | "Threshold" | "AlertSubscription" | "ExternalDataSource" | "ExternalDataSchema" | "LLMTrace" | "WebAnalyticsFilterPreset" | "CustomerProfileConfig" | "Log" | "LogsAlertConfiguration" | "LogsExclusionRule" | "ProductTour" | "Ticket"; + /** @description Filter by multiple activity scopes, comma-separated. Values must be valid ActivityScope enum values. E.g. "FeatureFlag,Insight". */ + scopes?: ("Cohort" | "FeatureFlag" | "Person" | "Group" | "Insight" | "Plugin" | "PluginConfig" | "HogFunction" | "HogFlow" | "DataManagement" | "EventDefinition" | "PropertyDefinition" | "Notebook" | "Endpoint" | "EndpointVersion" | "Dashboard" | "Replay" | "Experiment" | "ExperimentHoldout" | "ExperimentSavedMetric" | "Survey" | "EarlyAccessFeature" | "SessionRecordingPlaylist" | "Comment" | "Team" | "Project" | "ErrorTrackingIssue" | "DataWarehouseSavedQuery" | "LegalDocument" | "Organization" | "OrganizationDomain" | "OrganizationMembership" | "Role" | "UserGroup" | "BatchExport" | "BatchImport" | "Integration" | "Annotation" | "Tag" | "TaggedItem" | "Subscription" | "PersonalAPIKey" | "ProjectSecretAPIKey" | "User" | "Action" | "AlertConfiguration" | "Threshold" | "AlertSubscription" | "ExternalDataSource" | "ExternalDataSchema" | "LLMTrace" | "WebAnalyticsFilterPreset" | "CustomerProfileConfig" | "Log" | "LogsAlertConfiguration" | "LogsExclusionRule" | "ProductTour" | "Ticket")[]; + /** @description Filter by user UUID who performed the action. */ + user?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedActivityLogList"]; + }; + }; + }; + }; + advanced_activity_logs_list: { + parameters: { + query?: { + /** @description Filter by activity types (e.g. "created", "updated", "deleted"). */ + activities?: string[]; + /** @description Filter by API clients that generated the activity (from x-posthog-client header). */ + clients?: string[]; + /** @description JSON-encoded map of `detail` field paths to {operation, value} filters. Allowed operations: exact, contains, in. */ + detail_filters?: string; + /** @description Upper bound on `created_at` (inclusive), ISO-8601. */ + end_date?: string; + /** @description Reserved for future HogQL-based filtering. */ + hogql_filter?: string; + /** @description When set, filters rows authored by the system (no user). */ + is_system?: boolean | null; + /** @description Filter by the `item_id` of the affected resource(s). */ + item_ids?: string[]; + /** @description Page number for pagination. When provided, uses page-based pagination ordered by most recent first. */ + page?: number; + /** @description Number of results per page (default: 100, max: 1000). Only used with page-based pagination. */ + page_size?: number; + /** @description Filter by activity scopes (e.g. "FeatureFlag", "Insight"). */ + scopes?: string[]; + /** @description Free-text search across the `detail` JSON column. */ + search_text?: string; + /** @description Lower bound on `created_at` (inclusive), ISO-8601. */ + start_date?: string; + /** @description Filter by project (team) IDs. Only honored on the organization-scoped endpoint; ignored on the project-scoped endpoint. */ + team_ids?: number[]; + /** @description Filter by users who performed the activity (user UUIDs). */ + users?: string[]; + /** @description When set, filters rows where the actor was impersonating another user. */ + was_impersonated?: boolean | null; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedActivityLogList"]; + }; + }; + }; + }; + advanced_activity_logs_available_filters_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AvailableFiltersResponse"]; + }; + }; + }; + }; + advanced_activity_logs_export_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ActivityLog"]; + "application/x-www-form-urlencoded": components["schemas"]["ActivityLog"]; + "multipart/form-data": components["schemas"]["ActivityLog"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ActivityLog"]; + }; + }; + }; + }; + alerts_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedAlertList"]; + }; + }; + }; + }; + alerts_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Alert"]; + "application/x-www-form-urlencoded": components["schemas"]["Alert"]; + "multipart/form-data": components["schemas"]["Alert"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Alert"]; + }; + }; + }; + }; + alerts_retrieve: { + parameters: { + query?: { + /** @description Relative date string for the start of the check history window (e.g. '-24h', '-7d', '-14d'). Returns checks created after this time. Max retention is 14 days. */ + checks_date_from?: string; + /** @description Relative date string for the end of the check history window (e.g. '-1h', '-1d'). Defaults to now if not specified. */ + checks_date_to?: string; + /** @description Maximum number of check results to return (default 5, max 500). Applied after date filtering. */ + checks_limit?: number; + /** @description Number of newest checks to skip (0-based). Use with checks_limit for pagination. Default 0. */ + checks_offset?: number; + }; + header?: never; + path: { + /** @description A UUID string identifying this alert configuration. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Alert"]; + }; + }; + }; + }; + alerts_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this alert configuration. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Alert"]; + "application/x-www-form-urlencoded": components["schemas"]["Alert"]; + "multipart/form-data": components["schemas"]["Alert"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Alert"]; + }; + }; + }; + }; + alerts_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this alert configuration. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + alerts_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this alert configuration. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedAlert"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedAlert"]; + "multipart/form-data": components["schemas"]["PatchedAlert"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Alert"]; + }; + }; + }; + }; + alerts_simulate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AlertSimulate"]; + "application/x-www-form-urlencoded": components["schemas"]["AlertSimulate"]; + "multipart/form-data": components["schemas"]["AlertSimulate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AlertSimulateResponse"]; + }; + }; + }; + }; + annotations_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedAnnotationList"]; + }; + }; + }; + }; + annotations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Annotation"]; + "application/x-www-form-urlencoded": components["schemas"]["Annotation"]; + "multipart/form-data": components["schemas"]["Annotation"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Annotation"]; + }; + }; + }; + }; + annotations_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this annotation. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Annotation"]; + }; + }; + }; + }; + annotations_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this annotation. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Annotation"]; + "application/x-www-form-urlencoded": components["schemas"]["Annotation"]; + "multipart/form-data": components["schemas"]["Annotation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Annotation"]; + }; + }; + }; + }; + annotations_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this annotation. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + annotations_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this annotation. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedAnnotation"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedAnnotation"]; + "multipart/form-data": components["schemas"]["PatchedAnnotation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Annotation"]; + }; + }; + }; + }; + batch_exports_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedBatchExportList"]; + }; + }; + }; + }; + batch_exports_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportRequest"]; + "multipart/form-data": components["schemas"]["BatchExportRequest"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExport"]; + }; + }; + }; + }; + batch_exports_backfills_list: { + parameters: { + query?: { + /** @description The pagination cursor value. */ + cursor?: string; + /** @description Which field to use when ordering the results. */ + ordering?: string; + }; + header?: never; + path: { + batch_export_id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedBatchExportBackfillList"]; + }; + }; + }; + }; + batch_exports_backfills_create: { + parameters: { + query?: never; + header?: never; + path: { + batch_export_id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportBackfill"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportBackfill"]; + "multipart/form-data": components["schemas"]["BatchExportBackfill"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExportBackfill"]; + }; + }; + }; + }; + batch_exports_backfills_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + batch_export_id: string; + /** @description A UUID string identifying this batch export backfill. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExportBackfill"]; + }; + }; + }; + }; + batch_exports_backfills_cancel_create: { + parameters: { + query?: never; + header?: never; + path: { + batch_export_id: string; + /** @description A UUID string identifying this batch export backfill. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportBackfill"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportBackfill"]; + "multipart/form-data": components["schemas"]["BatchExportBackfill"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + batch_exports_runs_list: { + parameters: { + query?: { + /** @description The pagination cursor value. */ + cursor?: string; + /** @description Which field to use when ordering the results. */ + ordering?: string; + }; + header?: never; + path: { + batch_export_id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedBatchExportRunList"]; + }; + }; + }; + }; + batch_exports_runs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + batch_export_id: string; + /** @description A UUID string identifying this batch export run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExportRun"]; + }; + }; + }; + }; + batch_exports_runs_cancel_create: { + parameters: { + query?: never; + header?: never; + path: { + batch_export_id: string; + /** @description A UUID string identifying this batch export run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportRun"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportRun"]; + "multipart/form-data": components["schemas"]["BatchExportRun"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + batch_exports_runs_logs_retrieve: { + parameters: { + query?: { + /** @description Only return entries after this ISO 8601 timestamp. */ + after?: string; + /** @description Only return entries before this ISO 8601 timestamp. */ + before?: string; + /** @description Filter logs to a specific execution instance. */ + instance_id?: string; + /** @description Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR. */ + level?: string; + /** @description Maximum number of log entries to return (1-500, default 50). */ + limit?: number; + /** @description Case-insensitive substring search across log messages. */ + search?: string; + }; + header?: never; + path: { + batch_export_id: string; + /** @description A UUID string identifying this batch export run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + batch_exports_runs_retry_create: { + parameters: { + query?: never; + header?: never; + path: { + batch_export_id: string; + /** @description A UUID string identifying this batch export run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportRun"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportRun"]; + "multipart/form-data": components["schemas"]["BatchExportRun"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + batch_exports_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExport"]; + }; + }; + }; + }; + batch_exports_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExportRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExportRequest"]; + "multipart/form-data": components["schemas"]["BatchExportRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExport"]; + }; + }; + }; + }; + batch_exports_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + batch_exports_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedBatchExportRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedBatchExportRequest"]; + "multipart/form-data": components["schemas"]["PatchedBatchExportRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BatchExport"]; + }; + }; + }; + }; + batch_exports_logs_retrieve: { + parameters: { + query?: { + /** @description Only return entries after this ISO 8601 timestamp. */ + after?: string; + /** @description Only return entries before this ISO 8601 timestamp. */ + before?: string; + /** @description Filter logs to a specific execution instance. */ + instance_id?: string; + /** @description Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR. */ + level?: string; + /** @description Maximum number of log entries to return (1-500, default 50). */ + limit?: number; + /** @description Case-insensitive substring search across log messages. */ + search?: string; + }; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + batch_exports_pause_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExport"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExport"]; + "multipart/form-data": components["schemas"]["BatchExport"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + batch_exports_run_test_step_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExport"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExport"]; + "multipart/form-data": components["schemas"]["BatchExport"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + batch_exports_unpause_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this batch export. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExport"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExport"]; + "multipart/form-data": components["schemas"]["BatchExport"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + batch_exports_run_test_step_new_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BatchExport"]; + "application/x-www-form-urlencoded": components["schemas"]["BatchExport"]; + "multipart/form-data": components["schemas"]["BatchExport"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + batch_exports_test_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + business_knowledge_sources_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedKnowledgeSourceList"]; + }; + }; + }; + }; + business_knowledge_sources_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CreateTextSource"]; + "multipart/form-data": components["schemas"]["CreateTextSource"]; + "application/x-www-form-urlencoded": components["schemas"]["CreateTextSource"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KnowledgeSource"]; + }; + }; + }; + }; + business_knowledge_sources_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this knowledge source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KnowledgeSource"]; + }; + }; + }; + }; + business_knowledge_sources_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this knowledge source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + business_knowledge_sources_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this knowledge source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedUpdateTextSource"]; + "multipart/form-data": components["schemas"]["PatchedUpdateTextSource"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedUpdateTextSource"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KnowledgeSource"]; + }; + }; + }; + }; + business_knowledge_sources_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this knowledge source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["KnowledgeSource"]; + "multipart/form-data": components["schemas"]["KnowledgeSource"]; + "application/x-www-form-urlencoded": components["schemas"]["KnowledgeSource"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["KnowledgeSource"]; + }; + }; + }; + }; + business_knowledge_sources_text_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this knowledge source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + text?: string; + }; + }; + }; + }; + }; + cohorts_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedCohortList"]; + }; + }; + }; + }; + cohorts_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Cohort"]; + "application/x-www-form-urlencoded": components["schemas"]["Cohort"]; + "multipart/form-data": components["schemas"]["Cohort"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Cohort"]; + }; + }; + }; + }; + cohorts_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this cohort. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Cohort"]; + }; + }; + }; + }; + cohorts_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this cohort. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Cohort"]; + "application/x-www-form-urlencoded": components["schemas"]["Cohort"]; + "multipart/form-data": components["schemas"]["Cohort"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Cohort"]; + }; + }; + }; + }; + cohorts_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this cohort. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + cohorts_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this cohort. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedCohort"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedCohort"]; + "multipart/form-data": components["schemas"]["PatchedCohort"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Cohort"]; + }; + }; + }; + }; + cohorts_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this cohort. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + cohorts_add_persons_to_static_cohort_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this cohort. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedAddPersonsToStaticCohortRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedAddPersonsToStaticCohortRequest"]; + "multipart/form-data": components["schemas"]["PatchedAddPersonsToStaticCohortRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + cohorts_calculation_history_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this cohort. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + cohorts_persons_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + /** @description Maximum number of persons to return per page (defaults to 100). */ + limit?: number; + /** @description Number of persons to skip before starting to return results. */ + offset?: number; + }; + header?: never; + path: { + /** @description A unique integer value identifying this cohort. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CohortPersonsResponse"]; + "text/csv": components["schemas"]["CohortPersonsResponse"]; + }; + }; + }; + }; + cohorts_remove_person_from_static_cohort_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this cohort. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedRemovePersonRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedRemovePersonRequest"]; + "multipart/form-data": components["schemas"]["PatchedRemovePersonRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + cohorts_all_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + comments_list: { + parameters: { + query?: { + /** + * @description When kind=task, restrict to open (incomplete) or completed tasks. Ignored when kind is not 'task'. Defaults to 'any' (no filter). + * + * * `any` - any + * * `open` - open + * * `completed` - completed + */ + completed?: "any" | "open" | "completed"; + /** @description The pagination cursor value. */ + cursor?: string; + /** @description Filter by the ID of the resource being commented on. */ + item_id?: string; + /** + * @description Filter by comment kind. 'task' returns only items intentionally created as actionable. 'comment' excludes tasks. Defaults to 'any' (no filter). + * + * * `any` - any + * * `comment` - comment + * * `task` - task + */ + kind?: "any" | "comment" | "task"; + /** @description Filter by resource type (e.g. Dashboard, FeatureFlag, Insight, Replay). */ + scope?: string; + /** @description Full-text search within comment content. */ + search?: string; + /** @description Filter replies to a specific parent comment. */ + source_comment?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedCommentList"]; + }; + }; + }; + }; + comments_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Comment"]; + "application/x-www-form-urlencoded": components["schemas"]["Comment"]; + "multipart/form-data": components["schemas"]["Comment"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Comment"]; + }; + }; + }; + }; + comments_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this comment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Comment"]; + }; + }; + }; + }; + comments_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this comment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Comment"]; + "application/x-www-form-urlencoded": components["schemas"]["Comment"]; + "multipart/form-data": components["schemas"]["Comment"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Comment"]; + }; + }; + }; + }; + comments_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this comment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + comments_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this comment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedComment"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedComment"]; + "multipart/form-data": components["schemas"]["PatchedComment"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Comment"]; + }; + }; + }; + }; + comments_complete_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this comment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Comment"]; + }; + }; + }; + }; + comments_reopen_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this comment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Comment"]; + }; + }; + }; + }; + comments_thread_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this comment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + comments_count_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + conversations_tickets_list: { + parameters: { + query?: { + /** @description Filter by assignee. Use `unassigned` for tickets with no assignee, `user:` for a specific user, or `role:` for a role. */ + assignee?: string; + /** @description Filter by the channel sub-type (e.g. `widget_embedded`, `slack_bot_mention`). */ + channel_detail?: "github_issue" | "slack_bot_mention" | "slack_channel_message" | "slack_emoji_reaction" | "teams_bot_mention" | "teams_channel_message" | "widget_api" | "widget_embedded"; + /** @description Filter by the channel the ticket originated from. */ + channel_source?: "email" | "github" | "slack" | "teams" | "widget"; + /** @description Only include tickets updated on or after this date. Accepts absolute dates (`2026-01-01`) or relative ones (`-7d`, `-1mStart`). Pass `all` to disable the filter. */ + date_from?: string; + /** @description Only include tickets updated on or before this date. Same format as `date_from`. */ + date_to?: string; + /** @description Comma-separated list of person `distinct_id`s to filter by (max 100). */ + distinct_ids?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Sort order. Prefix with `-` for descending. Defaults to `-updated_at`. */ + order_by?: "-created_at" | "-sla_due_at" | "-ticket_number" | "-updated_at" | "created_at" | "sla_due_at" | "ticket_number" | "updated_at"; + /** @description Filter by priority. Accepts a single value or a comma-separated list (e.g. `medium,high`). Valid values: `low`, `medium`, `high`. */ + priority?: string; + /** @description Free-text search. A numeric value matches a ticket number exactly; otherwise matches against the customer's name or email (case-insensitive, partial match). */ + search?: string; + /** @description Filter by SLA state. `breached` = past `sla_due_at`, `at-risk` = due within the next hour, `on-track` = more than an hour remaining. */ + sla?: "at-risk" | "breached" | "on-track"; + /** @description Filter by status. Accepts a single value or a comma-separated list (e.g. `new,open,pending`). Valid values: `new`, `open`, `pending`, `on_hold`, `resolved`. */ + status?: string; + /** @description JSON-encoded array of tag names to filter by, e.g. `["billing","urgent"]`. */ + tags?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedTicketList"]; + }; + }; + }; + }; + conversations_tickets_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Ticket"]; + "application/x-www-form-urlencoded": components["schemas"]["Ticket"]; + "multipart/form-data": components["schemas"]["Ticket"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Ticket"]; + }; + }; + }; + }; + conversations_tickets_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this ticket. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Ticket"]; + }; + }; + }; + }; + conversations_tickets_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this ticket. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Ticket"]; + "application/x-www-form-urlencoded": components["schemas"]["Ticket"]; + "multipart/form-data": components["schemas"]["Ticket"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Ticket"]; + }; + }; + }; + }; + conversations_tickets_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this ticket. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + conversations_tickets_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this ticket. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTicket"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTicket"]; + "multipart/form-data": components["schemas"]["PatchedTicket"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Ticket"]; + }; + }; + }; + }; + conversations_tickets_suggest_reply_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this ticket. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SuggestReplyResponse"]; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SuggestReplyError"]; + }; + }; + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SuggestReplyError"]; + }; + }; + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SuggestReplyError"]; + }; + }; + }; + }; + conversations_tickets_bulk_update_tags_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BulkUpdateTagsRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BulkUpdateTagsRequest"]; + "multipart/form-data": components["schemas"]["BulkUpdateTagsRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BulkUpdateTagsResponse"]; + }; + }; + }; + }; + conversations_tickets_unread_count_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Ticket"]; + }; + }; + }; + }; + dashboard_templates_list: { + parameters: { + query?: { + /** @description Omit for all templates. When set, filter by featured flag; parsed with str_to_bool (same as other API query booleans). */ + is_featured?: boolean; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Optional. When not using `search`, results are sorted with featured templates first (`is_featured=true`), then by `template_name` (case-insensitive A–Z; `-template_name` for Z–A) or by `created_at` (`-created_at` for newest first). When `search` is set, order is featured first, then relevance rank, then case-insensitive name for ties. */ + ordering?: "-created_at" | "-template_name" | "created_at" | "template_name"; + /** @description Optional. `global`: official templates only. `team`: this project's saved templates only (`scope=team` rows for the current project). `feature_flag`: feature-flag dashboard templates only. Omit for both official and this project's templates (default dashboard template picker behavior). */ + scope?: "feature_flag" | "global" | "team"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDashboardTemplateList"]; + }; + }; + }; + }; + dashboard_templates_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["DashboardTemplate"]; + "application/x-www-form-urlencoded": components["schemas"]["DashboardTemplate"]; + "multipart/form-data": components["schemas"]["DashboardTemplate"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DashboardTemplate"]; + }; + }; + }; + }; + dashboard_templates_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this dashboard template. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DashboardTemplate"]; + }; + }; + }; + }; + dashboard_templates_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this dashboard template. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["DashboardTemplate"]; + "application/x-www-form-urlencoded": components["schemas"]["DashboardTemplate"]; + "multipart/form-data": components["schemas"]["DashboardTemplate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DashboardTemplate"]; + }; + }; + }; + }; + dashboard_templates_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this dashboard template. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + dashboard_templates_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this dashboard template. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDashboardTemplate"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDashboardTemplate"]; + "multipart/form-data": components["schemas"]["PatchedDashboardTemplate"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DashboardTemplate"]; + }; + }; + }; + }; + dashboard_templates_copy_between_projects_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CopyDashboardTemplate"]; + "application/x-www-form-urlencoded": components["schemas"]["CopyDashboardTemplate"]; + "multipart/form-data": components["schemas"]["CopyDashboardTemplate"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DashboardTemplate"]; + }; + }; + }; + }; + dashboard_templates_json_schema_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + dashboards_list: { + parameters: { + query?: { + format?: "json" | "txt"; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Optional. Fuzzy match against dashboard `name` and `description` using Postgres trigram word similarity (handles typos, transpositions, and prefix-as-you-type). `name` matches rank above `description` matches. Results are ordered by relevance, then pinned status, then name. When omitted, dashboards are ordered by pinned status then alphabetical name. Capped at 200 characters; longer queries return a 400 error. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDashboardBasicList"]; + "text/event-stream": components["schemas"]["PaginatedDashboardBasicList"]; + }; + }; + }; + }; + dashboards_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Dashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["Dashboard"]; + "multipart/form-data": components["schemas"]["Dashboard"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dashboard"]; + "text/event-stream": components["schemas"]["Dashboard"]; + }; + }; + }; + }; + dashboards_collaborators_list: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DashboardCollaborator"][]; + }; + }; + }; + }; + dashboards_collaborators_create: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DashboardCollaborator"]; + "application/x-www-form-urlencoded": components["schemas"]["DashboardCollaborator"]; + "multipart/form-data": components["schemas"]["DashboardCollaborator"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DashboardCollaborator"]; + }; + }; + }; + }; + dashboards_collaborators_destroy: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + user__uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + dashboards_sharing_list: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"][]; + }; + }; + }; + }; + dashboards_sharing_passwords_create: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + dashboards_sharing_passwords_destroy: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + password_id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + dashboards_sharing_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + dashboard_id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + dashboards_retrieve: { + parameters: { + query?: { + /** @description Object (or pre-encoded JSON string) to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token. */ + filters_override?: string; + format?: "json" | "txt"; + /** @description Object (or pre-encoded JSON string) to override dashboard variables for this request only (not persisted). Format: {"": {"code_name": "", "variableId": "", "value": }}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token. */ + variables_override?: string; + }; + header?: never; + path: { + /** @description A unique integer value identifying this dashboard. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dashboard"]; + "text/event-stream": components["schemas"]["Dashboard"]; + }; + }; + }; + }; + dashboards_update: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this dashboard. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Dashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["Dashboard"]; + "multipart/form-data": components["schemas"]["Dashboard"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dashboard"]; + "text/event-stream": components["schemas"]["Dashboard"]; + }; + }; + }; + }; + dashboards_destroy: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this dashboard. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + dashboards_partial_update: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this dashboard. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDashboard"]; + "multipart/form-data": components["schemas"]["PatchedDashboard"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dashboard"]; + "text/event-stream": components["schemas"]["Dashboard"]; + }; + }; + }; + }; + dashboards_analyze_refresh_result_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this dashboard. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Dashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["Dashboard"]; + "multipart/form-data": components["schemas"]["Dashboard"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + dashboards_copy_tile_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this dashboard. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CopyDashboardTileRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["CopyDashboardTileRequest"]; + "multipart/form-data": components["schemas"]["CopyDashboardTileRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dashboard"]; + "text/event-stream": components["schemas"]["Dashboard"]; + }; + }; + }; + }; + dashboards_move_tile_partial_update: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this dashboard. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDashboard"]; + "multipart/form-data": components["schemas"]["PatchedDashboard"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + dashboards_reorder_tiles_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this dashboard. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ReorderTilesRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ReorderTilesRequest"]; + "multipart/form-data": components["schemas"]["ReorderTilesRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dashboard"]; + "text/event-stream": components["schemas"]["Dashboard"]; + }; + }; + }; + }; + dashboards_run_insights_retrieve: { + parameters: { + query?: { + /** @description Object (or pre-encoded JSON string) to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token. */ + filters_override?: string; + format?: "json" | "txt"; + /** @description 'optimized' (default) returns LLM-friendly formatted text per insight. 'json' returns the raw query result objects. */ + output_format?: "json" | "optimized"; + /** @description Cache behavior. 'force_cache' (default) serves from cache even if stale. 'blocking' uses cache if fresh, otherwise recalculates. 'force_blocking' always recalculates. */ + refresh?: "blocking" | "force_blocking" | "force_cache"; + /** @description Object (or pre-encoded JSON string) to override dashboard variables for this request only (not persisted). Format: {"": {"code_name": "", "variableId": "", "value": }}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token. */ + variables_override?: string; + }; + header?: never; + path: { + /** @description A unique integer value identifying this dashboard. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RunInsightsResponse"]; + "text/event-stream": components["schemas"]["RunInsightsResponse"]; + }; + }; + }; + }; + dashboards_snapshot_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this dashboard. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Dashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["Dashboard"]; + "multipart/form-data": components["schemas"]["Dashboard"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + dashboards_stream_tiles_retrieve: { + parameters: { + query?: { + /** @description Object (or pre-encoded JSON string) to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token. */ + filters_override?: string; + format?: "json" | "txt"; + /** @description Layout size for tile positioning. 'sm' (default) for standard, 'xs' for mobile. The snake_case alias `layout_size` is also accepted for backward compatibility. */ + layoutSize?: "sm" | "xs"; + /** @description Object (or pre-encoded JSON string) to override dashboard variables for this request only (not persisted). Format: {"": {"code_name": "", "variableId": "", "value": }}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token. */ + variables_override?: string; + }; + header?: never; + path: { + /** @description A unique integer value identifying this dashboard. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + dashboards_bulk_update_tags_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BulkUpdateTagsRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BulkUpdateTagsRequest"]; + "multipart/form-data": components["schemas"]["BulkUpdateTagsRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BulkUpdateTagsResponse"]; + "text/event-stream": components["schemas"]["BulkUpdateTagsResponse"]; + }; + }; + }; + }; + dashboards_create_from_template_json_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Dashboard"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + dashboards_create_unlisted_dashboard_create: { + parameters: { + query?: { + format?: "json" | "txt"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Dashboard"]; + "application/x-www-form-urlencoded": components["schemas"]["Dashboard"]; + "multipart/form-data": components["schemas"]["Dashboard"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + data_color_themes_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDataColorThemeList"]; + }; + }; + }; + }; + data_color_themes_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataColorTheme"]; + "application/x-www-form-urlencoded": components["schemas"]["DataColorTheme"]; + "multipart/form-data": components["schemas"]["DataColorTheme"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataColorTheme"]; + }; + }; + }; + }; + data_color_themes_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this data color theme. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataColorTheme"]; + }; + }; + }; + }; + data_color_themes_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this data color theme. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataColorTheme"]; + "application/x-www-form-urlencoded": components["schemas"]["DataColorTheme"]; + "multipart/form-data": components["schemas"]["DataColorTheme"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataColorTheme"]; + }; + }; + }; + }; + data_color_themes_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this data color theme. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + data_color_themes_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this data color theme. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDataColorTheme"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDataColorTheme"]; + "multipart/form-data": components["schemas"]["PatchedDataColorTheme"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataColorTheme"]; + }; + }; + }; + }; + data_modeling_jobs_list: { + parameters: { + query?: { + /** @description The pagination cursor value. */ + cursor?: string; + /** @description Number of results to return per page. */ + limit?: number; + saved_query_id?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDataModelingJobList"]; + }; + }; + }; + }; + data_modeling_jobs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data modeling job. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataModelingJob"]; + }; + }; + }; + }; + data_modeling_jobs_recent_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataModelingJob"]; + }; + }; + }; + }; + data_modeling_jobs_running_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataModelingJob"]; + }; + }; + }; + }; + data_warehouse_check_database_name_retrieve: { + parameters: { + query: { + /** @description Database name to check */ + name: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CheckDatabaseNameResponse"]; + }; + }; + }; + }; + data_warehouse_completed_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + data_warehouse_data_health_issues_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + data_warehouse_data_ops_dashboard_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + data_warehouse_deprovision_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DeprovisionWarehouseResponse"]; + }; + }; + }; + }; + data_warehouse_job_stats_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + data_warehouse_property_values_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + data_warehouse_provision_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProvisionWarehouseRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["ProvisionWarehouseRequest"]; + "multipart/form-data": components["schemas"]["ProvisionWarehouseRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProvisionWarehouseResponse"]; + }; + }; + }; + }; + data_warehouse_reset_password_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ResetPasswordResponse"]; + }; + }; + }; + }; + data_warehouse_running_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + data_warehouse_total_rows_stats_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + data_warehouse_warehouse_status_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["WarehouseStatusResponse"]; + }; + }; + }; + }; + dataset_items_list: { + parameters: { + query?: { + /** @description Filter by dataset ID */ + dataset?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDatasetItemList"]; + }; + }; + }; + }; + dataset_items_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DatasetItem"]; + "application/x-www-form-urlencoded": components["schemas"]["DatasetItem"]; + "multipart/form-data": components["schemas"]["DatasetItem"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetItem"]; + }; + }; + }; + }; + dataset_items_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this dataset item. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetItem"]; + }; + }; + }; + }; + dataset_items_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this dataset item. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DatasetItem"]; + "application/x-www-form-urlencoded": components["schemas"]["DatasetItem"]; + "multipart/form-data": components["schemas"]["DatasetItem"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetItem"]; + }; + }; + }; + }; + dataset_items_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this dataset item. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + dataset_items_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this dataset item. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDatasetItem"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDatasetItem"]; + "multipart/form-data": components["schemas"]["PatchedDatasetItem"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DatasetItem"]; + }; + }; + }; + }; + datasets_list: { + parameters: { + query?: { + /** @description Multiple values may be separated by commas. */ + id__in?: string[]; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** + * @description Ordering + * + * * `created_at` - Created At + * * `-created_at` - Created At (descending) + * * `updated_at` - Updated At + * * `-updated_at` - Updated At (descending) + */ + order_by?: ("-created_at" | "-updated_at" | "created_at" | "updated_at")[]; + /** @description Search in name, description, or metadata */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDatasetList"]; + }; + }; + }; + }; + datasets_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Dataset"]; + "application/x-www-form-urlencoded": components["schemas"]["Dataset"]; + "multipart/form-data": components["schemas"]["Dataset"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dataset"]; + }; + }; + }; + }; + datasets_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this dataset. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dataset"]; + }; + }; + }; + }; + datasets_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this dataset. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Dataset"]; + "application/x-www-form-urlencoded": components["schemas"]["Dataset"]; + "multipart/form-data": components["schemas"]["Dataset"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dataset"]; + }; + }; + }; + }; + datasets_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this dataset. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + datasets_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this dataset. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDataset"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDataset"]; + "multipart/form-data": components["schemas"]["PatchedDataset"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Dataset"]; + }; + }; + }; + }; + deployments_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDeploymentList"]; + }; + }; + }; + }; + deployments_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this deployment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Deployment"]; + }; + }; + }; + }; + deployments_redeploy_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this deployment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 501: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DeploymentActionResponse"]; + }; + }; + }; + }; + deployments_refresh_preview_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this deployment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 501: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DeploymentActionResponse"]; + }; + }; + }; + }; + deployments_rollback_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this deployment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 501: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DeploymentActionResponse"]; + }; + }; + }; + }; + early_access_feature_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedEarlyAccessFeatureList"]; + }; + }; + }; + }; + early_access_feature_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EarlyAccessFeatureSerializerCreateOnly"]; + "application/x-www-form-urlencoded": components["schemas"]["EarlyAccessFeatureSerializerCreateOnly"]; + "multipart/form-data": components["schemas"]["EarlyAccessFeatureSerializerCreateOnly"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EarlyAccessFeatureSerializerCreateOnly"]; + }; + }; + }; + }; + early_access_feature_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this early access feature. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EarlyAccessFeature"]; + }; + }; + }; + }; + early_access_feature_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this early access feature. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EarlyAccessFeature"]; + "application/x-www-form-urlencoded": components["schemas"]["EarlyAccessFeature"]; + "multipart/form-data": components["schemas"]["EarlyAccessFeature"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EarlyAccessFeature"]; + }; + }; + }; + }; + early_access_feature_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this early access feature. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + early_access_feature_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this early access feature. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedEarlyAccessFeature"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedEarlyAccessFeature"]; + "multipart/form-data": components["schemas"]["PatchedEarlyAccessFeature"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EarlyAccessFeature"]; + }; + }; + }; + }; + elements_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedElementList"]; + }; + }; + }; + }; + elements_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Element"]; + "application/x-www-form-urlencoded": components["schemas"]["Element"]; + "multipart/form-data": components["schemas"]["Element"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Element"]; + }; + }; + }; + }; + elements_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this element. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Element"]; + }; + }; + }; + }; + elements_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this element. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Element"]; + "application/x-www-form-urlencoded": components["schemas"]["Element"]; + "multipart/form-data": components["schemas"]["Element"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Element"]; + }; + }; + }; + }; + elements_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this element. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + elements_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this element. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedElement"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedElement"]; + "multipart/form-data": components["schemas"]["PatchedElement"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Element"]; + }; + }; + }; + }; + elements_stats_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + elements_values_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + endpoints_list: { + parameters: { + query?: { + created_by?: number; + is_active?: boolean; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedEndpointResponseList"]; + }; + }; + }; + }; + endpoints_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["EndpointRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["EndpointRequest"]; + "multipart/form-data": components["schemas"]["EndpointRequest"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointResponse"]; + }; + }; + }; + }; + endpoints_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + name: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointVersionResponse"]; + }; + }; + }; + }; + endpoints_update: { + parameters: { + query?: never; + header?: never; + path: { + name: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["EndpointRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["EndpointRequest"]; + "multipart/form-data": components["schemas"]["EndpointRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointResponse"]; + }; + }; + }; + }; + endpoints_destroy: { + parameters: { + query?: never; + header?: never; + path: { + name: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + endpoints_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + name: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedEndpointRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedEndpointRequest"]; + "multipart/form-data": components["schemas"]["PatchedEndpointRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointResponse"]; + }; + }; + }; + }; + endpoints_materialization_preview_create: { + parameters: { + query?: never; + header?: never; + path: { + name: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MaterializationPreviewRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["MaterializationPreviewRequest"]; + "multipart/form-data": components["schemas"]["MaterializationPreviewRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + endpoints_materialization_status_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + name: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointMaterialization"]; + }; + }; + }; + }; + "endpoints_openapi.json_retrieve": { + parameters: { + query?: { + /** @description Specific endpoint version to generate the spec for. Defaults to latest. */ + version?: number; + }; + header?: never; + path: { + name: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + endpoints_run_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + name: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointRunResponse"]; + }; + }; + }; + }; + endpoints_run_create: { + parameters: { + query?: never; + header?: never; + path: { + name: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["EndpointRunRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["EndpointRunRequest"]; + "multipart/form-data": components["schemas"]["EndpointRunRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EndpointRunResponse"]; + }; + }; + }; + }; + endpoints_versions_list: { + parameters: { + query?: { + created_by?: number; + is_active?: boolean; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + name: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedEndpointVersionResponseList"]; + }; + }; + }; + }; + endpoints_last_execution_times_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EndpointLastExecutionTimesRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["EndpointLastExecutionTimesRequest"]; + "multipart/form-data": components["schemas"]["EndpointLastExecutionTimesRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["QueryStatusResponse"]; + }; + }; + }; + }; + environments_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedTeamBasicList"]; + }; + }; + }; + }; + environments_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Team"]; + "application/x-www-form-urlencoded": components["schemas"]["Team"]; + "multipart/form-data": components["schemas"]["Team"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Team"]; + }; + }; + }; + }; + environments_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Team"]; + }; + }; + }; + }; + environments_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Team"]; + "application/x-www-form-urlencoded": components["schemas"]["Team"]; + "multipart/form-data": components["schemas"]["Team"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Team"]; + }; + }; + }; + }; + environments_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTeam"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTeam"]; + "multipart/form-data": components["schemas"]["PatchedTeam"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Team"]; + }; + }; + }; + }; + environments_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_add_product_intent_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTeam"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTeam"]; + "multipart/form-data": components["schemas"]["PatchedTeam"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_complete_product_onboarding_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTeam"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTeam"]; + "multipart/form-data": components["schemas"]["PatchedTeam"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_default_evaluation_contexts_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_default_evaluation_contexts_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Team"]; + "application/x-www-form-urlencoded": components["schemas"]["Team"]; + "multipart/form-data": components["schemas"]["Team"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_default_evaluation_contexts_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_default_release_conditions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_default_release_conditions_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Team"]; + "application/x-www-form-urlencoded": components["schemas"]["Team"]; + "multipart/form-data": components["schemas"]["Team"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_delete_secret_token_backup_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTeam"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTeam"]; + "multipart/form-data": components["schemas"]["PatchedTeam"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_event_ingestion_restrictions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_experiments_config_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_experiments_config_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTeam"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTeam"]; + "multipart/form-data": components["schemas"]["PatchedTeam"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_generate_conversations_public_token_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Team"]; + "application/x-www-form-urlencoded": components["schemas"]["Team"]; + "multipart/form-data": components["schemas"]["Team"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_is_generating_demo_data_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_reset_token_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTeam"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTeam"]; + "multipart/form-data": components["schemas"]["PatchedTeam"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_rotate_secret_token_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTeam"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTeam"]; + "multipart/form-data": components["schemas"]["PatchedTeam"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + environments_settings_as_of_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this environment (aka team). */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_releases_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedErrorTrackingReleaseList"]; + }; + }; + }; + }; + error_tracking_releases_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingRelease"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingRelease"]; + "multipart/form-data": components["schemas"]["ErrorTrackingRelease"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingRelease"]; + }; + }; + }; + }; + error_tracking_releases_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking release. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingRelease"]; + }; + }; + }; + }; + error_tracking_releases_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking release. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingRelease"]; + "application/x-www-form-urlencoded": components["schemas"]["ErrorTrackingRelease"]; + "multipart/form-data": components["schemas"]["ErrorTrackingRelease"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingRelease"]; + }; + }; + }; + }; + error_tracking_releases_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking release. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_releases_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking release. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedErrorTrackingRelease"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedErrorTrackingRelease"]; + "multipart/form-data": components["schemas"]["PatchedErrorTrackingRelease"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingRelease"]; + }; + }; + }; + }; + error_tracking_releases_hash_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + hash_id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_symbol_sets_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** + * @description Sort order for symbol sets. Prefix with `-` for descending order. + * + * * `created_at` - created_at + * * `-created_at` - -created_at + * * `ref` - ref + * * `-ref` - -ref + * * `last_used` - last_used + * * `-last_used` - -last_used + */ + order_by?: "created_at" | "-created_at" | "ref" | "-ref" | "last_used" | "-last_used"; + /** @description Exact symbol set reference to filter by. */ + ref?: string; + /** + * @description Upload status filter: `valid` has an uploaded file, `invalid` is missing a file, `all` returns both. + * + * * `all` - all + * * `valid` - valid + * * `invalid` - invalid + */ + status?: "all" | "valid" | "invalid"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedErrorTrackingSymbolSetList"]; + }; + }; + }; + }; + error_tracking_symbol_sets_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking symbol set. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorTrackingSymbolSet"]; + }; + }; + }; + }; + error_tracking_symbol_sets_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking symbol set. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_symbol_sets_download_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking symbol set. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_SymbolSetDownloadResponse"]; + }; + }; + }; + }; + error_tracking_symbol_sets_finish_upload_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this error tracking symbol set. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingSymbolSetFinishUpload"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_symbol_sets_bulk_delete_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingSymbolSetBulkDelete"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_symbol_sets_bulk_finish_upload_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ErrorTrackingSymbolSetBulkFinishUpload"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + error_tracking_symbol_sets_bulk_start_upload_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ErrorTrackingSymbolSetBulkStartUpload"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + event_definitions_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedEnterpriseEventDefinitionList"]; + }; + }; + }; + }; + event_definitions_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnterpriseEventDefinition"]; + "application/x-www-form-urlencoded": components["schemas"]["EnterpriseEventDefinition"]; + "multipart/form-data": components["schemas"]["EnterpriseEventDefinition"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EnterpriseEventDefinition"]; + }; + }; + }; + }; + event_definitions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this event definition. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EnterpriseEventDefinition"]; + }; + }; + }; + }; + event_definitions_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this event definition. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EnterpriseEventDefinition"]; + "application/x-www-form-urlencoded": components["schemas"]["EnterpriseEventDefinition"]; + "multipart/form-data": components["schemas"]["EnterpriseEventDefinition"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EnterpriseEventDefinition"]; + }; + }; + }; + }; + event_definitions_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this event definition. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + event_definitions_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this event definition. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedEnterpriseEventDefinition"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedEnterpriseEventDefinition"]; + "multipart/form-data": components["schemas"]["PatchedEnterpriseEventDefinition"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EnterpriseEventDefinition"]; + }; + }; + }; + }; + event_definitions_metrics_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this event definition. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + event_definitions_bulk_update_tags_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BulkUpdateTagsRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BulkUpdateTagsRequest"]; + "multipart/form-data": components["schemas"]["BulkUpdateTagsRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BulkUpdateTagsResponse"]; + }; + }; + }; + }; + event_definitions_by_name_retrieve: { + parameters: { + query: { + /** @description The exact event name to look up */ + name: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EventDefinitionRecord"]; + }; + }; + }; + }; + event_definitions_golang_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + event_definitions_primary_properties_retrieve: { + parameters: { + query?: { + /** @description Optional: restrict the response to these event names. Repeat the parameter for multiple names (e.g. `?names=a&names=b`). When omitted, returns every team-configured primary property. */ + names?: string[]; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PrimaryPropertiesResponse"]; + }; + }; + }; + }; + event_definitions_python_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + event_definitions_typescript_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + event_schemas_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedEventSchemaList"]; + }; + }; + }; + }; + event_schemas_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EventSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["EventSchema"]; + "multipart/form-data": components["schemas"]["EventSchema"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EventSchema"]; + }; + }; + }; + }; + event_schemas_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this event schema. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EventSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["EventSchema"]; + "multipart/form-data": components["schemas"]["EventSchema"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EventSchema"]; + }; + }; + }; + }; + event_schemas_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this event schema. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + event_schemas_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this event schema. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedEventSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedEventSchema"]; + "multipart/form-data": components["schemas"]["PatchedEventSchema"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EventSchema"]; + }; + }; + }; + }; + events_list: { + parameters: { + query?: { + /** @description Only return events with a timestamp after this time. Default: now() - 24 hours. */ + after?: string; + /** @description Only return events with a timestamp before this time. Default: now() + 5 seconds. */ + before?: string; + /** @description Filter list by distinct id. */ + distinct_id?: number; + /** @description Filter list by event. For example `user sign up` or `$pageview`. */ + event?: string; + format?: "csv" | "json"; + /** @description The maximum number of results to return */ + limit?: number; + /** + * @deprecated + * @description Allows to skip first offset rows. Will fail for value larger than 100000. Read about proper way of paginating: https://posthog.com/docs/api/queries#5-use-timestamp-based-pagination-instead-of-offset + */ + offset?: number; + /** @description Filter list by person id. */ + person_id?: number; + /** @description Filter events by event property, person property, cohort, groups and more. */ + properties?: components["schemas"]["Property"][]; + /** @description (Experimental) JSON-serialized array of HogQL expressions to return */ + select?: string[]; + /** @description (Experimental) JSON-serialized array of HogQL expressions that must pass */ + where?: string[]; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedClickhouseEventList"]; + "text/csv": components["schemas"]["PaginatedClickhouseEventList"]; + }; + }; + }; + }; + events_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + "text/csv": { + [key: string]: unknown; + }; + }; + }; + }; + }; + events_values_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + experiment_holdouts_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedExperimentHoldoutList"]; + }; + }; + }; + }; + experiment_holdouts_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExperimentHoldout"]; + "application/x-www-form-urlencoded": components["schemas"]["ExperimentHoldout"]; + "multipart/form-data": components["schemas"]["ExperimentHoldout"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExperimentHoldout"]; + }; + }; + }; + }; + experiment_holdouts_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment holdout. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExperimentHoldout"]; + }; + }; + }; + }; + experiment_holdouts_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment holdout. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExperimentHoldout"]; + "application/x-www-form-urlencoded": components["schemas"]["ExperimentHoldout"]; + "multipart/form-data": components["schemas"]["ExperimentHoldout"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExperimentHoldout"]; + }; + }; + }; + }; + experiment_holdouts_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment holdout. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + experiment_holdouts_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment holdout. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedExperimentHoldout"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedExperimentHoldout"]; + "multipart/form-data": components["schemas"]["PatchedExperimentHoldout"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExperimentHoldout"]; + }; + }; + }; + }; + experiment_saved_metrics_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedExperimentSavedMetricList"]; + }; + }; + }; + }; + experiment_saved_metrics_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExperimentSavedMetric"]; + "application/x-www-form-urlencoded": components["schemas"]["ExperimentSavedMetric"]; + "multipart/form-data": components["schemas"]["ExperimentSavedMetric"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExperimentSavedMetric"]; + }; + }; + }; + }; + experiment_saved_metrics_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment saved metric. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExperimentSavedMetric"]; + }; + }; + }; + }; + experiment_saved_metrics_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment saved metric. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExperimentSavedMetric"]; + "application/x-www-form-urlencoded": components["schemas"]["ExperimentSavedMetric"]; + "multipart/form-data": components["schemas"]["ExperimentSavedMetric"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExperimentSavedMetric"]; + }; + }; + }; + }; + experiment_saved_metrics_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment saved metric. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + experiment_saved_metrics_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment saved metric. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedExperimentSavedMetric"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedExperimentSavedMetric"]; + "multipart/form-data": components["schemas"]["PatchedExperimentSavedMetric"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExperimentSavedMetric"]; + }; + }; + }; + }; + experiments_list: { + parameters: { + query?: { + /** @description Filter by archived state. Defaults to non-archived experiments only. */ + archived?: boolean; + /** @description Filter to experiments created by the given user ID. */ + created_by_id?: number; + /** @description Filter to experiments linked to the given feature flag ID. */ + feature_flag_id?: number; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Field to order by. Prefix with '-' for descending. Allowlisted fields include name, created_at, updated_at, start_date, end_date, duration, and status. */ + order?: string; + /** @description Free-text search applied to the experiment name (case-insensitive). */ + search?: string; + /** @description Filter by experiment status. "running" and "paused" are mutually exclusive: "running" returns launched experiments with an active feature flag, "paused" returns launched experiments whose feature flag is deactivated. "complete" is an alias for "stopped". "all" disables status filtering. */ + status?: "all" | "complete" | "draft" | "paused" | "running" | "stopped"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedExperimentList"]; + }; + }; + }; + }; + experiments_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Experiment"]; + "application/x-www-form-urlencoded": components["schemas"]["Experiment"]; + "multipart/form-data": components["schemas"]["Experiment"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Experiment"]; + }; + }; + }; + }; + experiments_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Experiment"]; + }; + }; + }; + }; + experiments_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Experiment"]; + "application/x-www-form-urlencoded": components["schemas"]["Experiment"]; + "multipart/form-data": components["schemas"]["Experiment"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Experiment"]; + }; + }; + }; + }; + experiments_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + experiments_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedExperiment"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedExperiment"]; + "multipart/form-data": components["schemas"]["PatchedExperiment"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Experiment"]; + }; + }; + }; + }; + experiments_archive_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Experiment"]; + }; + }; + }; + }; + experiments_copy_to_project_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CopyExperimentToProject"]; + "application/x-www-form-urlencoded": components["schemas"]["CopyExperimentToProject"]; + "multipart/form-data": components["schemas"]["CopyExperimentToProject"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Experiment"]; + }; + }; + }; + }; + experiments_create_exposure_cohort_for_experiment_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Experiment"]; + "application/x-www-form-urlencoded": components["schemas"]["Experiment"]; + "multipart/form-data": components["schemas"]["Experiment"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + experiments_duplicate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Experiment"]; + "application/x-www-form-urlencoded": components["schemas"]["Experiment"]; + "multipart/form-data": components["schemas"]["Experiment"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + experiments_end_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["EndExperiment"]; + "application/x-www-form-urlencoded": components["schemas"]["EndExperiment"]; + "multipart/form-data": components["schemas"]["EndExperiment"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Experiment"]; + }; + }; + }; + }; + experiments_launch_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Experiment"]; + }; + }; + }; + }; + experiments_pause_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Experiment"]; + }; + }; + }; + }; + experiments_recalculate_timeseries_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Experiment"]; + "application/x-www-form-urlencoded": components["schemas"]["Experiment"]; + "multipart/form-data": components["schemas"]["Experiment"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + experiments_reset_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Experiment"]; + }; + }; + }; + }; + experiments_resume_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Experiment"]; + }; + }; + }; + }; + experiments_ship_variant_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ShipVariant"]; + "application/x-www-form-urlencoded": components["schemas"]["ShipVariant"]; + "multipart/form-data": components["schemas"]["ShipVariant"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Experiment"]; + }; + }; + }; + }; + experiments_timeseries_results_retrieve: { + parameters: { + query: { + /** @description Fingerprint of the metric configuration. Available alongside metric_uuid on each metric in the experiment's metrics array. */ + fingerprint: string; + /** @description UUID of the metric to fetch timeseries for. Available on each metric in the experiment's metrics array. */ + metric_uuid: string; + }; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + experiments_unarchive_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Experiment"]; + }; + }; + }; + }; + experiments_eligible_feature_flags_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + experiments_requires_flag_implementation_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + experiments_stats_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + exports_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedExportedAssetList"]; + }; + }; + }; + }; + exports_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExportedAsset"]; + "application/x-www-form-urlencoded": components["schemas"]["ExportedAsset"]; + "multipart/form-data": components["schemas"]["ExportedAsset"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExportedAsset"]; + }; + }; + }; + }; + exports_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this exported asset. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExportedAsset"]; + }; + }; + }; + }; + exports_content_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this exported asset. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_schemas_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedExternalDataSchemaList"]; + }; + }; + }; + }; + external_data_schemas_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSchema"]; + "multipart/form-data": components["schemas"]["ExternalDataSchema"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + }; + }; + }; + }; + external_data_schemas_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data schema. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + }; + }; + }; + }; + external_data_schemas_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data schema. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSchema"]; + "multipart/form-data": components["schemas"]["ExternalDataSchema"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + }; + }; + }; + }; + external_data_schemas_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data schema. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_schemas_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data schema. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedExternalDataSchema"]; + "multipart/form-data": components["schemas"]["PatchedExternalDataSchema"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + }; + }; + }; + }; + external_data_schemas_cancel_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data schema. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSchema"]; + "multipart/form-data": components["schemas"]["ExternalDataSchema"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_schemas_delete_data_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data schema. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_schemas_incremental_fields_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data schema. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSchema"]; + "multipart/form-data": components["schemas"]["ExternalDataSchema"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_schemas_reload_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data schema. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSchema"]; + "multipart/form-data": components["schemas"]["ExternalDataSchema"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_schemas_resync_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data schema. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ExternalDataSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSchema"]; + "multipart/form-data": components["schemas"]["ExternalDataSchema"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_sources_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedExternalDataSourceSerializersList"]; + }; + }; + }; + }; + external_data_sources_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceCreate"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceCreate"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceCreate"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + }; + }; + external_data_sources_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + }; + }; + external_data_sources_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + }; + }; + external_data_sources_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_sources_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["PatchedExternalDataSourceSerializers"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + }; + }; + external_data_sources_bulk_update_schemas_partial_update: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description A UUID string identifying this external data source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedExternalDataSourceBulkUpdateSchemas"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedExternalDataSourceBulkUpdateSchemas"]; + "multipart/form-data": components["schemas"]["PatchedExternalDataSourceBulkUpdateSchemas"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedExternalDataSchemaList"]; + }; + }; + }; + }; + external_data_sources_create_webhook_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_sources_delete_webhook_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_sources_jobs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_sources_refresh_schemas_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_sources_reload_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_sources_revenue_analytics_config_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["PatchedExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_sources_update_webhook_inputs_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_sources_webhook_info_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this external data source. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_sources_check_cdc_prerequisites_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Whether the Postgres database satisfies CDC prerequisites. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + valid?: boolean; + errors?: string[]; + }; + }; + }; + /** @description Invalid config, disallowed host, or connection failure. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_sources_connections_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedExternalDataSourceConnectionOptionList"]; + }; + }; + }; + }; + external_data_sources_database_schema_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DatabaseSchemaRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["DatabaseSchemaRequest"]; + "multipart/form-data": components["schemas"]["DatabaseSchemaRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_sources_source_prefix_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ExternalDataSourceSerializers"]; + "application/x-www-form-urlencoded": components["schemas"]["ExternalDataSourceSerializers"]; + "multipart/form-data": components["schemas"]["ExternalDataSourceSerializers"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + external_data_sources_wizard_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + feature_flags_list: { + parameters: { + query?: { + active?: "STALE" | "false" | "true"; + /** @description The User ID which initially created the feature flag. */ + created_by_id?: string; + /** @description Filter feature flags by their evaluation runtime. */ + evaluation_runtime?: "both" | "client" | "server"; + /** @description JSON-encoded list of feature flag keys to exclude from the results. */ + excluded_properties?: string; + /** @description Filter feature flags by presence of evaluation contexts. 'true' returns only flags with at least one evaluation context, 'false' returns only flags without. */ + has_evaluation_contexts?: "false" | "true"; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Search by feature flag key or name. Case insensitive. */ + search?: string; + /** @description JSON-encoded list of tag names to filter feature flags by. */ + tags?: string; + type?: "boolean" | "experiment" | "multivariant" | "remote_config"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedFeatureFlagList"]; + }; + }; + }; + }; + feature_flags_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["FeatureFlagCreateRequestSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["FeatureFlagCreateRequestSchema"]; + "multipart/form-data": components["schemas"]["FeatureFlagCreateRequestSchema"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FeatureFlag"]; + }; + }; + }; + }; + feature_flags_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this feature flag. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FeatureFlag"]; + }; + }; + }; + }; + feature_flags_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this feature flag. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FeatureFlag"]; + "application/x-www-form-urlencoded": components["schemas"]["FeatureFlag"]; + "multipart/form-data": components["schemas"]["FeatureFlag"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FeatureFlag"]; + }; + }; + }; + }; + feature_flags_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this feature flag. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + feature_flags_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this feature flag. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedFeatureFlagPartialUpdateRequestSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedFeatureFlagPartialUpdateRequestSchema"]; + "multipart/form-data": components["schemas"]["PatchedFeatureFlagPartialUpdateRequestSchema"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FeatureFlag"]; + }; + }; + }; + }; + feature_flags_activity_retrieve: { + parameters: { + query?: { + /** @description Number of items per page */ + limit?: number; + /** @description Page number */ + page?: number; + }; + header?: never; + path: { + /** @description A unique integer value identifying this feature flag. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ActivityLogPaginatedResponse"]; + }; + }; + /** @description No response body */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + feature_flags_create_static_cohort_for_flag_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this feature flag. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FeatureFlag"]; + "application/x-www-form-urlencoded": components["schemas"]["FeatureFlag"]; + "multipart/form-data": components["schemas"]["FeatureFlag"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + feature_flags_dashboard_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this feature flag. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FeatureFlag"]; + "application/x-www-form-urlencoded": components["schemas"]["FeatureFlag"]; + "multipart/form-data": components["schemas"]["FeatureFlag"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + feature_flags_dependent_flags_list: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this feature flag. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DependentFlag"][]; + }; + }; + }; + }; + feature_flags_enrich_usage_dashboard_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this feature flag. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FeatureFlag"]; + "application/x-www-form-urlencoded": components["schemas"]["FeatureFlag"]; + "multipart/form-data": components["schemas"]["FeatureFlag"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + feature_flags_remote_config_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this feature flag. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + feature_flags_status_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this feature flag. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FeatureFlagStatusResponse"]; + }; + }; + }; + }; + feature_flags_test_evaluation_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this feature flag. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["FeatureFlagTestEvaluationRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["FeatureFlagTestEvaluationRequest"]; + "multipart/form-data": components["schemas"]["FeatureFlagTestEvaluationRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FeatureFlagTestEvaluationResponse"]; + }; + }; + /** @description Invalid parameters */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description Person not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description Server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description Flag evaluation service error */ + 502: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + feature_flags_versions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this feature flag. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + /** @description The version number to reconstruct. */ + version_number: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FeatureFlagVersionResponse"]; + }; + }; + /** @description Version history is not available for remote configuration flags. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Version not found. */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Activity log incomplete; cannot reconstruct this version. */ + 422: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + feature_flags_all_activity_retrieve: { + parameters: { + query?: { + /** @description Number of items per page */ + limit?: number; + /** @description Page number */ + page?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ActivityLogPaginatedResponse"]; + }; + }; + }; + }; + feature_flags_bulk_delete_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FeatureFlag"]; + "application/x-www-form-urlencoded": components["schemas"]["FeatureFlag"]; + "multipart/form-data": components["schemas"]["FeatureFlag"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + feature_flags_bulk_keys_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FeatureFlag"]; + "application/x-www-form-urlencoded": components["schemas"]["FeatureFlag"]; + "multipart/form-data": components["schemas"]["FeatureFlag"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + feature_flags_bulk_update_tags_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BulkUpdateTagsRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BulkUpdateTagsRequest"]; + "multipart/form-data": components["schemas"]["BulkUpdateTagsRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BulkUpdateTagsResponse"]; + }; + }; + }; + }; + feature_flags_evaluation_reasons_retrieve: { + parameters: { + query: { + /** @description User distinct ID */ + distinct_id: string; + /** @description Groups for feature flag evaluation (JSON object string) */ + groups?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + feature_flags_local_evaluation_retrieve: { + parameters: { + query?: { + /** @description Include cohorts in response */ + send_cohorts?: boolean | null; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LocalEvaluationResponse"]; + }; + }; + /** @description Payment required */ + 402: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + feature_flags_matching_ids_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + feature_flags_my_flags_retrieve: { + parameters: { + query?: { + /** @description Groups for feature flag evaluation (JSON object string) */ + groups?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MyFlagsResponse"][]; + }; + }; + }; + }; + feature_flags_user_blast_radius_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UserBlastRadiusRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["UserBlastRadiusRequest"]; + "multipart/form-data": components["schemas"]["UserBlastRadiusRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UserBlastRadiusResponse"]; + }; + }; + }; + }; + file_system_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedFileSystemList"]; + }; + }; + }; + }; + file_system_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystem"]; + }; + }; + }; + }; + file_system_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this file system. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystem"]; + }; + }; + }; + }; + file_system_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this file system. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystem"]; + }; + }; + }; + }; + file_system_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this file system. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + file_system_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this file system. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedFileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedFileSystem"]; + "multipart/form-data": components["schemas"]["PatchedFileSystem"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystem"]; + }; + }; + }; + }; + file_system_count_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this file system. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + file_system_link_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this file system. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + file_system_move_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this file system. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + file_system_count_by_path_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + file_system_log_view_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + file_system_log_view_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + file_system_undo_delete_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystem"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystem"]; + "multipart/form-data": components["schemas"]["FileSystem"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + file_system_unfiled_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + file_system_shortcut_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedFileSystemShortcutList"]; + }; + }; + }; + }; + file_system_shortcut_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystemShortcut"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystemShortcut"]; + "multipart/form-data": components["schemas"]["FileSystemShortcut"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystemShortcut"]; + }; + }; + }; + }; + file_system_shortcut_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this file system shortcut. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystemShortcut"]; + }; + }; + }; + }; + file_system_shortcut_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this file system shortcut. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystemShortcut"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystemShortcut"]; + "multipart/form-data": components["schemas"]["FileSystemShortcut"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystemShortcut"]; + }; + }; + }; + }; + file_system_shortcut_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this file system shortcut. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + file_system_shortcut_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this file system shortcut. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedFileSystemShortcut"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedFileSystemShortcut"]; + "multipart/form-data": components["schemas"]["PatchedFileSystemShortcut"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FileSystemShortcut"]; + }; + }; + }; + }; + file_system_shortcut_reorder_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FileSystemShortcutReorder"]; + "application/x-www-form-urlencoded": components["schemas"]["FileSystemShortcutReorder"]; + "multipart/form-data": components["schemas"]["FileSystemShortcutReorder"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedFileSystemShortcutList"]; + }; + }; + }; + }; + flag_value_values_retrieve: { + parameters: { + query?: { + /** @description The flag ID */ + key?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["FlagValueResponse"]; + }; + }; + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + groups_list: { + parameters: { + query: { + /** @description Pagination cursor returned in the `next` URL of a previous response */ + cursor?: string; + /** @description Filter groups whose key contains this string (case-insensitive) */ + group_key?: string; + /** @description Specify the group type to list */ + group_type_index: number; + /** @description Search the group name */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Group"][]; + }; + }; + }; + }; + groups_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CreateGroup"]; + "application/x-www-form-urlencoded": components["schemas"]["CreateGroup"]; + "multipart/form-data": components["schemas"]["CreateGroup"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Group"]; + }; + }; + }; + }; + groups_activity_retrieve: { + parameters: { + query: { + /** @description Specify the group type to find */ + group_type_index: number; + /** @description Specify the id of the user to find groups for */ + id: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + groups_delete_property_create: { + parameters: { + query: { + /** @description Specify the key of the group to find */ + group_key: string; + /** @description Specify the group type to find */ + group_type_index: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Group"]; + "application/x-www-form-urlencoded": components["schemas"]["Group"]; + "multipart/form-data": components["schemas"]["Group"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + groups_find_retrieve: { + parameters: { + query: { + /** @description Specify the key of the group to find */ + group_key: string; + /** @description Specify the group type to find */ + group_type_index: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + groups_property_definitions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + groups_property_values_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + groups_related_retrieve: { + parameters: { + query: { + /** @description Specify the group type to find */ + group_type_index: number; + /** @description Specify the id of the user to find groups for */ + id: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + groups_update_property_create: { + parameters: { + query: { + /** @description Specify the key of the group to find */ + group_key: string; + /** @description Specify the group type to find */ + group_type_index: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Group"]; + "application/x-www-form-urlencoded": components["schemas"]["Group"]; + "multipart/form-data": components["schemas"]["Group"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + groups_types_list: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GroupType"][]; + }; + }; + }; + }; + groups_types_destroy: { + parameters: { + query?: never; + header?: never; + path: { + group_type_index: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + groups_types_metrics_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + group_type_index: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedGroupUsageMetricList"]; + }; + }; + }; + }; + groups_types_metrics_create: { + parameters: { + query?: never; + header?: never; + path: { + group_type_index: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["GroupUsageMetric"]; + "application/x-www-form-urlencoded": components["schemas"]["GroupUsageMetric"]; + "multipart/form-data": components["schemas"]["GroupUsageMetric"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GroupUsageMetric"]; + }; + }; + }; + }; + groups_types_metrics_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + group_type_index: number; + /** @description A UUID string identifying this group usage metric. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GroupUsageMetric"]; + }; + }; + }; + }; + groups_types_metrics_update: { + parameters: { + query?: never; + header?: never; + path: { + group_type_index: number; + /** @description A UUID string identifying this group usage metric. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["GroupUsageMetric"]; + "application/x-www-form-urlencoded": components["schemas"]["GroupUsageMetric"]; + "multipart/form-data": components["schemas"]["GroupUsageMetric"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GroupUsageMetric"]; + }; + }; + }; + }; + groups_types_metrics_destroy: { + parameters: { + query?: never; + header?: never; + path: { + group_type_index: number; + /** @description A UUID string identifying this group usage metric. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + groups_types_metrics_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + group_type_index: number; + /** @description A UUID string identifying this group usage metric. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedGroupUsageMetric"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedGroupUsageMetric"]; + "multipart/form-data": components["schemas"]["PatchedGroupUsageMetric"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GroupUsageMetric"]; + }; + }; + }; + }; + groups_types_create_detail_dashboard_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["GroupType"]; + "application/x-www-form-urlencoded": components["schemas"]["GroupType"]; + "multipart/form-data": components["schemas"]["GroupType"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + groups_types_set_default_columns_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["GroupType"]; + "application/x-www-form-urlencoded": components["schemas"]["GroupType"]; + "multipart/form-data": components["schemas"]["GroupType"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + groups_types_update_metadata_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedGroupType"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedGroupType"]; + "multipart/form-data": components["schemas"]["PatchedGroupType"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + heatmap_screenshots_content_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this saved heatmap. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + heatmaps_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHeatmapsResponseList"]; + }; + }; + }; + }; + heatmaps_events_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + hog_flows_list: { + parameters: { + query?: { + created_at?: string; + created_by?: number; + id?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + updated_at?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHogFlowMinimalList"]; + }; + }; + }; + }; + hog_flows_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + hog_flows_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + hog_flows_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + hog_flows_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + hog_flows_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedHogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedHogFlow"]; + "multipart/form-data": components["schemas"]["PatchedHogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + hog_flows_batch_jobs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + hog_flows_batch_jobs_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + hog_flows_blocked_runs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + hog_flows_invocations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + hog_flows_logs_retrieve: { + parameters: { + query?: { + /** @description Only return entries after this ISO 8601 timestamp. */ + after?: string; + /** @description Only return entries before this ISO 8601 timestamp. */ + before?: string; + /** @description Filter logs to a specific execution instance. */ + instance_id?: string; + /** @description Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR. */ + level?: string; + /** @description Maximum number of log entries to return (1-500, default 50). */ + limit?: number; + /** @description Case-insensitive substring search across log messages. */ + search?: string; + }; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + hog_flows_metrics_retrieve: { + parameters: { + query?: { + /** @description Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'. */ + after?: string; + /** @description End of the time range. Same format as 'after'. Defaults to now. */ + before?: string; + /** + * @description Group the series by metric 'name' or 'kind'. Defaults to 'kind'. + * + * * `name` - name + * * `kind` - kind + */ + breakdown_by?: "name" | "kind"; + /** @description Filter metrics to a specific execution instance. */ + instance_id?: string; + /** + * @description Time bucket size for the series. One of: hour, day, week. Defaults to 'day'. + * + * * `hour` - hour + * * `day` - day + * * `week` - week + */ + interval?: "hour" | "day" | "week"; + /** @description Comma-separated metric kinds to filter by, e.g. 'success,failure'. */ + kind?: string; + /** @description Comma-separated metric names to filter by. */ + name?: string; + }; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AppMetricsResponse"]; + }; + }; + }; + }; + hog_flows_metrics_totals_retrieve: { + parameters: { + query?: { + /** @description Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'. */ + after?: string; + /** @description End of the time range. Same format as 'after'. Defaults to now. */ + before?: string; + /** + * @description Group the series by metric 'name' or 'kind'. Defaults to 'kind'. + * + * * `name` - name + * * `kind` - kind + */ + breakdown_by?: "name" | "kind"; + /** @description Filter metrics to a specific execution instance. */ + instance_id?: string; + /** + * @description Time bucket size for the series. One of: hour, day, week. Defaults to 'day'. + * + * * `hour` - hour + * * `day` - day + * * `week` - week + */ + interval?: "hour" | "day" | "week"; + /** @description Comma-separated metric kinds to filter by, e.g. 'success,failure'. */ + kind?: string; + /** @description Comma-separated metric names to filter by. */ + name?: string; + }; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AppMetricsTotalsResponse"]; + }; + }; + }; + }; + hog_flows_replay_all_blocked_runs_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + hog_flows_replay_blocked_run_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + hog_flows_schedules_list: { + parameters: { + query?: { + created_at?: string; + created_by?: number; + id?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + updated_at?: string; + }; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHogFlowScheduleList"]; + }; + }; + }; + }; + hog_flows_schedules_create: { + parameters: { + query?: { + created_at?: string; + created_by?: number; + id?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + updated_at?: string; + }; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHogFlowScheduleList"]; + }; + }; + }; + }; + hog_flows_schedules_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + schedule_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + hog_flows_schedules_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog flow. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + schedule_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedHogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedHogFlow"]; + "multipart/form-data": components["schemas"]["PatchedHogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + hog_flows_bulk_delete_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFlow"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFlow"]; + "multipart/form-data": components["schemas"]["HogFlow"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFlow"]; + }; + }; + }; + }; + hog_flows_user_blast_radius_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BlastRadiusRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BlastRadiusRequest"]; + "multipart/form-data": components["schemas"]["BlastRadiusRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BlastRadius"]; + }; + }; + }; + }; + hog_function_templates_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Filter to a specific template by its template_id. Deprecated templates are excluded from list results; use the retrieve endpoint to look up a template by ID regardless of status. */ + template_id?: string; + /** @description Filter by template type (e.g. destination, email, sms_provider, broadcast). Defaults to destination if neither type nor types is provided. */ + type?: string; + /** @description Comma-separated list of template types to include (e.g. destination,email,sms_provider). */ + types?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHogFunctionTemplateList"]; + }; + }; + }; + }; + hog_function_templates_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + template_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFunctionTemplate"]; + }; + }; + }; + }; + hog_functions_list: { + parameters: { + query?: { + created_at?: string; + created_by?: number; + enabled?: boolean; + id?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Multiple values may be separated by commas. */ + type?: string[]; + updated_at?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHogFunctionMinimalList"]; + }; + }; + }; + }; + hog_functions_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["HogFunction"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFunction"]; + "multipart/form-data": components["schemas"]["HogFunction"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFunction"]; + }; + }; + }; + }; + hog_functions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog function. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFunction"]; + }; + }; + }; + }; + hog_functions_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog function. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["HogFunction"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFunction"]; + "multipart/form-data": components["schemas"]["HogFunction"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFunction"]; + }; + }; + }; + }; + hog_functions_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog function. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + hog_functions_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog function. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedHogFunction"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedHogFunction"]; + "multipart/form-data": components["schemas"]["PatchedHogFunction"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFunction"]; + }; + }; + }; + }; + hog_functions_enable_backfills_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog function. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["HogFunction"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFunction"]; + "multipart/form-data": components["schemas"]["HogFunction"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + hog_functions_invocations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this hog function. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HogFunctionInvocation"]; + "application/x-www-form-urlencoded": components["schemas"]["HogFunctionInvocation"]; + "multipart/form-data": components["schemas"]["HogFunctionInvocation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFunctionInvocation"]; + }; + }; + }; + }; + hog_functions_logs_retrieve: { + parameters: { + query?: { + /** @description Only return entries after this ISO 8601 timestamp. */ + after?: string; + /** @description Only return entries before this ISO 8601 timestamp. */ + before?: string; + /** @description Filter logs to a specific execution instance. */ + instance_id?: string; + /** @description Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR. */ + level?: string; + /** @description Maximum number of log entries to return (1-500, default 50). */ + limit?: number; + /** @description Case-insensitive substring search across log messages. */ + search?: string; + }; + header?: never; + path: { + /** @description A UUID string identifying this hog function. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + hog_functions_metrics_retrieve: { + parameters: { + query?: { + /** @description Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'. */ + after?: string; + /** @description End of the time range. Same format as 'after'. Defaults to now. */ + before?: string; + /** + * @description Group the series by metric 'name' or 'kind'. Defaults to 'kind'. + * + * * `name` - name + * * `kind` - kind + */ + breakdown_by?: "name" | "kind"; + /** @description Filter metrics to a specific execution instance. */ + instance_id?: string; + /** + * @description Time bucket size for the series. One of: hour, day, week. Defaults to 'day'. + * + * * `hour` - hour + * * `day` - day + * * `week` - week + */ + interval?: "hour" | "day" | "week"; + /** @description Comma-separated metric kinds to filter by, e.g. 'success,failure'. */ + kind?: string; + /** @description Comma-separated metric names to filter by. */ + name?: string; + }; + header?: never; + path: { + /** @description A UUID string identifying this hog function. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AppMetricsResponse"]; + }; + }; + }; + }; + hog_functions_metrics_totals_retrieve: { + parameters: { + query?: { + /** @description Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'. */ + after?: string; + /** @description End of the time range. Same format as 'after'. Defaults to now. */ + before?: string; + /** + * @description Group the series by metric 'name' or 'kind'. Defaults to 'kind'. + * + * * `name` - name + * * `kind` - kind + */ + breakdown_by?: "name" | "kind"; + /** @description Filter metrics to a specific execution instance. */ + instance_id?: string; + /** + * @description Time bucket size for the series. One of: hour, day, week. Defaults to 'day'. + * + * * `hour` - hour + * * `day` - day + * * `week` - week + */ + interval?: "hour" | "day" | "week"; + /** @description Comma-separated metric kinds to filter by, e.g. 'success,failure'. */ + kind?: string; + /** @description Comma-separated metric names to filter by. */ + name?: string; + }; + header?: never; + path: { + /** @description A UUID string identifying this hog function. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AppMetricsTotalsResponse"]; + }; + }; + }; + }; + hog_functions_icon_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + hog_functions_icons_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + hog_functions_rearrange_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedHogFunctionRearrange"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedHogFunctionRearrange"]; + "multipart/form-data": components["schemas"]["PatchedHogFunctionRearrange"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HogFunction"][]; + }; + }; + }; + }; + insight_variables_list: { + parameters: { + query?: { + /** @description A page number within the paginated result set. */ + page?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedInsightVariableList"]; + }; + }; + }; + }; + insight_variables_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["InsightVariable"]; + "application/x-www-form-urlencoded": components["schemas"]["InsightVariable"]; + "multipart/form-data": components["schemas"]["InsightVariable"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["InsightVariable"]; + }; + }; + }; + }; + insight_variables_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this insight variable. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["InsightVariable"]; + }; + }; + }; + }; + insight_variables_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this insight variable. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["InsightVariable"]; + "application/x-www-form-urlencoded": components["schemas"]["InsightVariable"]; + "multipart/form-data": components["schemas"]["InsightVariable"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["InsightVariable"]; + }; + }; + }; + }; + insight_variables_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this insight variable. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + insight_variables_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this insight variable. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedInsightVariable"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedInsightVariable"]; + "multipart/form-data": components["schemas"]["PatchedInsightVariable"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["InsightVariable"]; + }; + }; + }; + }; + insights_list: { + parameters: { + query?: { + /** @description Return basic insight metadata only (no results, faster). */ + basic?: boolean; + /** @description JSON-encoded array of user IDs. Only returns insights whose `created_by` is in the list, e.g. `[1,42]`. */ + created_by?: string; + /** @description Filter by `created_at > created_date_from`. Accepts absolute or relative dates. */ + created_date_from?: string; + /** @description Filter by `created_at < created_date_to`. Accepts absolute or relative dates. */ + created_date_to?: string; + /** @description JSON-encoded array of dashboard IDs. Returns insights attached to every listed dashboard (AND). */ + dashboards?: string; + /** @description Filter by `last_modified_at > date_from`. Accepts absolute dates (`2025-04-23`) or relative strings (`-7d`, `-1m`). */ + date_from?: string; + /** @description Filter by `last_modified_at < date_to`. Accepts absolute dates or relative strings. */ + date_to?: string; + /** @description Include this parameter (any value) to restrict results to insights marked as favorited. */ + favorited?: boolean; + format?: "csv" | "json"; + /** @description Restrict to a single insight type. `JSON` matches non-wrapper query insights; `SQL` matches HogQL queries. */ + insight?: "FUNNELS" | "JSON" | "LIFECYCLE" | "PATHS" | "RETENTION" | "SQL" | "STICKINESS" | "TRENDS"; + /** @description Filter by `last_viewed_at > last_viewed_date_from`. Accepts absolute or relative dates. */ + last_viewed_date_from?: string; + /** @description Filter by `last_viewed_at < last_viewed_date_to`. Accepts absolute or relative dates. */ + last_viewed_date_to?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** + * @description Whether to refresh the retrieved insights, how aggressively, and if sync or async: + * - `'force_cache'` - return cached data or a cache miss; always completes immediately as it never calculates + * - `'blocking'` - calculate synchronously (returning only when the query is done), UNLESS there are very fresh results in the cache + * - `'async'` - kick off background calculation (returning immediately with a query status), UNLESS there are very fresh results in the cache + * - `'lazy_async'` - kick off background calculation, UNLESS there are somewhat fresh results in the cache + * - `'force_blocking'` - calculate synchronously, even if fresh results are already cached + * - `'force_async'` - kick off background calculation, even if fresh results are already cached + * Background calculation can be tracked using the `query_status` response field. + */ + refresh?: "async" | "async_except_on_cache_miss" | "blocking" | "force_async" | "force_blocking" | "force_cache" | "lazy_async"; + /** @description When truthy, restricts results to insights that are saved (or attached to a visible dashboard). When falsy, only unsaved insights. */ + saved?: boolean; + /** @description Case-insensitive substring match across name, derived_name, description, and tag names. */ + search?: string; + short_id?: string; + /** @description JSON-encoded array of tag names. Returns insights with any of the listed tags. */ + tags?: string; + /** @description Include this parameter (any value) to restrict results to insights created by the authenticated user. */ + user?: boolean; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedInsightList"]; + "text/csv": components["schemas"]["PaginatedInsightList"]; + }; + }; + }; + }; + insights_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Insight"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Insight"]; + "text/csv": components["schemas"]["Insight"]; + }; + }; + }; + }; + insights_sharing_list: { + parameters: { + query?: never; + header?: never; + path: { + insight_id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"][]; + }; + }; + }; + }; + insights_sharing_passwords_create: { + parameters: { + query?: never; + header?: never; + path: { + insight_id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + insights_sharing_passwords_destroy: { + parameters: { + query?: never; + header?: never; + path: { + insight_id: number; + password_id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + insights_sharing_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + insight_id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + insights_thresholds_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + insight_id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedThresholdWithAlertList"]; + }; + }; + }; + }; + insights_thresholds_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this threshold. */ + id: string; + insight_id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ThresholdWithAlert"]; + }; + }; + }; + }; + insights_retrieve: { + parameters: { + query?: { + /** @description Object (or pre-encoded JSON string) to override the insight's filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token. */ + filters_override?: string; + format?: "csv" | "json"; + /** + * @description Only if loading an insight in the context of a dashboard: The relevant dashboard's ID. + * When set, the specified dashboard's filters and date range override will be applied. + */ + from_dashboard?: number; + /** + * @description Whether to refresh the insight, how aggresively, and if sync or async: + * - `'force_cache'` - return cached data or a cache miss; always completes immediately as it never calculates + * - `'blocking'` - calculate synchronously (returning only when the query is done), UNLESS there are very fresh results in the cache + * - `'async'` - kick off background calculation (returning immediately with a query status), UNLESS there are very fresh results in the cache + * - `'lazy_async'` - kick off background calculation, UNLESS there are somewhat fresh results in the cache + * - `'force_blocking'` - calculate synchronously, even if fresh results are already cached + * - `'force_async'` - kick off background calculation, even if fresh results are already cached + * Background calculation can be tracked using the `query_status` response field. + */ + refresh?: "async" | "async_except_on_cache_miss" | "blocking" | "force_async" | "force_blocking" | "force_cache" | "lazy_async"; + /** @description Object (or pre-encoded JSON string) to override the insight's HogQL variables for this request only (not persisted). Format: {"": {"code_name": "", "variableId": "", "value": }}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `insight-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token. */ + variables_override?: string; + }; + header?: never; + path: { + /** @description Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight. */ + id: number | string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Insight"]; + "text/csv": components["schemas"]["Insight"]; + }; + }; + }; + }; + insights_update: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight. */ + id: number | string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Insight"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Insight"]; + "text/csv": components["schemas"]["Insight"]; + }; + }; + }; + }; + insights_destroy: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight. */ + id: number | string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + insights_partial_update: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight. */ + id: number | string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedInsight"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Insight"]; + "text/csv": components["schemas"]["Insight"]; + }; + }; + }; + }; + insights_activity_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + /** @description Page size. Defaults to 10. */ + limit?: number; + /** @description 1-indexed page number. Defaults to 1. */ + page?: number; + }; + header?: never; + path: { + /** @description A unique integer value identifying this insight. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ActivityLogPaginatedResponse"]; + "text/csv": components["schemas"]["ActivityLogPaginatedResponse"]; + }; + }; + }; + }; + insights_analyze_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this insight. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + insights_suggestions_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this insight. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + insights_suggestions_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this insight. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Insight"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + insights_all_activity_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + /** @description Page size. Defaults to 10. */ + limit?: number; + /** @description 1-indexed page number. Defaults to 1. */ + page?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ActivityLogPaginatedResponse"]; + "text/csv": components["schemas"]["ActivityLogPaginatedResponse"]; + }; + }; + }; + }; + insights_bulk_update_tags_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BulkUpdateTagsRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BulkUpdateTagsResponse"]; + "text/csv": components["schemas"]["BulkUpdateTagsResponse"]; + }; + }; + }; + }; + insights_cancel_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Insight"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + insights_generate_metadata_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Insight"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + insights_my_last_viewed_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + insights_trending_retrieve: { + parameters: { + query?: { + /** @description Time window in days to compute view counts over. Defaults to 7. Larger windows surface consistently popular insights; smaller windows surface what's hot right now. */ + days?: number; + format?: "csv" | "json"; + /** @description Maximum number of insights to return. Defaults to 10. Capped at 100. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedTrendingInsightList"]; + "text/csv": components["schemas"]["PaginatedTrendingInsightList"]; + }; + }; + }; + }; + insights_viewed_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["InsightViewedRequest"]; + }; + }; + responses: { + /** @description Views recorded. */ + 201: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_list: { + parameters: { + query?: { + /** + * @description * `anthropic` - Anthropic + * * `apns` - Apple Push + * * `azure-blob` - Azure Blob + * * `bing-ads` - Bing Ads + * * `clickup` - Clickup + * * `customerio-app` - Customerio App + * * `customerio-track` - Customerio Track + * * `customerio-webhook` - Customerio Webhook + * * `databricks` - Databricks + * * `email` - Email + * * `firebase` - Firebase + * * `github` - Github + * * `gitlab` - Gitlab + * * `google-ads` - Google Ads + * * `google-cloud-service-account` - Google Cloud Service Account + * * `google-cloud-storage` - Google Cloud Storage + * * `google-pubsub` - Google Pubsub + * * `google-sheets` - Google Sheets + * * `hubspot` - Hubspot + * * `intercom` - Intercom + * * `jira` - Jira + * * `linear` - Linear + * * `linkedin-ads` - Linkedin Ads + * * `meta-ads` - Meta Ads + * * `pinterest-ads` - Pinterest Ads + * * `postgresql` - Postgresql + * * `reddit-ads` - Reddit Ads + * * `salesforce` - Salesforce + * * `slack` - Slack + * * `slack-posthog-code` - Slack Posthog Code + * * `snapchat` - Snapchat + * * `stripe` - Stripe + * * `tiktok-ads` - Tiktok Ads + * * `twilio` - Twilio + * * `vercel` - Vercel + */ + kind?: "anthropic" | "apns" | "azure-blob" | "bing-ads" | "clickup" | "customerio-app" | "customerio-track" | "customerio-webhook" | "databricks" | "email" | "firebase" | "github" | "gitlab" | "google-ads" | "google-cloud-service-account" | "google-cloud-storage" | "google-pubsub" | "google-sheets" | "hubspot" | "intercom" | "jira" | "linear" | "linkedin-ads" | "meta-ads" | "pinterest-ads" | "postgresql" | "reddit-ads" | "salesforce" | "slack" | "slack-posthog-code" | "snapchat" | "stripe" | "tiktok-ads" | "twilio" | "vercel"; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedIntegrationConfigList"]; + }; + }; + }; + }; + integrations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["IntegrationConfig"]; + "multipart/form-data": components["schemas"]["IntegrationConfig"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + }; + }; + }; + }; + integrations_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + }; + }; + }; + }; + integrations_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_anthropic_managed_agent_envs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_anthropic_managed_agent_vaults_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_anthropic_managed_agents_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_channels_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SlackChannelsResponse"]; + }; + }; + }; + }; + integrations_clickup_lists_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_clickup_spaces_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_clickup_workspaces_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_email_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedIntegrationConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedIntegrationConfig"]; + "multipart/form-data": components["schemas"]["PatchedIntegrationConfig"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + }; + }; + }; + }; + integrations_email_verify_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["IntegrationConfig"]; + "multipart/form-data": components["schemas"]["IntegrationConfig"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_github_branches_retrieve: { + parameters: { + query: { + /** @description Maximum number of branches to return */ + limit?: number; + /** @description Number of branches to skip */ + offset?: number; + /** @description Repository in owner/repo format */ + repo: string; + /** @description Optional case-insensitive branch name search query. */ + search?: string; + }; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GitHubBranchesResponse"]; + }; + }; + }; + }; + integrations_github_repos_retrieve: { + parameters: { + query?: { + /** @description Maximum number of repositories to return per request (max 500). */ + limit?: number; + /** @description Number of repositories to skip before returning results. */ + offset?: number; + /** @description Optional case-insensitive repository name search query. */ + search?: string; + }; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GitHubReposResponse"]; + }; + }; + }; + }; + integrations_github_repos_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GitHubReposRefreshResponse"]; + }; + }; + }; + }; + integrations_google_accessible_accounts_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_google_conversion_actions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_jira_projects_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_linear_teams_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_linkedin_ads_accounts_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_linkedin_ads_conversion_rules_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_twilio_phone_numbers_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this integration. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_authorize_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_domain_connect_apply_url_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["IntegrationConfig"]; + "multipart/form-data": components["schemas"]["IntegrationConfig"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_domain_connect_check_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_github_link_existing_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["IntegrationConfig"]; + "multipart/form-data": components["schemas"]["IntegrationConfig"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + integrations_github_oauth_authorize_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["IntegrationConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["IntegrationConfig"]; + "multipart/form-data": components["schemas"]["IntegrationConfig"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + js_snippet_resolve_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + js_snippet_version_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + js_snippet_version_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedJsSnippetVersion"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedJsSnippetVersion"]; + "multipart/form-data": components["schemas"]["PatchedJsSnippetVersion"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + live_debugger_breakpoints_list: { + parameters: { + query?: { + filename?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + repository?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLiveDebuggerBreakpointList"]; + }; + }; + }; + }; + live_debugger_breakpoints_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LiveDebuggerBreakpoint"]; + "application/x-www-form-urlencoded": components["schemas"]["LiveDebuggerBreakpoint"]; + "multipart/form-data": components["schemas"]["LiveDebuggerBreakpoint"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiveDebuggerBreakpoint"]; + }; + }; + }; + }; + live_debugger_breakpoints_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this live debugger breakpoint. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiveDebuggerBreakpoint"]; + }; + }; + }; + }; + live_debugger_breakpoints_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this live debugger breakpoint. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LiveDebuggerBreakpoint"]; + "application/x-www-form-urlencoded": components["schemas"]["LiveDebuggerBreakpoint"]; + "multipart/form-data": components["schemas"]["LiveDebuggerBreakpoint"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiveDebuggerBreakpoint"]; + }; + }; + }; + }; + live_debugger_breakpoints_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this live debugger breakpoint. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + live_debugger_breakpoints_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this live debugger breakpoint. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedLiveDebuggerBreakpoint"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedLiveDebuggerBreakpoint"]; + "multipart/form-data": components["schemas"]["PatchedLiveDebuggerBreakpoint"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiveDebuggerBreakpoint"]; + }; + }; + }; + }; + live_debugger_breakpoints_active_retrieve: { + parameters: { + query?: { + /** @description Only return enabled breakpoints */ + enabled?: boolean; + /** @description Filter breakpoints for a specific file */ + filename?: string; + /** @description Filter breakpoints for a specific repository (e.g., 'PostHog/posthog') */ + repository?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of breakpoints for client consumption */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ActiveBreakpointsResponse"]; + }; + }; + /** @description Invalid query parameters */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Invalid or missing Project API key */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + live_debugger_breakpoints_breakpoint_hits_retrieve: { + parameters: { + query?: { + /** @description Filter hits for specific breakpoints (repeat parameter for multiple IDs, e.g., ?breakpoint_ids=uuid1&breakpoint_ids=uuid2) */ + breakpoint_ids?: string; + /** @description Number of hits to return (default: 100, max: 1000) */ + limit?: number; + /** @description Pagination offset for retrieving additional results (default: 0) */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of breakpoint hits with pagination info */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BreakpointHitsResponse"]; + }; + }; + /** @description Invalid query parameters (invalid UUID, limit out of range, etc.) */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + logs_alerts_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLogsAlertConfigurationList"]; + }; + }; + }; + }; + logs_alerts_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsAlertConfiguration"]; + "multipart/form-data": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + }; + }; + logs_alerts_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + }; + }; + logs_alerts_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsAlertConfiguration"]; + "multipart/form-data": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + }; + }; + logs_alerts_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + logs_alerts_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedLogsAlertConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedLogsAlertConfiguration"]; + "multipart/form-data": components["schemas"]["PatchedLogsAlertConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + }; + }; + logs_alerts_destinations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsAlertCreateDestination"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsAlertCreateDestination"]; + "multipart/form-data": components["schemas"]["LogsAlertCreateDestination"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertDestinationResponse"]; + }; + }; + }; + }; + logs_alerts_destinations_delete_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsAlertDeleteDestination"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsAlertDeleteDestination"]; + "multipart/form-data": components["schemas"]["LogsAlertDeleteDestination"]; + }; + }; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + logs_alerts_events_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLogsAlertEventList"]; + }; + }; + }; + }; + logs_alerts_reset_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this logs alert configuration. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertConfiguration"]; + }; + }; + }; + }; + logs_alerts_simulate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsAlertSimulateRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsAlertSimulateRequest"]; + "multipart/form-data": components["schemas"]["LogsAlertSimulateRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsAlertSimulateResponse"]; + }; + }; + }; + }; + logs_attributes_retrieve: { + parameters: { + query?: { + /** + * @description Type of attributes: "log" for log attributes, "resource" for resource attributes. Defaults to "log". + * + * * `log` - log + * * `resource` - resource + */ + attribute_type?: "log" | "resource"; + /** @description Date range to search within. Defaults to last hour. */ + dateRange?: components["schemas"]["_DateRange"]; + /** @description Property filters to narrow which logs are scanned for attributes. */ + filterGroup?: components["schemas"]["_LogPropertyFilter"][]; + /** @description Max results (default: 100) */ + limit?: number; + /** @description Pagination offset (default: 0) */ + offset?: number; + /** @description Search filter for attribute names */ + search?: string; + /** @description When true, the search query also matches attribute values (not just keys). Each result indicates whether it matched on key or value. */ + search_values?: boolean; + /** @description Filter attributes to those appearing in logs from these services. */ + serviceNames?: string[]; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsAttributesResponse"]; + }; + }; + }; + }; + logs_count_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_LogsCountRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_LogsCountRequest"]; + "multipart/form-data": components["schemas"]["_LogsCountRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsCountResponse"]; + }; + }; + }; + }; + logs_count_ranges_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_LogsCountRangesRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_LogsCountRangesRequest"]; + "multipart/form-data": components["schemas"]["_LogsCountRangesRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsCountRangesResponse"]; + }; + }; + }; + }; + logs_export_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + logs_has_logs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + logs_query_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_LogsQueryRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_LogsQueryRequest"]; + "multipart/form-data": components["schemas"]["_LogsQueryRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsQueryResponse"]; + }; + }; + }; + }; + logs_sampling_rules_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLogsSamplingRuleList"]; + }; + }; + }; + }; + logs_sampling_rules_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsSamplingRule"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsSamplingRule"]; + "multipart/form-data": components["schemas"]["LogsSamplingRule"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsSamplingRule"]; + }; + }; + }; + }; + logs_sampling_rules_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this logs exclusion rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsSamplingRule"]; + }; + }; + }; + }; + logs_sampling_rules_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this logs exclusion rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsSamplingRule"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsSamplingRule"]; + "multipart/form-data": components["schemas"]["LogsSamplingRule"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsSamplingRule"]; + }; + }; + }; + }; + logs_sampling_rules_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this logs exclusion rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + logs_sampling_rules_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this logs exclusion rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedLogsSamplingRule"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedLogsSamplingRule"]; + "multipart/form-data": components["schemas"]["PatchedLogsSamplingRule"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsSamplingRule"]; + }; + }; + }; + }; + logs_sampling_rules_simulate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this logs exclusion rule. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LogsSamplingRuleSimulateResponse"]; + }; + }; + }; + }; + logs_sampling_rules_reorder_create: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LogsSamplingRuleReorder"]; + "application/x-www-form-urlencoded": components["schemas"]["LogsSamplingRuleReorder"]; + "multipart/form-data": components["schemas"]["LogsSamplingRuleReorder"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedLogsSamplingRuleList"]; + }; + }; + }; + }; + logs_services_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_LogsServicesRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_LogsServicesRequest"]; + "multipart/form-data": components["schemas"]["_LogsServicesRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsServicesResponse"]; + }; + }; + }; + }; + logs_sparkline_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["_LogsSparklineRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["_LogsSparklineRequest"]; + "multipart/form-data": components["schemas"]["_LogsSparklineRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsSparklineResponse"]; + }; + }; + }; + }; + logs_values_retrieve: { + parameters: { + query: { + /** + * @description Type of attribute: "log" or "resource". Defaults to "log". + * + * * `log` - log + * * `resource` - resource + */ + attribute_type?: "log" | "resource"; + /** @description Date range to search within. Defaults to last hour. */ + dateRange?: components["schemas"]["_DateRange"]; + /** @description Property filters to narrow which logs are scanned for values. */ + filterGroup?: components["schemas"]["_LogPropertyFilter"][]; + /** @description The attribute key to get values for */ + key: string; + /** @description Filter values to those appearing in logs from these services. */ + serviceNames?: string[]; + /** @description Search filter for attribute values */ + value?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["_LogsValuesResponse"]; + }; + }; + }; + }; + notebooks_list: { + parameters: { + query?: { + /** + * @description Filter for notebooks that match a provided filter. + * Each match pair is separated by a colon, + * multiple match pairs can be sent separated by a space or a comma + */ + contains?: string; + /** @description The UUID of the Notebook's creator */ + created_by?: string; + /** @description Filter for notebooks created after this date & time */ + date_from?: string; + /** @description Filter for notebooks created before this date & time */ + date_to?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description If any value is provided for this parameter, return notebooks created by the logged in user. */ + user?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedNotebookMinimalList"]; + }; + }; + }; + }; + notebooks_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Notebook"]; + "application/x-www-form-urlencoded": components["schemas"]["Notebook"]; + "multipart/form-data": components["schemas"]["Notebook"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Notebook"]; + }; + }; + }; + }; + notebooks_sharing_list: { + parameters: { + query?: never; + header?: never; + path: { + notebook_id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"][]; + }; + }; + }; + }; + notebooks_sharing_passwords_create: { + parameters: { + query?: never; + header?: never; + path: { + notebook_id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + notebooks_sharing_passwords_destroy: { + parameters: { + query?: never; + header?: never; + path: { + notebook_id: string; + password_id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_sharing_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + notebook_id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + notebooks_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Notebook"]; + }; + }; + }; + }; + notebooks_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Notebook"]; + "application/x-www-form-urlencoded": components["schemas"]["Notebook"]; + "multipart/form-data": components["schemas"]["Notebook"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Notebook"]; + }; + }; + }; + }; + notebooks_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedNotebook"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedNotebook"]; + "multipart/form-data": components["schemas"]["PatchedNotebook"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Notebook"]; + }; + }; + }; + }; + notebooks_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_collab_save_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["NotebookCollabSave"]; + "application/x-www-form-urlencoded": components["schemas"]["NotebookCollabSave"]; + "multipart/form-data": components["schemas"]["NotebookCollabSave"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_collab_stream_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_hogql_execute_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Notebook"]; + "application/x-www-form-urlencoded": components["schemas"]["Notebook"]; + "multipart/form-data": components["schemas"]["Notebook"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_kernel_config_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Notebook"]; + "application/x-www-form-urlencoded": components["schemas"]["Notebook"]; + "multipart/form-data": components["schemas"]["Notebook"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_kernel_dataframe_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_kernel_execute_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Notebook"]; + "application/x-www-form-urlencoded": components["schemas"]["Notebook"]; + "multipart/form-data": components["schemas"]["Notebook"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_kernel_execute_stream_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Notebook"]; + "application/x-www-form-urlencoded": components["schemas"]["Notebook"]; + "multipart/form-data": components["schemas"]["Notebook"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_kernel_restart_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Notebook"]; + "application/x-www-form-urlencoded": components["schemas"]["Notebook"]; + "multipart/form-data": components["schemas"]["Notebook"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_kernel_start_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Notebook"]; + "application/x-www-form-urlencoded": components["schemas"]["Notebook"]; + "multipart/form-data": components["schemas"]["Notebook"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_kernel_status_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_kernel_stop_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Notebook"]; + "application/x-www-form-urlencoded": components["schemas"]["Notebook"]; + "multipart/form-data": components["schemas"]["Notebook"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_all_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + notebooks_recording_comments_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + object_media_previews_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedObjectMediaPreviewList"]; + }; + }; + }; + }; + object_media_previews_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ObjectMediaPreview"]; + "application/x-www-form-urlencoded": components["schemas"]["ObjectMediaPreview"]; + "multipart/form-data": components["schemas"]["ObjectMediaPreview"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ObjectMediaPreview"]; + }; + }; + }; + }; + object_media_previews_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this object media preview. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ObjectMediaPreview"]; + }; + }; + }; + }; + object_media_previews_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this object media preview. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ObjectMediaPreview"]; + "application/x-www-form-urlencoded": components["schemas"]["ObjectMediaPreview"]; + "multipart/form-data": components["schemas"]["ObjectMediaPreview"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ObjectMediaPreview"]; + }; + }; + }; + }; + object_media_previews_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this object media preview. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + object_media_previews_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this object media preview. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedObjectMediaPreview"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedObjectMediaPreview"]; + "multipart/form-data": components["schemas"]["PatchedObjectMediaPreview"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ObjectMediaPreview"]; + }; + }; + }; + }; + object_media_previews_preferred_for_event_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ObjectMediaPreview"]; + }; + }; + }; + }; + persisted_folder_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedPersistedFolderList"]; + }; + }; + }; + }; + persisted_folder_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PersistedFolder"]; + "application/x-www-form-urlencoded": components["schemas"]["PersistedFolder"]; + "multipart/form-data": components["schemas"]["PersistedFolder"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersistedFolder"]; + }; + }; + }; + }; + persisted_folder_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this Persisted Folder. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersistedFolder"]; + }; + }; + }; + }; + persisted_folder_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this Persisted Folder. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PersistedFolder"]; + "application/x-www-form-urlencoded": components["schemas"]["PersistedFolder"]; + "multipart/form-data": components["schemas"]["PersistedFolder"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersistedFolder"]; + }; + }; + }; + }; + persisted_folder_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this Persisted Folder. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persisted_folder_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this Persisted Folder. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedPersistedFolder"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedPersistedFolder"]; + "multipart/form-data": components["schemas"]["PatchedPersistedFolder"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersistedFolder"]; + }; + }; + }; + }; + persons_list: { + parameters: { + query?: { + /** @description Filter list by distinct id. */ + distinct_id?: string; + /** @description Filter persons by email (exact match) */ + email?: string; + format?: "csv" | "json"; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Filter Persons by person properties. */ + properties?: components["schemas"]["Property"][]; + /** @description Search persons, either by email (full text search) or distinct_id (exact match). */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedPersonRecordList"]; + "text/csv": components["schemas"]["PaginatedPersonRecordList"]; + }; + }; + }; + }; + persons_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique value identifying this person. Accepts both numeric ID and UUID. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersonRecord"]; + "text/csv": components["schemas"]["PersonRecord"]; + }; + }; + }; + }; + persons_update: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique value identifying this person. Accepts both numeric ID and UUID. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersonRecord"]; + "text/csv": components["schemas"]["PersonRecord"]; + }; + }; + }; + }; + persons_partial_update: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique value identifying this person. Accepts both numeric ID and UUID. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedPersonRecord"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersonRecord"]; + "text/csv": components["schemas"]["PersonRecord"]; + }; + }; + }; + }; + persons_activity_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this person. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_delete_property_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique value identifying this person. Accepts both numeric ID and UUID. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PersonDeletePropertyRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_properties_timeline_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this person. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_split_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique integer value identifying this person. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_update_property_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description A unique value identifying this person. Accepts both numeric ID and UUID. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PersonUpdatePropertyRequest"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_all_activity_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_batch_by_distinct_ids_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_batch_by_uuids_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_bulk_delete_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonBulkDeleteRequest"]; + }; + }; + responses: { + 202: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersonBulkDeleteResponse"]; + "text/csv": components["schemas"]["PersonBulkDeleteResponse"]; + }; + }; + }; + }; + persons_cohorts_retrieve: { + parameters: { + query: { + format?: "csv" | "json"; + /** @description The person ID or UUID to get cohorts for. */ + person_id: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_deletion_status_list: { + parameters: { + query?: { + format?: "csv" | "json"; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Filter by a specific person UUID. */ + person_uuid?: string; + /** @description Filter by deletion status: 'pending', 'completed', or 'all'. */ + status?: "all" | "completed" | "pending"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedAsyncDeletionStatusList"]; + "text/csv": components["schemas"]["PaginatedAsyncDeletionStatusList"]; + }; + }; + }; + }; + persons_funnel_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_funnel_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_funnel_correlation_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_funnel_correlation_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_lifecycle_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_properties_at_time_retrieve: { + parameters: { + query: { + /** @description The distinct_id of the person (mutually exclusive with person_id) */ + distinct_id?: string; + format?: "csv" | "json"; + /** @description Whether to handle $set_once operations (default: false) */ + include_set_once?: boolean; + /** @description The person_id (UUID) to build properties for (mutually exclusive with distinct_id) */ + person_id?: string; + /** @description ISO datetime string for the point in time (e.g., '2023-06-15T14:30:00Z') */ + timestamp: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PersonPropertiesAtTimeResponse"]; + "text/csv": components["schemas"]["PersonPropertiesAtTimeResponse"]; + }; + }; + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + "text/csv": unknown; + }; + }; + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + "text/csv": unknown; + }; + }; + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + "text/csv": unknown; + }; + }; + }; + }; + persons_reset_person_distinct_id_create: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PersonRecord"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_trends_retrieve: { + parameters: { + query?: { + format?: "csv" | "json"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + persons_values_retrieve: { + parameters: { + query: { + format?: "csv" | "json"; + /** @description The person property key to get values for (e.g., 'email', 'plan', 'role'). */ + key: string; + /** @description Optional search string to filter values (case-insensitive substring match). */ + value?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + plugin_configs_logs_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + plugin_config_id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedPluginLogEntryList"]; + }; + }; + }; + }; + product_tours_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Fuzzy match against product tour `name` and `description` using Postgres trigram word similarity. Supports typos and prefix-as-you-type. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedProductTourList"]; + }; + }; + }; + }; + product_tours_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProductTourSerializerCreateUpdateOnly"]; + "application/x-www-form-urlencoded": components["schemas"]["ProductTourSerializerCreateUpdateOnly"]; + "multipart/form-data": components["schemas"]["ProductTourSerializerCreateUpdateOnly"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProductTourSerializerCreateUpdateOnly"]; + }; + }; + }; + }; + product_tours_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this product tour. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProductTour"]; + }; + }; + }; + }; + product_tours_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this product tour. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProductTour"]; + "application/x-www-form-urlencoded": components["schemas"]["ProductTour"]; + "multipart/form-data": components["schemas"]["ProductTour"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProductTour"]; + }; + }; + }; + }; + product_tours_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this product tour. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + product_tours_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this product tour. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedProductTourSerializerCreateUpdateOnly"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedProductTourSerializerCreateUpdateOnly"]; + "multipart/form-data": components["schemas"]["PatchedProductTourSerializerCreateUpdateOnly"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProductTourSerializerCreateUpdateOnly"]; + }; + }; + }; + }; + product_tours_discard_draft_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this product tour. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProductTour"]; + }; + }; + }; + }; + product_tours_draft_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this product tour. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedProductTourSerializerCreateUpdateOnly"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedProductTourSerializerCreateUpdateOnly"]; + "multipart/form-data": components["schemas"]["PatchedProductTourSerializerCreateUpdateOnly"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProductTour"]; + }; + }; + }; + }; + product_tours_draft_status_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this product tour. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DraftStatusResponse"]; + }; + }; + }; + }; + product_tours_generate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this product tour. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["GenerateRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["GenerateRequest"]; + "multipart/form-data": components["schemas"]["GenerateRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GenerateResponse"]; + }; + }; + }; + }; + product_tours_publish_draft_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this product tour. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProductTourSerializerCreateUpdateOnly"]; + "application/x-www-form-urlencoded": components["schemas"]["ProductTourSerializerCreateUpdateOnly"]; + "multipart/form-data": components["schemas"]["ProductTourSerializerCreateUpdateOnly"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProductTour"]; + }; + }; + }; + }; + project_secret_api_keys_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedProjectSecretAPIKeyList"]; + }; + }; + }; + }; + project_secret_api_keys_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + "application/x-www-form-urlencoded": components["schemas"]["ProjectSecretAPIKey"]; + "multipart/form-data": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + }; + }; + project_secret_api_keys_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project secret api key. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + }; + }; + project_secret_api_keys_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project secret api key. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + "application/x-www-form-urlencoded": components["schemas"]["ProjectSecretAPIKey"]; + "multipart/form-data": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + }; + }; + project_secret_api_keys_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project secret api key. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + project_secret_api_keys_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project secret api key. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedProjectSecretAPIKey"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedProjectSecretAPIKey"]; + "multipart/form-data": components["schemas"]["PatchedProjectSecretAPIKey"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + }; + }; + project_secret_api_keys_roll_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique value identifying this project secret api key. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ProjectSecretAPIKey"]; + }; + }; + }; + }; + property_definitions_list: { + parameters: { + query?: { + /** @description If sent, response value will have `is_seen_on_filtered_events` populated. JSON-encoded */ + event_names?: string; + /** @description Whether to exclude core properties */ + exclude_core_properties?: boolean; + /** @description Whether to exclude properties marked as hidden */ + exclude_hidden?: boolean; + /** @description JSON-encoded list of excluded properties */ + excluded_properties?: string; + /** @description Whether to return only properties for events in `event_names` */ + filter_by_event_names?: boolean | null; + /** @description What group type is the property for. Only should be set if `type=group` */ + group_type_index?: number; + /** @description Whether to return only (or excluding) feature flag properties */ + is_feature_flag?: boolean | null; + /** @description Whether to return only (or excluding) numerical property definitions */ + is_numerical?: boolean | null; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Comma-separated list of properties to filter */ + properties?: string; + /** @description Searches properties by name */ + search?: string; + /** + * @description What property definitions to return + * + * * `event` - event + * * `person` - person + * * `group` - group + * * `session` - session + */ + type?: "event" | "person" | "group" | "session"; + /** @description Filter by verified status. True returns only verified, false returns only unverified. */ + verified?: boolean | null; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedEnterprisePropertyDefinitionList"]; + }; + }; + }; + }; + property_definitions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this property definition. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EnterprisePropertyDefinition"]; + }; + }; + }; + }; + property_definitions_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this property definition. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["EnterprisePropertyDefinition"]; + "application/x-www-form-urlencoded": components["schemas"]["EnterprisePropertyDefinition"]; + "multipart/form-data": components["schemas"]["EnterprisePropertyDefinition"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EnterprisePropertyDefinition"]; + }; + }; + }; + }; + property_definitions_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this property definition. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + property_definitions_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this property definition. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedEnterprisePropertyDefinition"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedEnterprisePropertyDefinition"]; + "multipart/form-data": components["schemas"]["PatchedEnterprisePropertyDefinition"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["EnterprisePropertyDefinition"]; + }; + }; + }; + }; + property_definitions_bulk_update_tags_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BulkUpdateTagsRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["BulkUpdateTagsRequest"]; + "multipart/form-data": components["schemas"]["BulkUpdateTagsRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BulkUpdateTagsResponse"]; + }; + }; + }; + }; + property_definitions_seen_together_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + query_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["QueryRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["QueryRequest"]; + "multipart/form-data": components["schemas"]["QueryRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["QueryResponseAlternative"]; + }; + }; + }; + }; + query_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["QueryStatusResponse"]; + }; + }; + }; + }; + query_destroy: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Query cancelled */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + query_log_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + query_create_with_kind: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + query_kind: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + query_check_auth_for_async_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + query_draft_sql_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + query_upgrade_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["QueryUpgradeRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["QueryUpgradeRequest"]; + "multipart/form-data": components["schemas"]["QueryUpgradeRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["QueryUpgradeResponse"]; + }; + }; + }; + }; + sandbox_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSandboxEnvironmentListList"]; + }; + }; + }; + }; + sandbox_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SandboxEnvironment"]; + "application/x-www-form-urlencoded": components["schemas"]["SandboxEnvironment"]; + "multipart/form-data": components["schemas"]["SandboxEnvironment"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SandboxEnvironment"]; + }; + }; + }; + }; + sandbox_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this sandbox environment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SandboxEnvironment"]; + }; + }; + }; + }; + sandbox_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this sandbox environment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + sandbox_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this sandbox environment. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedSandboxEnvironment"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedSandboxEnvironment"]; + "multipart/form-data": components["schemas"]["PatchedSandboxEnvironment"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SandboxEnvironment"]; + }; + }; + }; + }; + saved_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHeatmapScreenshotResponseList"]; + }; + }; + }; + }; + saved_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HeatmapScreenshotResponse"]; + "application/x-www-form-urlencoded": components["schemas"]["HeatmapScreenshotResponse"]; + "multipart/form-data": components["schemas"]["HeatmapScreenshotResponse"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeatmapScreenshotResponse"]; + }; + }; + }; + }; + saved_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeatmapScreenshotResponse"]; + }; + }; + }; + }; + saved_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + saved_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedHeatmapScreenshotResponse"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedHeatmapScreenshotResponse"]; + "multipart/form-data": components["schemas"]["PatchedHeatmapScreenshotResponse"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HeatmapScreenshotResponse"]; + }; + }; + }; + }; + saved_regenerate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["HeatmapScreenshotResponse"]; + "application/x-www-form-urlencoded": components["schemas"]["HeatmapScreenshotResponse"]; + "multipart/form-data": components["schemas"]["HeatmapScreenshotResponse"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + schema_property_groups_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSchemaPropertyGroupList"]; + }; + }; + }; + }; + schema_property_groups_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SchemaPropertyGroup"]; + "application/x-www-form-urlencoded": components["schemas"]["SchemaPropertyGroup"]; + "multipart/form-data": components["schemas"]["SchemaPropertyGroup"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SchemaPropertyGroup"]; + }; + }; + }; + }; + schema_property_groups_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this schema property group. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SchemaPropertyGroup"]; + }; + }; + }; + }; + schema_property_groups_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this schema property group. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SchemaPropertyGroup"]; + "application/x-www-form-urlencoded": components["schemas"]["SchemaPropertyGroup"]; + "multipart/form-data": components["schemas"]["SchemaPropertyGroup"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SchemaPropertyGroup"]; + }; + }; + }; + }; + schema_property_groups_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this schema property group. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + schema_property_groups_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this schema property group. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedSchemaPropertyGroup"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedSchemaPropertyGroup"]; + "multipart/form-data": components["schemas"]["PatchedSchemaPropertyGroup"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SchemaPropertyGroup"]; + }; + }; + }; + }; + sdk_doctor_report_retrieve: { + parameters: { + query?: { + /** @description When true, bypasses the Redis cache and re-queries ClickHouse for SDK usage. Use sparingly — data is refreshed every 12 hours by a background job. */ + force_refresh?: boolean; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SdkHealthReport"]; + }; + }; + }; + }; + session_group_summaries_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSessionGroupSummaryMinimalList"]; + }; + }; + }; + }; + session_group_summaries_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SessionGroupSummary"]; + "application/x-www-form-urlencoded": components["schemas"]["SessionGroupSummary"]; + "multipart/form-data": components["schemas"]["SessionGroupSummary"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionGroupSummary"]; + }; + }; + }; + }; + session_group_summaries_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this session group summary. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionGroupSummary"]; + }; + }; + }; + }; + session_group_summaries_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this session group summary. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SessionGroupSummary"]; + "application/x-www-form-urlencoded": components["schemas"]["SessionGroupSummary"]; + "multipart/form-data": components["schemas"]["SessionGroupSummary"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionGroupSummary"]; + }; + }; + }; + }; + session_group_summaries_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this session group summary. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + session_group_summaries_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this session group summary. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedSessionGroupSummary"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedSessionGroupSummary"]; + "multipart/form-data": components["schemas"]["PatchedSessionGroupSummary"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionGroupSummary"]; + }; + }; + }; + }; + session_recording_playlists_list: { + parameters: { + query?: { + created_by?: number; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + short_id?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSessionRecordingPlaylistList"]; + }; + }; + }; + }; + session_recording_playlists_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + "application/x-www-form-urlencoded": components["schemas"]["SessionRecordingPlaylist"]; + "multipart/form-data": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + }; + }; + session_recording_playlists_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + }; + }; + session_recording_playlists_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + "application/x-www-form-urlencoded": components["schemas"]["SessionRecordingPlaylist"]; + "multipart/form-data": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + }; + }; + session_recording_playlists_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + session_recording_playlists_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedSessionRecordingPlaylist"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedSessionRecordingPlaylist"]; + "multipart/form-data": components["schemas"]["PatchedSessionRecordingPlaylist"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + }; + }; + session_recording_playlists_recordings_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + session_recording_playlists_recordings_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + session_recording_id: string; + short_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SessionRecordingPlaylist"]; + "application/x-www-form-urlencoded": components["schemas"]["SessionRecordingPlaylist"]; + "multipart/form-data": components["schemas"]["SessionRecordingPlaylist"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + session_recording_playlists_recordings_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + session_recording_id: string; + short_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + session_recordings_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSessionRecordingList"]; + }; + }; + }; + }; + session_recordings_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this session recording. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecording"]; + }; + }; + }; + }; + session_recordings_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this session recording. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SessionRecording"]; + "application/x-www-form-urlencoded": components["schemas"]["SessionRecording"]; + "multipart/form-data": components["schemas"]["SessionRecording"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecording"]; + }; + }; + }; + }; + session_recordings_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this session recording. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + session_recordings_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this session recording. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedSessionRecording"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedSessionRecording"]; + "multipart/form-data": components["schemas"]["PatchedSessionRecording"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SessionRecording"]; + }; + }; + }; + }; + session_recordings_sharing_list: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + recording_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"][]; + }; + }; + }; + }; + session_recordings_sharing_passwords_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + recording_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + session_recordings_sharing_passwords_destroy: { + parameters: { + query?: never; + header?: never; + path: { + password_id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + recording_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + session_recordings_sharing_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + recording_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + "application/x-www-form-urlencoded": components["schemas"]["SharingConfiguration"]; + "multipart/form-data": components["schemas"]["SharingConfiguration"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SharingConfiguration"]; + }; + }; + }; + }; + sessions_property_definitions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + sessions_values_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + signals_processing_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedPauseStateResponseList"]; + }; + }; + }; + }; + signals_processing_pause_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PauseUntilRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["PauseUntilRequest"]; + "multipart/form-data": components["schemas"]["PauseUntilRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PauseResponse"]; + }; + }; + }; + }; + signals_processing_pause_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PauseResponse"]; + }; + }; + }; + }; + signals_reports_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Comma-separated ordering clauses. Each clause is a field name optionally prefixed with '-' for descending. Allowed fields: status, is_suggested_reviewer, signal_count, total_weight, priority, created_at, updated_at, id. Defaults to '-is_suggested_reviewer,status,-updated_at'. */ + ordering?: string; + /** @description Case-insensitive substring match against report title and summary. */ + search?: string; + /** @description Comma-separated list of source products to include. Reports are kept if at least one of their contributing signals comes from one of these products (e.g. error_tracking, session_replay). */ + source_product?: string; + /** @description Comma-separated list of statuses to include. Valid values: potential, candidate, in_progress, pending_input, ready, failed, suppressed. Defaults to all statuses except suppressed. */ + status?: string; + /** @description Comma-separated list of PostHog user UUIDs. Reports are kept if their suggested reviewers include any of the given users. */ + suggested_reviewers?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSignalReportList"]; + }; + }; + }; + }; + signals_reports_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this signal report. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SignalReport"]; + }; + }; + }; + }; + signals_source_configs_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSignalSourceConfigList"]; + }; + }; + }; + }; + signals_source_configs_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SignalSourceConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["SignalSourceConfig"]; + "multipart/form-data": components["schemas"]["SignalSourceConfig"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SignalSourceConfig"]; + }; + }; + }; + }; + signals_source_configs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this signal source config. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SignalSourceConfig"]; + }; + }; + }; + }; + signals_source_configs_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this signal source config. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SignalSourceConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["SignalSourceConfig"]; + "multipart/form-data": components["schemas"]["SignalSourceConfig"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SignalSourceConfig"]; + }; + }; + }; + }; + signals_source_configs_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this signal source config. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + signals_source_configs_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this signal source config. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedSignalSourceConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedSignalSourceConfig"]; + "multipart/form-data": components["schemas"]["PatchedSignalSourceConfig"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SignalSourceConfig"]; + }; + }; + }; + }; + subscriptions_list: { + parameters: { + query?: { + /** @description Filter by creator user UUID. */ + created_by?: string; + /** @description Filter by dashboard ID. */ + dashboard?: number; + /** @description Filter by insight ID. */ + insight?: number; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Which field to use when ordering the results. */ + ordering?: string; + /** @description Filter by subscription resource: insight vs dashboard export. */ + resource_type?: "dashboard" | "insight"; + /** @description A search term. */ + search?: string; + /** @description Filter by delivery channel (email, Slack, or webhook). */ + target_type?: "email" | "slack" | "webhook"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSubscriptionList"]; + }; + }; + }; + }; + subscriptions_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Subscription"]; + "application/x-www-form-urlencoded": components["schemas"]["Subscription"]; + "multipart/form-data": components["schemas"]["Subscription"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Subscription"]; + }; + }; + }; + }; + subscriptions_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this subscription. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Subscription"]; + }; + }; + }; + }; + subscriptions_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this subscription. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Subscription"]; + "application/x-www-form-urlencoded": components["schemas"]["Subscription"]; + "multipart/form-data": components["schemas"]["Subscription"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Subscription"]; + }; + }; + }; + }; + subscriptions_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this subscription. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 405: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + subscriptions_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this subscription. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedSubscription"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedSubscription"]; + "multipart/form-data": components["schemas"]["PatchedSubscription"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Subscription"]; + }; + }; + }; + }; + subscriptions_test_delivery_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this subscription. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Test delivery workflow started */ + 202: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + subscriptions_summary_quota_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Org-wide AI summary quota: count of currently-active summaries and the limit for the org's plan tier. `limit` is null when no cap is configured. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + active_count: number; + limit: number | null; + at_limit: boolean; + }; + }; + }; + }; + }; + surveys_list: { + parameters: { + query?: { + archived?: boolean; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Fuzzy match against survey `name` and `description` using Postgres trigram word similarity. Supports typos and prefix-as-you-type. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSurveyList"]; + }; + }; + }; + }; + surveys_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SurveySerializerCreateUpdateOnlySchema"]; + "application/x-www-form-urlencoded": components["schemas"]["SurveySerializerCreateUpdateOnlySchema"]; + "multipart/form-data": components["schemas"]["SurveySerializerCreateUpdateOnlySchema"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + }; + }; + }; + }; + surveys_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this survey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Survey"]; + }; + }; + }; + }; + surveys_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this survey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Survey"]; + "application/x-www-form-urlencoded": components["schemas"]["Survey"]; + "multipart/form-data": components["schemas"]["Survey"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Survey"]; + }; + }; + }; + }; + surveys_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this survey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + surveys_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this survey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedSurveySerializerCreateUpdateOnlySchema"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedSurveySerializerCreateUpdateOnlySchema"]; + "multipart/form-data": components["schemas"]["PatchedSurveySerializerCreateUpdateOnlySchema"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + }; + }; + }; + }; + surveys_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this survey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + surveys_archived_response_uuids_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this survey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + surveys_duplicate_to_projects_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this survey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + "application/x-www-form-urlencoded": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + "multipart/form-data": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + surveys_generate_translations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this survey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["GenerateSurveyTranslationsRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["GenerateSurveyTranslationsRequest"]; + "multipart/form-data": components["schemas"]["GenerateSurveyTranslationsRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GenerateSurveyTranslationsResponse"]; + }; + }; + }; + }; + surveys_responses_archive_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this survey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + response_uuid: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + "application/x-www-form-urlencoded": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + "multipart/form-data": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + surveys_responses_unarchive_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this survey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + response_uuid: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + "application/x-www-form-urlencoded": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + "multipart/form-data": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + surveys_stats_retrieve: { + parameters: { + query?: { + /** @description Optional ISO timestamp for start date (e.g. 2024-01-01T00:00:00Z) */ + date_from?: string; + /** @description Optional ISO timestamp for end date (e.g. 2024-01-31T23:59:59Z) */ + date_to?: string; + }; + header?: never; + path: { + /** @description A UUID string identifying this survey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SurveyStatsResponse"]; + }; + }; + }; + }; + surveys_summarize_responses_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this survey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + "application/x-www-form-urlencoded": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + "multipart/form-data": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + surveys_summary_headline_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this survey. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + "application/x-www-form-urlencoded": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + "multipart/form-data": components["schemas"]["SurveySerializerCreateUpdateOnly"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + surveys_all_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + surveys_responses_count_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + surveys_global_stats_retrieve: { + parameters: { + query?: { + /** @description Optional ISO timestamp for start date (e.g. 2024-01-01T00:00:00Z) */ + date_from?: string; + /** @description Optional ISO timestamp for end date (e.g. 2024-01-31T23:59:59Z) */ + date_to?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SurveyGlobalStatsResponse"]; + }; + }; + }; + }; + task_automations_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedTaskAutomationList"]; + }; + }; + }; + }; + task_automations_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskAutomation"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskAutomation"]; + "multipart/form-data": components["schemas"]["TaskAutomation"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskAutomation"]; + }; + }; + }; + }; + task_automations_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task automation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskAutomation"]; + }; + }; + }; + }; + task_automations_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task automation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskAutomation"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskAutomation"]; + "multipart/form-data": components["schemas"]["TaskAutomation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskAutomation"]; + }; + }; + }; + }; + task_automations_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task automation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + task_automations_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task automation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTaskAutomation"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTaskAutomation"]; + "multipart/form-data": components["schemas"]["PatchedTaskAutomation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskAutomation"]; + }; + }; + }; + }; + task_automations_run_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task automation. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskAutomation"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskAutomation"]; + "multipart/form-data": components["schemas"]["TaskAutomation"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskAutomation"]; + }; + }; + }; + }; + tasks_list: { + parameters: { + query?: { + /** @description Filter by creator user ID */ + created_by?: number; + /** @description When true, list internal tasks instead of user-facing ones. Honored in debug environments or for staff users; ignored for non-staff users in production. Defaults to excluding internal tasks. */ + internal?: boolean; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Filter by repository organization */ + organization?: string; + /** @description Filter by origin product */ + origin_product?: string; + /** @description Filter by repository name (can include org/repo format) */ + repository?: string; + /** @description Case-insensitive substring search over task title and description. A numeric value also matches the task number. An empty value disables the filter. */ + search?: string; + /** @description Filter by task run stage */ + stage?: string; + /** + * @description Filter tasks by the status of their most recent run. + * + * * `not_started` - not_started + * * `queued` - queued + * * `in_progress` - in_progress + * * `completed` - completed + * * `failed` - failed + * * `cancelled` - cancelled + */ + status?: "not_started" | "queued" | "in_progress" | "completed" | "failed" | "cancelled"; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of tasks */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedTaskList"]; + }; + }; + }; + }; + tasks_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Task"]; + "application/x-www-form-urlencoded": components["schemas"]["Task"]; + "multipart/form-data": components["schemas"]["Task"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Task"]; + }; + }; + }; + }; + tasks_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Task"]; + }; + }; + }; + }; + tasks_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["Task"]; + "application/x-www-form-urlencoded": components["schemas"]["Task"]; + "multipart/form-data": components["schemas"]["Task"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Task"]; + }; + }; + }; + }; + tasks_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTask"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTask"]; + "multipart/form-data": components["schemas"]["PatchedTask"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Task"]; + }; + }; + }; + }; + tasks_run_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["TaskRunCreateRequestSchema"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskRunCreateRequestSchema"]; + "multipart/form-data": components["schemas"]["TaskRunCreateRequestSchema"]; + }; + }; + responses: { + /** @description Task with updated latest run */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Task"]; + }; + }; + /** @description Invalid task run payload */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + /** @description Task not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_staged_artifacts_finalize_upload_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskStagedArtifactsFinalizeUploadRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskStagedArtifactsFinalizeUploadRequest"]; + "multipart/form-data": components["schemas"]["TaskStagedArtifactsFinalizeUploadRequest"]; + }; + }; + responses: { + /** @description Finalized staged artifacts available for the next task run */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskStagedArtifactsFinalizeUploadResponse"]; + }; + }; + /** @description Invalid artifact payload */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + /** @description Task not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_staged_artifacts_prepare_upload_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskStagedArtifactsPrepareUploadRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskStagedArtifactsPrepareUploadRequest"]; + "multipart/form-data": components["schemas"]["TaskStagedArtifactsPrepareUploadRequest"]; + }; + }; + responses: { + /** @description Prepared staged uploads for the requested artifacts */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskStagedArtifactsPrepareUploadResponse"]; + }; + }; + /** @description Invalid artifact payload */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + /** @description Task not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of task runs */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedTaskRunDetailList"]; + }; + }; + }; + }; + tasks_runs_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["TaskRunBootstrapCreateRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskRunBootstrapCreateRequest"]; + "multipart/form-data": components["schemas"]["TaskRunBootstrapCreateRequest"]; + }; + }; + responses: { + /** @description Created task run */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunDetail"]; + }; + }; + /** @description Invalid task run payload */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + }; + }; + tasks_runs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunDetail"]; + }; + }; + }; + }; + tasks_runs_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTaskRunUpdate"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTaskRunUpdate"]; + "multipart/form-data": components["schemas"]["PatchedTaskRunUpdate"]; + }; + }; + responses: { + /** @description Updated task run */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunDetail"]; + }; + }; + /** @description Invalid update data */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + /** @description Task run not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_append_log_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskRunAppendLogRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskRunAppendLogRequest"]; + "multipart/form-data": components["schemas"]["TaskRunAppendLogRequest"]; + }; + }; + responses: { + /** @description Run with updated log */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunDetail"]; + }; + }; + /** @description Invalid log entries */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + /** @description Run not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_artifacts_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskRunArtifactsUploadRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskRunArtifactsUploadRequest"]; + "multipart/form-data": components["schemas"]["TaskRunArtifactsUploadRequest"]; + }; + }; + responses: { + /** @description Run with updated artifact manifest */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunArtifactsUploadResponse"]; + }; + }; + /** @description Invalid artifact payload */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + /** @description Run not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_artifacts_download_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskRunArtifactPresignRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskRunArtifactPresignRequest"]; + "multipart/form-data": components["schemas"]["TaskRunArtifactPresignRequest"]; + }; + }; + responses: { + /** @description Artifact content */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Invalid request */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + /** @description Artifact not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_artifacts_finalize_upload_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskRunArtifactsFinalizeUploadRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskRunArtifactsFinalizeUploadRequest"]; + "multipart/form-data": components["schemas"]["TaskRunArtifactsFinalizeUploadRequest"]; + }; + }; + responses: { + /** @description Run with updated artifact manifest */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunArtifactsFinalizeUploadResponse"]; + }; + }; + /** @description Invalid artifact payload */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + /** @description Run not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_artifacts_prepare_upload_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskRunArtifactsPrepareUploadRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskRunArtifactsPrepareUploadRequest"]; + "multipart/form-data": components["schemas"]["TaskRunArtifactsPrepareUploadRequest"]; + }; + }; + responses: { + /** @description Prepared uploads for the requested artifacts */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunArtifactsPrepareUploadResponse"]; + }; + }; + /** @description Invalid artifact payload */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + /** @description Run not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_artifacts_presign_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskRunArtifactPresignRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskRunArtifactPresignRequest"]; + "multipart/form-data": components["schemas"]["TaskRunArtifactPresignRequest"]; + }; + }; + responses: { + /** @description Presigned URL for the requested artifact */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunArtifactPresignResponse"]; + }; + }; + /** @description Invalid request */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + /** @description Artifact not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_command_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskRunCommandRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskRunCommandRequest"]; + "multipart/form-data": components["schemas"]["TaskRunCommandRequest"]; + }; + }; + responses: { + /** @description Agent server response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunCommandResponse"]; + }; + }; + /** @description Invalid command or no active sandbox */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + /** @description Task run not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Agent server unreachable */ + 502: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + }; + }; + tasks_runs_connection_token_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Connection token for direct sandbox connection */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ConnectionTokenResponse"]; + }; + }; + /** @description Task run not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_logs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Log content in JSONL format */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Task run not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_relay_message_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskRunRelayMessageRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskRunRelayMessageRequest"]; + "multipart/form-data": components["schemas"]["TaskRunRelayMessageRequest"]; + }; + }; + responses: { + /** @description Relay accepted */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunRelayMessageResponse"]; + }; + }; + /** @description Run not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_resume_in_cloud_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Run resumed in cloud */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunDetail"]; + }; + }; + /** @description Run already active or workflow failed */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + }; + }; + tasks_runs_session_logs_retrieve: { + parameters: { + query?: { + /** @description Only return events after this ISO8601 timestamp */ + after?: string; + /** @description Comma-separated list of event types to include */ + event_types?: string; + /** @description Comma-separated list of event types to exclude */ + exclude_types?: string; + /** @description Maximum number of entries to return (default 1000, max 5000) */ + limit?: number; + /** @description Zero-based offset into the filtered log entries */ + offset?: number; + }; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Filtered log events as JSON array */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Task run not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_set_output_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTaskRunSetOutputRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTaskRunSetOutputRequest"]; + "multipart/form-data": components["schemas"]["PatchedTaskRunSetOutputRequest"]; + }; + }; + responses: { + /** @description Run with updated output */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunDetail"]; + }; + }; + /** @description Run not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_start_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["TaskRunStartRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskRunStartRequest"]; + "multipart/form-data": components["schemas"]["TaskRunStartRequest"]; + }; + }; + responses: { + /** @description Task with updated latest run */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Task"]; + }; + }; + /** @description Invalid start payload */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRunErrorResponse"]; + }; + }; + /** @description Task run not found */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + tasks_runs_stream_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this task run. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + task_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "text/event-stream": components["schemas"]["TaskRunDetail"]; + }; + }; + }; + }; + tasks_repositories_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Distinct repositories used by tasks in the current project. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TaskRepositoriesResponse"]; + }; + }; + }; + }; + tasks_repository_readiness_retrieve: { + parameters: { + query: { + refresh?: boolean; + /** @description Repository in org/repo format */ + repository: string; + window_days?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Repository readiness status */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RepositoryReadinessResponse"]; + }; + }; + }; + }; + tasks_summaries_create: { + parameters: { + query?: { + /** @description Page size for the paginated response. */ + limit?: number; + /** @description Offset into the result set for pagination. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TaskSummariesRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["TaskSummariesRequest"]; + "multipart/form-data": components["schemas"]["TaskSummariesRequest"]; + }; + }; + responses: { + /** @description Summary fields for the requested tasks */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedTaskSummaryList"]; + }; + }; + }; + }; + uploaded_media_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; + visual_review_repos_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedRepoList"]; + }; + }; + }; + }; + visual_review_repos_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CreateRepoInput"]; + "application/x-www-form-urlencoded": components["schemas"]["CreateRepoInput"]; + "multipart/form-data": components["schemas"]["CreateRepoInput"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Repo"]; + }; + }; + }; + }; + visual_review_repos_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Repo"]; + }; + }; + }; + }; + visual_review_repos_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedUpdateRepoRequestInput"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedUpdateRepoRequestInput"]; + "multipart/form-data": components["schemas"]["PatchedUpdateRepoRequestInput"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Repo"]; + }; + }; + }; + }; + visual_review_repos_baselines_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["BaselineOverview"]; + }; + }; + }; + }; + visual_review_repos_quarantine_list: { + parameters: { + query?: { + /** @description Filter by identifier (returns full history) */ + identifier?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Filter by run type */ + run_type?: string; + }; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedQuarantinedIdentifierEntryList"]; + }; + }; + }; + }; + visual_review_repos_quarantine_create: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + run_type: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["QuarantineInput"]; + "application/x-www-form-urlencoded": components["schemas"]["QuarantineInput"]; + "multipart/form-data": components["schemas"]["QuarantineInput"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["QuarantinedIdentifierEntry"]; + }; + }; + }; + }; + visual_review_repos_quarantine_expire_create: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + run_type: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["QuarantineInput"]; + "application/x-www-form-urlencoded": components["schemas"]["QuarantineInput"]; + "multipart/form-data": components["schemas"]["QuarantineInput"]; + }; + }; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + visual_review_repos_thumbnails_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + identifier: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description WebP thumbnail image */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + visual_review_repos_runs_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Filter by review state */ + review_state?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + repo_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedRunList"]; + }; + }; + }; + }; + visual_review_repos_runs_counts_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + repo_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ReviewStateCounts"]; + }; + }; + }; + }; + visual_review_repos_snapshots_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Snapshot identifier; clients must percent-encode before sending */ + identifier: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + repo_id: string; + /** @description Run type (storybook, playwright) */ + run_type: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSnapshotHistoryEntryList"]; + }; + }; + }; + }; + visual_review_runs_list: { + parameters: { + query?: { + /** @description Filter by branch name */ + branch?: string; + /** @description Filter by full commit SHA */ + commit_sha?: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Filter by GitHub PR number */ + pr_number?: number; + /** @description Filter by review state */ + review_state?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedRunList"]; + }; + }; + }; + }; + visual_review_runs_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CreateRunInput"]; + "application/x-www-form-urlencoded": components["schemas"]["CreateRunInput"]; + "multipart/form-data": components["schemas"]["CreateRunInput"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CreateRunResult"]; + }; + }; + }; + }; + visual_review_runs_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Run"]; + }; + }; + }; + }; + visual_review_runs_add_snapshots_create: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AddSnapshotsInput"]; + "application/x-www-form-urlencoded": components["schemas"]["AddSnapshotsInput"]; + "multipart/form-data": components["schemas"]["AddSnapshotsInput"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AddSnapshotsResult"]; + }; + }; + }; + }; + visual_review_runs_approve_create: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ApproveRunRequestInput"]; + "application/x-www-form-urlencoded": components["schemas"]["ApproveRunRequestInput"]; + "multipart/form-data": components["schemas"]["ApproveRunRequestInput"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AutoApproveResult"]; + }; + }; + }; + }; + visual_review_runs_auto_approve_create: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["AutoApproveResult"]; + }; + }; + }; + }; + visual_review_runs_complete_create: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Run"]; + }; + }; + }; + }; + visual_review_runs_recompute_create: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["RecomputeResult"]; + }; + }; + }; + }; + visual_review_runs_snapshot_history_list: { + parameters: { + query: { + /** @description Snapshot identifier */ + identifier: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSnapshotHistoryEntryList"]; + }; + }; + }; + }; + visual_review_runs_snapshots_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedSnapshotList"]; + }; + }; + }; + }; + visual_review_runs_tolerate_create: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["MarkToleratedInput"]; + "application/x-www-form-urlencoded": components["schemas"]["MarkToleratedInput"]; + "multipart/form-data": components["schemas"]["MarkToleratedInput"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Snapshot"]; + }; + }; + }; + }; + visual_review_runs_tolerated_hashes_list: { + parameters: { + query: { + /** @description Snapshot identifier */ + identifier: string; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedToleratedHashEntryList"]; + }; + }; + }; + }; + visual_review_runs_counts_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ReviewStateCounts"]; + }; + }; + }; + }; + warehouse_dag_list: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + warehouse_model_paths_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDataWarehouseModelPathList"]; + }; + }; + }; + }; + warehouse_model_paths_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse model path. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseModelPath"]; + }; + }; + }; + }; + warehouse_saved_queries_list: { + parameters: { + query?: { + /** @description A page number within the paginated result set. */ + page?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedDataWarehouseSavedQueryMinimalList"]; + }; + }; + }; + }; + warehouse_saved_queries_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_queries_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_queries_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_queries_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + warehouse_saved_queries_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["PatchedDataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_queries_activity_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_queries_ancestors_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_queries_cancel_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_queries_dependencies_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_queries_descendants_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_queries_materialize_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_queries_revert_materialization_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_queries_run_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_queries_run_history_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_queries_resume_schedules_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQuery"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQuery"]; + }; + }; + }; + }; + warehouse_saved_query_folders_list: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQueryFolder"][]; + }; + }; + }; + }; + warehouse_saved_query_folders_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DataWarehouseSavedQueryFolder"]; + "application/x-www-form-urlencoded": components["schemas"]["DataWarehouseSavedQueryFolder"]; + "multipart/form-data": components["schemas"]["DataWarehouseSavedQueryFolder"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQueryFolder"]; + }; + }; + }; + }; + warehouse_saved_query_folders_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query folder. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQueryFolder"]; + }; + }; + }; + }; + warehouse_saved_query_folders_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query folder. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + warehouse_saved_query_folders_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse saved query folder. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedDataWarehouseSavedQueryFolder"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedDataWarehouseSavedQueryFolder"]; + "multipart/form-data": components["schemas"]["PatchedDataWarehouseSavedQueryFolder"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DataWarehouseSavedQueryFolder"]; + }; + }; + }; + }; + warehouse_tables_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedTableList"]; + }; + }; + }; + }; + warehouse_tables_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Table"]; + "application/x-www-form-urlencoded": components["schemas"]["Table"]; + "multipart/form-data": components["schemas"]["Table"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Table"]; + }; + }; + }; + }; + warehouse_tables_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse table. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Table"]; + }; + }; + }; + }; + warehouse_tables_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse table. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Table"]; + "application/x-www-form-urlencoded": components["schemas"]["Table"]; + "multipart/form-data": components["schemas"]["Table"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Table"]; + }; + }; + }; + }; + warehouse_tables_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse table. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + warehouse_tables_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse table. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedTable"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedTable"]; + "multipart/form-data": components["schemas"]["PatchedTable"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Table"]; + }; + }; + }; + }; + warehouse_tables_refresh_schema_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse table. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Table"]; + "application/x-www-form-urlencoded": components["schemas"]["Table"]; + "multipart/form-data": components["schemas"]["Table"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + warehouse_tables_update_schema_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse table. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Table"]; + "application/x-www-form-urlencoded": components["schemas"]["Table"]; + "multipart/form-data": components["schemas"]["Table"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + warehouse_tables_file_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "multipart/form-data": components["schemas"]["Table"]; + "application/x-www-form-urlencoded": components["schemas"]["Table"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + warehouse_view_link_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedViewLinkList"]; + }; + }; + }; + }; + warehouse_view_link_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ViewLink"]; + "application/x-www-form-urlencoded": components["schemas"]["ViewLink"]; + "multipart/form-data": components["schemas"]["ViewLink"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + warehouse_view_link_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse join. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + warehouse_view_link_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse join. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ViewLink"]; + "application/x-www-form-urlencoded": components["schemas"]["ViewLink"]; + "multipart/form-data": components["schemas"]["ViewLink"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + warehouse_view_link_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse join. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + warehouse_view_link_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse join. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedViewLink"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedViewLink"]; + "multipart/form-data": components["schemas"]["PatchedViewLink"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + warehouse_view_link_validate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ViewLinkValidation"]; + "application/x-www-form-urlencoded": components["schemas"]["ViewLinkValidation"]; + "multipart/form-data": components["schemas"]["ViewLinkValidation"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + warehouse_view_links_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description A search term. */ + search?: string; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedViewLinkList"]; + }; + }; + }; + }; + warehouse_view_links_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ViewLink"]; + "application/x-www-form-urlencoded": components["schemas"]["ViewLink"]; + "multipart/form-data": components["schemas"]["ViewLink"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + warehouse_view_links_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse join. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + warehouse_view_links_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse join. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ViewLink"]; + "application/x-www-form-urlencoded": components["schemas"]["ViewLink"]; + "multipart/form-data": components["schemas"]["ViewLink"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + warehouse_view_links_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse join. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + warehouse_view_links_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A UUID string identifying this data warehouse join. */ + id: string; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedViewLink"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedViewLink"]; + "multipart/form-data": components["schemas"]["PatchedViewLink"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ViewLink"]; + }; + }; + }; + }; + warehouse_view_links_validate_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ViewLinkValidation"]; + "application/x-www-form-urlencoded": components["schemas"]["ViewLinkValidation"]; + "multipart/form-data": components["schemas"]["ViewLinkValidation"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + web_experiments_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedWebExperimentsAPIList"]; + }; + }; + }; + }; + web_experiments_create: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["WebExperimentsAPI"]; + "application/x-www-form-urlencoded": components["schemas"]["WebExperimentsAPI"]; + "multipart/form-data": components["schemas"]["WebExperimentsAPI"]; + }; + }; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["WebExperimentsAPI"]; + }; + }; + }; + }; + web_experiments_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this web experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["WebExperimentsAPI"]; + }; + }; + }; + }; + web_experiments_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this web experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["WebExperimentsAPI"]; + "application/x-www-form-urlencoded": components["schemas"]["WebExperimentsAPI"]; + "multipart/form-data": components["schemas"]["WebExperimentsAPI"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["WebExperimentsAPI"]; + }; + }; + }; + }; + web_experiments_destroy: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this web experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + web_experiments_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + /** @description A unique integer value identifying this web experiment. */ + id: number; + /** @description Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. */ + project_id: components["parameters"]["ProjectIdPath"]; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedWebExperimentsAPI"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedWebExperimentsAPI"]; + "multipart/form-data": components["schemas"]["PatchedWebExperimentsAPI"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["WebExperimentsAPI"]; + }; + }; + }; + }; + public_hog_function_templates_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + /** @description Filter to a specific template by its template_id. Deprecated templates are excluded from list results; use the retrieve endpoint to look up a template by ID regardless of status. */ + template_id?: string; + /** @description Filter by template type (e.g. destination, email, sms_provider, broadcast). Defaults to destination if neither type nor types is provided. */ + type?: string; + /** @description Comma-separated list of template types to include (e.g. destination,email,sms_provider). */ + types?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedHogFunctionTemplateList"]; + }; + }; + }; + }; + user_home_settings_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PinnedSceneTabs"]; + }; + }; + }; + }; + user_home_settings_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedPinnedSceneTabs"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedPinnedSceneTabs"]; + "multipart/form-data": components["schemas"]["PatchedPinnedSceneTabs"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PinnedSceneTabs"]; + }; + }; + }; + }; + users_list: { + parameters: { + query?: { + email?: string; + is_staff?: boolean; + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedUserList"]; + }; + }; + }; + }; + users_signal_autonomy_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + user_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SignalUserAutonomyConfig"]; + }; + }; + }; + }; + users_signal_autonomy_create: { + parameters: { + query?: never; + header?: never; + path: { + user_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SignalUserAutonomyConfig"]; + "application/x-www-form-urlencoded": components["schemas"]["SignalUserAutonomyConfig"]; + "multipart/form-data": components["schemas"]["SignalUserAutonomyConfig"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SignalUserAutonomyConfig"]; + }; + }; + }; + }; + users_signal_autonomy_destroy: { + parameters: { + query?: never; + header?: never; + path: { + user_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["User"]; + }; + }; + }; + }; + users_update: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["User"]; + "application/x-www-form-urlencoded": components["schemas"]["User"]; + "multipart/form-data": components["schemas"]["User"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["User"]; + }; + }; + }; + }; + users_destroy: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedUser"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedUser"]; + "multipart/form-data": components["schemas"]["PatchedUser"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["User"]; + }; + }; + }; + }; + users_github_login_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_hedgehog_config_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_hedgehog_config_partial_update: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedUser"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedUser"]; + "multipart/form-data": components["schemas"]["PatchedUser"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_integrations_list: { + parameters: { + query?: { + /** @description Number of results to return per page. */ + limit?: number; + /** @description The initial index from which to return the results. */ + offset?: number; + }; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["PaginatedUserGitHubIntegrationListResponseList"]; + }; + }; + }; + }; + users_integrations_github_destroy: { + parameters: { + query?: never; + header?: never; + path: { + installation_id: string; + uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Integration removed. */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_integrations_github_branches_retrieve: { + parameters: { + query: { + /** @description Maximum number of branches to return */ + limit?: number; + /** @description Number of branches to skip */ + offset?: number; + /** @description Repository in owner/repo format */ + repo: string; + /** @description Optional case-insensitive branch name search query. */ + search?: string; + }; + header?: never; + path: { + installation_id: string; + uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GitHubBranchesResponse"]; + }; + }; + }; + }; + users_integrations_github_repos_retrieve: { + parameters: { + query?: { + /** @description Maximum number of repositories to return per request (max 500). */ + limit?: number; + /** @description Number of repositories to skip before returning results. */ + offset?: number; + /** @description Optional case-insensitive repository name search query. */ + search?: string; + }; + header?: never; + path: { + installation_id: string; + uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GitHubReposResponse"]; + }; + }; + }; + }; + users_integrations_github_repos_refresh_create: { + parameters: { + query?: never; + header?: never; + path: { + installation_id: string; + uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["GitHubReposRefreshResponse"]; + }; + }; + }; + }; + users_integrations_github_start_create: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["UserGitHubLinkStartRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["UserGitHubLinkStartRequest"]; + "multipart/form-data": components["schemas"]["UserGitHubLinkStartRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["UserGitHubLinkStartResponse"]; + }; + }; + }; + }; + users_onboarding_skip_create: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["OnboardingSkipRequest"]; + "application/x-www-form-urlencoded": components["schemas"]["OnboardingSkipRequest"]; + "multipart/form-data": components["schemas"]["OnboardingSkipRequest"]; + }; + }; + responses: { + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["User"]; + }; + }; + }; + }; + users_scene_personalisation_create: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["User"]; + "application/x-www-form-urlencoded": components["schemas"]["User"]; + "multipart/form-data": components["schemas"]["User"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_start_2fa_setup_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_two_factor_backup_codes_create: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["User"]; + "application/x-www-form-urlencoded": components["schemas"]["User"]; + "multipart/form-data": components["schemas"]["User"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_two_factor_disable_create: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["User"]; + "application/x-www-form-urlencoded": components["schemas"]["User"]; + "multipart/form-data": components["schemas"]["User"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_two_factor_start_setup_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_two_factor_status_retrieve: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_two_factor_validate_create: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["User"]; + "application/x-www-form-urlencoded": components["schemas"]["User"]; + "multipart/form-data": components["schemas"]["User"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_validate_2fa_create: { + parameters: { + query?: never; + header?: never; + path: { + uuid: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["User"]; + "application/x-www-form-urlencoded": components["schemas"]["User"]; + "multipart/form-data": components["schemas"]["User"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_cancel_email_change_request_partial_update: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["PatchedUser"]; + "application/x-www-form-urlencoded": components["schemas"]["PatchedUser"]; + "multipart/form-data": components["schemas"]["PatchedUser"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_request_email_verification_create: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["User"]; + "application/x-www-form-urlencoded": components["schemas"]["User"]; + "multipart/form-data": components["schemas"]["User"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + users_verify_email_create: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["User"]; + "application/x-www-form-urlencoded": components["schemas"]["User"]; + "multipart/form-data": components["schemas"]["User"]; + }; + }; + responses: { + /** @description No response body */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; +}