Replay-protection key in an organization-wide namespace shared by keyed mutations. It must contain 1 to 256 visible ASCII characters and be sent as exactly one header value. Request identity is the exact HTTP method, escaped path, raw query, and raw body bytes. For the legacy automation-run route only, the historical fingerprint ignores top-level JSON formatting and object-key order and removes the retired top-level idempotency_key field. The same request replays the original successful response; any different request returns 409 idempotency_conflict, and an active matching request returns 409 idempotency_in_progress. Completed receipts are retained for approximately 24 hours, pending claims may be reclaimed after approximately 1 hour, and no deduplication is guaranteed after expiry.
Organization in which to act. Required for a tenant-scoped API key. Optional for an organization-scoped key, where it must name that same organization. The value may be an organization id or default.
Minimum string length: 1
Body
application/json
Writable shape for creating a canonical automation.
Caller-owned string labels stored with the automation and returned on reads, such as a marker naming the system that manages it. Never copied to runs or sessions. At most 32 entries; keys use letters, digits, '_', '.', and '-' up to 64 characters; values are 1-512 characters without control characters. Omit for none.
Caller-owned string labels stored with the automation. Absent when none were set.
Show child attributes
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Labelbox","description":"Documentation for Recursion Managed Agents and the Labelbox platform.","colors":{"primary":"#36707F","light":"#7EB3C1","dark":"#274E58"},"logo":{"light":"https://mintcdn.com/labelbox-1db23ff4/badqlfNjN52ySAbU/logo/light.svg?fit=max\u0026auto=format\u0026n=badqlfNjN52ySAbU\u0026q=85\u0026s=2e7592619836dadfb7384597f9e48bec","dark":"https://mintcdn.com/labelbox-1db23ff4/badqlfNjN52ySAbU/logo/dark.svg?fit=max\u0026auto=format\u0026n=badqlfNjN52ySAbU\u0026q=85\u0026s=080727ffefbdc01f5e275a0f13cdd5c2","href":"/"},"favicon":"https://mintcdn.com/labelbox-1db23ff4/badqlfNjN52ySAbU/favicon.svg?fit=max\u0026auto=format\u0026n=badqlfNjN52ySAbU\u0026q=85\u0026s=35e9a808129eb1b044e5cc202e88eaa7","appearance":{"default":"light"},"background":{"color":{"light":"#FFFDF8","dark":"#202020"}},"navbar":{"primary":{"type":"button","label":"Open console","href":"https://recursion.labelbox.com"}},"footer":{"socials":{"github":"https://github.com/Labelbox","linkedin":"https://www.linkedin.com/company/labelbox"},"links":[{"header":"Products","items":[{"label":"Recursion","href":"/recursion"},{"label":"Horizon","href":"/horizon"}]},{"header":"Resources","items":[{"label":"Release notes","href":"/horizon/release-notes"},{"label":"Status","href":"https://status.labelbox.com"},{"label":"Blog","href":"https://labelbox.com/blog"}]},{"header":"Company","items":[{"label":"labelbox.com","href":"https://labelbox.com"},{"label":"Contact sales","href":"https://labelbox.com/sales"}]}]},"fonts":{"heading":{"family":"The Future","source":"https://labelbox.com/static/fonts/The-future/the-future-regular.woff2","format":"woff2"},"body":{"family":"IBM Plex Sans"}},"styling":{"eyebrows":"section","codeblocks":{"theme":"css-variables"},"latex":true},"integrations":{"amplitude":{"apiKey":"b375bb454cbc0ba0b780648b3f4ddc18"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor","mcp"],"display":"header"},"variables":{"recursion-api-base":"https://api.recursion.labelbox.com","recursion-console-url":"https://recursion.labelbox.com","recursion-docs-mcp-url":"https://docs.labelbox.com/mcp","recursion-mcp-url":"https://api.recursion.labelbox.com/mcp"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"labelbox-1db23ff4","hasAudioNarration":false,"actualSubdomain":"labelbox-1db23ff4","customDomains":["docs.labelbox.com"],"gitSource":{"_id":"6ad7fa91692c7c940ff17a10","type":"github","owner":"labelbox","repo":"lbx-docs-mintlify","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","isBase":true},"chroma":{"liveDeploymentHistoryId":"6aecd3e730a4ea6eb88592c0","collectionId":"8affedcc-349a-429b-a0ff-b4ebd6d0eed7","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecd3e730a4ea6eb88592c0"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeda861ad97e8452b1fc82b","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"Recursion","count":222},{"language":"default","tag":"API reference","count":192},{"language":"default","tag":"Horizon","count":179},{"language":"default","tag":"Endpoints","count":178},{"language":"default","tag":"Guides","count":130},{"language":"default","tag":"Developer guides","count":83},{"language":"default","tag":"Import/Export","count":43},{"language":"default","tag":"Label data","count":35},{"language":"default","tag":"Sessions","count":35},{"language":"default","tag":"Environments","count":24}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"styles/design-tokens.css","content":":root{--lb-color-primary-50: #eff6f8;--lb-color-primary-100: #dcecef;--lb-color-primary-200: #bcd9e0;--lb-color-primary-300: #9cc6d1;--lb-color-primary-400: #7eb3c1;--lb-color-primary-500: #5a98a7;--lb-color-primary-600: #36707f;--lb-color-primary-700: #2b5965;--lb-color-primary-800: #21454e;--lb-color-primary-900: #173138;--lb-color-secondary-50: #fbf1eb;--lb-color-secondary-100: #f4ddd0;--lb-color-secondary-200: #e7bda4;--lb-color-secondary-300: #dba47f;--lb-color-secondary-400: #d09372;--lb-color-secondary-500: #c1764f;--lb-color-secondary-600: #b15e3a;--lb-color-secondary-700: #8f4a2d;--lb-color-secondary-800: #6d3922;--lb-color-secondary-900: #4b2718;--lb-color-error-50: #fbeef0;--lb-color-error-100: #f3d4da;--lb-color-error-200: #e8aeb8;--lb-color-error-300: #df97a4;--lb-color-error-400: #db8090;--lb-color-error-500: #bd5e72;--lb-color-error-600: #9e3b52;--lb-color-error-700: #7e2f42;--lb-color-error-800: #5e2331;--lb-color-error-900: #3f1721;--lb-color-warning-50: #fdf3e4;--lb-color-warning-100: #f9e2bf;--lb-color-warning-200: #f4cd8f;--lb-color-warning-300: #efb162;--lb-color-warning-400: #e89a3e;--lb-color-warning-500: #e0892a;--lb-color-warning-600: #c2701a;--lb-color-warning-700: #9b5614;--lb-color-warning-800: #74400f;--lb-color-warning-900: #4e2b0a;--lb-color-info-50: #eef5fa;--lb-color-info-100: #d4e7f2;--lb-color-info-200: #b3d3e6;--lb-color-info-300: #9cc3df;--lb-color-info-400: #7bb0d4;--lb-color-info-500: #5390bb;--lb-color-info-600: #2f6f9e;--lb-color-info-700: #275d84;--lb-color-info-800: #1f4a6a;--lb-color-info-900: #163750;--lb-color-success-50: #eef7f2;--lb-color-success-100: #d3ece0;--lb-color-success-200: #aedcc4;--lb-color-success-300: #8fcdab;--lb-color-success-400: #74bd97;--lb-color-success-500: #519a76;--lb-color-success-600: #3a785c;--lb-color-success-700: #2f6149;--lb-color-success-800: #244a38;--lb-color-success-900: #183227;--lb-color-grey-50: #faf8f5;--lb-color-grey-100: #f1ede6;--lb-color-grey-200: #e5dfd5;--lb-color-grey-300: #d4ccbf;--lb-color-grey-400: #b0a89b;--lb-color-grey-500: #847c70;--lb-color-grey-600: #5f574d;--lb-color-grey-700: #46403a;--lb-color-grey-800: #2b2724;--lb-color-grey-900: #1a1714;--lb-color-grey-a100: #efe9e0;--lb-color-grey-a200: #e0d8cc;--lb-color-grey-a400: #b0a89b;--lb-color-grey-a700: #6b6359;--lb-font-sans:\n \"IBM Plex Sans\", \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;--lb-font-display: \"The Future\", \"IBM Plex Sans\", sans-serif;--lb-ease: cubic-bezier(0.22, 1, 0.36, 1);--lb-duration-fast: 200ms;--lb-duration-base: 300ms;--lb-duration-slow: 500ms;--lb-font-mono:\n \"IBM Plex Mono\", \"JetBrains Mono\", \"SFMono-Regular\", Menlo, Consolas,\n \"Courier New\", monospace;--lb-radius: 8px;--lb-blur-panel: blur(12px) saturate(180%);--lb-blur-scrim: blur(6px);--lb-tag-teal: #4d97a5;--lb-tag-petrol: #2f7e86;--lb-tag-sky: #5b8ec9;--lb-tag-steel: #41699e;--lb-tag-indigo: #6a6ec7;--lb-tag-violet: #8567bf;--lb-tag-plum: #9b5fae;--lb-tag-mauve: #ab7196;--lb-tag-magenta: #b85792;--lb-tag-rose: #c65f81;--lb-tag-crimson: #b94a59;--lb-tag-red: #cf6253;--lb-tag-terracotta: #c9774f;--lb-tag-clay: #a96a4a;--lb-tag-orange: #d2883c;--lb-tag-amber: #c39a39;--lb-tag-gold: #ab9a3f;--lb-tag-olive: #8b9a48;--lb-tag-moss: #6f9a4f;--lb-tag-green: #4f9e63;--lb-tag-emerald: #3a9d7e;--lb-tag-sage: #7fae93;--lb-tag-slate: #6b7a8c;--lb-tag-taupe: #9a8a78;--lb-tag-cyan: #3fa7b5;--lb-tag-navy: #3a5687;--lb-tag-periwinkle: #8a9fd6;--lb-tag-lavender: #b3a3d6;--lb-tag-fuchsia: #c473ad;--lb-tag-coral: #d97f6a;--lb-tag-peach: #dba074;--lb-tag-khaki: #bcae6a;--lb-tag-lime: #a3b94f;--lb-tag-mint: #84c4a6;--lb-tag-cocoa: #8a6a52;--lb-tag-pewter: #8c8a86;--lb-card-teal-accent: var(--lb-tag-teal);--lb-card-teal-surface: color-mix(\n in srgb,\n var(--lb-tag-teal) 14%,\n var(--lb-bg-light)\n );--lb-card-teal-border: color-mix(\n in srgb,\n var(--lb-tag-teal) 36%,\n var(--lb-border-main)\n );--lb-card-teal-glow: color-mix(\n in srgb,\n var(--lb-tag-teal) 26%,\n transparent\n );--lb-card-petrol-accent: var(--lb-tag-petrol);--lb-card-petrol-surface: color-mix(\n in srgb,\n var(--lb-tag-petrol) 14%,\n var(--lb-bg-light)\n );--lb-card-petrol-border: color-mix(\n in srgb,\n var(--lb-tag-petrol) 36%,\n var(--lb-border-main)\n );--lb-card-petrol-glow: color-mix(\n in srgb,\n var(--lb-tag-petrol) 26%,\n transparent\n );--lb-card-sky-accent: var(--lb-tag-sky);--lb-card-sky-surface: color-mix(\n in srgb,\n var(--lb-tag-sky) 14%,\n var(--lb-bg-light)\n );--lb-card-sky-border: color-mix(\n in srgb,\n var(--lb-tag-sky) 36%,\n var(--lb-border-main)\n );--lb-card-sky-glow: color-mix(\n in srgb,\n var(--lb-tag-sky) 26%,\n transparent\n );--lb-card-steel-accent: var(--lb-tag-steel);--lb-card-steel-surface: color-mix(\n in srgb,\n var(--lb-tag-steel) 14%,\n var(--lb-bg-light)\n );--lb-card-steel-border: color-mix(\n in srgb,\n var(--lb-tag-steel) 36%,\n var(--lb-border-main)\n );--lb-card-steel-glow: color-mix(\n in srgb,\n var(--lb-tag-steel) 26%,\n transparent\n );--lb-card-indigo-accent: var(--lb-tag-indigo);--lb-card-indigo-surface: color-mix(\n in srgb,\n var(--lb-tag-indigo) 14%,\n var(--lb-bg-light)\n );--lb-card-indigo-border: color-mix(\n in srgb,\n var(--lb-tag-indigo) 36%,\n var(--lb-border-main)\n );--lb-card-indigo-glow: color-mix(\n in srgb,\n var(--lb-tag-indigo) 26%,\n transparent\n );--lb-card-violet-accent: var(--lb-tag-violet);--lb-card-violet-surface: color-mix(\n in srgb,\n var(--lb-tag-violet) 14%,\n var(--lb-bg-light)\n );--lb-card-violet-border: color-mix(\n in srgb,\n var(--lb-tag-violet) 36%,\n var(--lb-border-main)\n );--lb-card-violet-glow: color-mix(\n in srgb,\n var(--lb-tag-violet) 26%,\n transparent\n );--lb-card-plum-accent: var(--lb-tag-plum);--lb-card-plum-surface: color-mix(\n in srgb,\n var(--lb-tag-plum) 14%,\n var(--lb-bg-light)\n );--lb-card-plum-border: color-mix(\n in srgb,\n var(--lb-tag-plum) 36%,\n var(--lb-border-main)\n );--lb-card-plum-glow: color-mix(\n in srgb,\n var(--lb-tag-plum) 26%,\n transparent\n );--lb-card-mauve-accent: var(--lb-tag-mauve);--lb-card-mauve-surface: color-mix(\n in srgb,\n var(--lb-tag-mauve) 14%,\n var(--lb-bg-light)\n );--lb-card-mauve-border: color-mix(\n in srgb,\n var(--lb-tag-mauve) 36%,\n var(--lb-border-main)\n );--lb-card-mauve-glow: color-mix(\n in srgb,\n var(--lb-tag-mauve) 26%,\n transparent\n );--lb-card-magenta-accent: var(--lb-tag-magenta);--lb-card-magenta-surface: color-mix(\n in srgb,\n var(--lb-tag-magenta) 14%,\n var(--lb-bg-light)\n );--lb-card-magenta-border: color-mix(\n in srgb,\n var(--lb-tag-magenta) 36%,\n var(--lb-border-main)\n );--lb-card-magenta-glow: color-mix(\n in srgb,\n var(--lb-tag-magenta) 26%,\n transparent\n );--lb-card-rose-accent: var(--lb-tag-rose);--lb-card-rose-surface: color-mix(\n in srgb,\n var(--lb-tag-rose) 14%,\n var(--lb-bg-light)\n );--lb-card-rose-border: color-mix(\n in srgb,\n var(--lb-tag-rose) 36%,\n var(--lb-border-main)\n );--lb-card-rose-glow: color-mix(\n in srgb,\n var(--lb-tag-rose) 26%,\n transparent\n );--lb-card-crimson-accent: var(--lb-tag-crimson);--lb-card-crimson-surface: color-mix(\n in srgb,\n var(--lb-tag-crimson) 14%,\n var(--lb-bg-light)\n );--lb-card-crimson-border: color-mix(\n in srgb,\n var(--lb-tag-crimson) 36%,\n var(--lb-border-main)\n );--lb-card-crimson-glow: color-mix(\n in srgb,\n var(--lb-tag-crimson) 26%,\n transparent\n );--lb-card-red-accent: var(--lb-tag-red);--lb-card-red-surface: color-mix(\n in srgb,\n var(--lb-tag-red) 14%,\n var(--lb-bg-light)\n );--lb-card-red-border: color-mix(\n in srgb,\n var(--lb-tag-red) 36%,\n var(--lb-border-main)\n );--lb-card-red-glow: color-mix(\n in srgb,\n var(--lb-tag-red) 26%,\n transparent\n );--lb-card-terracotta-accent: var(--lb-tag-terracotta);--lb-card-terracotta-surface: color-mix(\n in srgb,\n var(--lb-tag-terracotta) 14%,\n var(--lb-bg-light)\n );--lb-card-terracotta-border: color-mix(\n in srgb,\n var(--lb-tag-terracotta) 36%,\n var(--lb-border-main)\n );--lb-card-terracotta-glow: color-mix(\n in srgb,\n var(--lb-tag-terracotta) 26%,\n transparent\n );--lb-card-clay-accent: var(--lb-tag-clay);--lb-card-clay-surface: color-mix(\n in srgb,\n var(--lb-tag-clay) 14%,\n var(--lb-bg-light)\n );--lb-card-clay-border: color-mix(\n in srgb,\n var(--lb-tag-clay) 36%,\n var(--lb-border-main)\n );--lb-card-clay-glow: color-mix(\n in srgb,\n var(--lb-tag-clay) 26%,\n transparent\n );--lb-card-orange-accent: var(--lb-tag-orange);--lb-card-orange-surface: color-mix(\n in srgb,\n var(--lb-tag-orange) 14%,\n var(--lb-bg-light)\n );--lb-card-orange-border: color-mix(\n in srgb,\n var(--lb-tag-orange) 36%,\n var(--lb-border-main)\n );--lb-card-orange-glow: color-mix(\n in srgb,\n var(--lb-tag-orange) 26%,\n transparent\n );--lb-card-amber-accent: var(--lb-tag-amber);--lb-card-amber-surface: color-mix(\n in srgb,\n var(--lb-tag-amber) 14%,\n var(--lb-bg-light)\n );--lb-card-amber-border: color-mix(\n in srgb,\n var(--lb-tag-amber) 36%,\n var(--lb-border-main)\n );--lb-card-amber-glow: color-mix(\n in srgb,\n var(--lb-tag-amber) 26%,\n transparent\n );--lb-card-gold-accent: var(--lb-tag-gold);--lb-card-gold-surface: color-mix(\n in srgb,\n var(--lb-tag-gold) 14%,\n var(--lb-bg-light)\n );--lb-card-gold-border: color-mix(\n in srgb,\n var(--lb-tag-gold) 36%,\n var(--lb-border-main)\n );--lb-card-gold-glow: color-mix(\n in srgb,\n var(--lb-tag-gold) 26%,\n transparent\n );--lb-card-olive-accent: var(--lb-tag-olive);--lb-card-olive-surface: color-mix(\n in srgb,\n var(--lb-tag-olive) 14%,\n var(--lb-bg-light)\n );--lb-card-olive-border: color-mix(\n in srgb,\n var(--lb-tag-olive) 36%,\n var(--lb-border-main)\n );--lb-card-olive-glow: color-mix(\n in srgb,\n var(--lb-tag-olive) 26%,\n transparent\n );--lb-card-moss-accent: var(--lb-tag-moss);--lb-card-moss-surface: color-mix(\n in srgb,\n var(--lb-tag-moss) 14%,\n var(--lb-bg-light)\n );--lb-card-moss-border: color-mix(\n in srgb,\n var(--lb-tag-moss) 36%,\n var(--lb-border-main)\n );--lb-card-moss-glow: color-mix(\n in srgb,\n var(--lb-tag-moss) 26%,\n transparent\n );--lb-card-green-accent: var(--lb-tag-green);--lb-card-green-surface: color-mix(\n in srgb,\n var(--lb-tag-green) 14%,\n var(--lb-bg-light)\n );--lb-card-green-border: color-mix(\n in srgb,\n var(--lb-tag-green) 36%,\n var(--lb-border-main)\n );--lb-card-green-glow: color-mix(\n in srgb,\n var(--lb-tag-green) 26%,\n transparent\n );--lb-card-emerald-accent: var(--lb-tag-emerald);--lb-card-emerald-surface: color-mix(\n in srgb,\n var(--lb-tag-emerald) 14%,\n var(--lb-bg-light)\n );--lb-card-emerald-border: color-mix(\n in srgb,\n var(--lb-tag-emerald) 36%,\n var(--lb-border-main)\n );--lb-card-emerald-glow: color-mix(\n in srgb,\n var(--lb-tag-emerald) 26%,\n transparent\n );--lb-card-sage-accent: var(--lb-tag-sage);--lb-card-sage-surface: color-mix(\n in srgb,\n var(--lb-tag-sage) 14%,\n var(--lb-bg-light)\n );--lb-card-sage-border: color-mix(\n in srgb,\n var(--lb-tag-sage) 36%,\n var(--lb-border-main)\n );--lb-card-sage-glow: color-mix(\n in srgb,\n var(--lb-tag-sage) 26%,\n transparent\n );--lb-card-slate-accent: var(--lb-tag-slate);--lb-card-slate-surface: color-mix(\n in srgb,\n var(--lb-tag-slate) 14%,\n var(--lb-bg-light)\n );--lb-card-slate-border: color-mix(\n in srgb,\n var(--lb-tag-slate) 36%,\n var(--lb-border-main)\n );--lb-card-slate-glow: color-mix(\n in srgb,\n var(--lb-tag-slate) 26%,\n transparent\n );--lb-card-taupe-accent: var(--lb-tag-taupe);--lb-card-taupe-surface: color-mix(\n in srgb,\n var(--lb-tag-taupe) 14%,\n var(--lb-bg-light)\n );--lb-card-taupe-border: color-mix(\n in srgb,\n var(--lb-tag-taupe) 36%,\n var(--lb-border-main)\n );--lb-card-taupe-glow: color-mix(\n in srgb,\n var(--lb-tag-taupe) 26%,\n transparent\n );--lb-card-cyan-accent: var(--lb-tag-cyan);--lb-card-cyan-surface: color-mix(\n in srgb,\n var(--lb-tag-cyan) 14%,\n var(--lb-bg-light)\n );--lb-card-cyan-border: color-mix(\n in srgb,\n var(--lb-tag-cyan) 36%,\n var(--lb-border-main)\n );--lb-card-cyan-glow: color-mix(\n in srgb,\n var(--lb-tag-cyan) 26%,\n transparent\n );--lb-card-navy-accent: var(--lb-tag-navy);--lb-card-navy-surface: color-mix(\n in srgb,\n var(--lb-tag-navy) 14%,\n var(--lb-bg-light)\n );--lb-card-navy-border: color-mix(\n in srgb,\n var(--lb-tag-navy) 36%,\n var(--lb-border-main)\n );--lb-card-navy-glow: color-mix(\n in srgb,\n var(--lb-tag-navy) 26%,\n transparent\n );--lb-card-periwinkle-accent: var(--lb-tag-periwinkle);--lb-card-periwinkle-surface: color-mix(\n in srgb,\n var(--lb-tag-periwinkle) 14%,\n var(--lb-bg-light)\n );--lb-card-periwinkle-border: color-mix(\n in srgb,\n var(--lb-tag-periwinkle) 36%,\n var(--lb-border-main)\n );--lb-card-periwinkle-glow: color-mix(\n in srgb,\n var(--lb-tag-periwinkle) 26%,\n transparent\n );--lb-card-lavender-accent: var(--lb-tag-lavender);--lb-card-lavender-surface: color-mix(\n in srgb,\n var(--lb-tag-lavender) 14%,\n var(--lb-bg-light)\n );--lb-card-lavender-border: color-mix(\n in srgb,\n var(--lb-tag-lavender) 36%,\n var(--lb-border-main)\n );--lb-card-lavender-glow: color-mix(\n in srgb,\n var(--lb-tag-lavender) 26%,\n transparent\n );--lb-card-fuchsia-accent: var(--lb-tag-fuchsia);--lb-card-fuchsia-surface: color-mix(\n in srgb,\n var(--lb-tag-fuchsia) 14%,\n var(--lb-bg-light)\n );--lb-card-fuchsia-border: color-mix(\n in srgb,\n var(--lb-tag-fuchsia) 36%,\n var(--lb-border-main)\n );--lb-card-fuchsia-glow: color-mix(\n in srgb,\n var(--lb-tag-fuchsia) 26%,\n transparent\n );--lb-card-coral-accent: var(--lb-tag-coral);--lb-card-coral-surface: color-mix(\n in srgb,\n var(--lb-tag-coral) 14%,\n var(--lb-bg-light)\n );--lb-card-coral-border: color-mix(\n in srgb,\n var(--lb-tag-coral) 36%,\n var(--lb-border-main)\n );--lb-card-coral-glow: color-mix(\n in srgb,\n var(--lb-tag-coral) 26%,\n transparent\n );--lb-card-peach-accent: var(--lb-tag-peach);--lb-card-peach-surface: color-mix(\n in srgb,\n var(--lb-tag-peach) 14%,\n var(--lb-bg-light)\n );--lb-card-peach-border: color-mix(\n in srgb,\n var(--lb-tag-peach) 36%,\n var(--lb-border-main)\n );--lb-card-peach-glow: color-mix(\n in srgb,\n var(--lb-tag-peach) 26%,\n transparent\n );--lb-card-khaki-accent: var(--lb-tag-khaki);--lb-card-khaki-surface: color-mix(\n in srgb,\n var(--lb-tag-khaki) 14%,\n var(--lb-bg-light)\n );--lb-card-khaki-border: color-mix(\n in srgb,\n var(--lb-tag-khaki) 36%,\n var(--lb-border-main)\n );--lb-card-khaki-glow: color-mix(\n in srgb,\n var(--lb-tag-khaki) 26%,\n transparent\n );--lb-card-lime-accent: var(--lb-tag-lime);--lb-card-lime-surface: color-mix(\n in srgb,\n var(--lb-tag-lime) 14%,\n var(--lb-bg-light)\n );--lb-card-lime-border: color-mix(\n in srgb,\n var(--lb-tag-lime) 36%,\n var(--lb-border-main)\n );--lb-card-lime-glow: color-mix(\n in srgb,\n var(--lb-tag-lime) 26%,\n transparent\n );--lb-card-mint-accent: var(--lb-tag-mint);--lb-card-mint-surface: color-mix(\n in srgb,\n var(--lb-tag-mint) 14%,\n var(--lb-bg-light)\n );--lb-card-mint-border: color-mix(\n in srgb,\n var(--lb-tag-mint) 36%,\n var(--lb-border-main)\n );--lb-card-mint-glow: color-mix(\n in srgb,\n var(--lb-tag-mint) 26%,\n transparent\n );--lb-card-cocoa-accent: var(--lb-tag-cocoa);--lb-card-cocoa-surface: color-mix(\n in srgb,\n var(--lb-tag-cocoa) 14%,\n var(--lb-bg-light)\n );--lb-card-cocoa-border: color-mix(\n in srgb,\n var(--lb-tag-cocoa) 36%,\n var(--lb-border-main)\n );--lb-card-cocoa-glow: color-mix(\n in srgb,\n var(--lb-tag-cocoa) 26%,\n transparent\n );--lb-card-pewter-accent: var(--lb-tag-pewter);--lb-card-pewter-surface: color-mix(\n in srgb,\n var(--lb-tag-pewter) 14%,\n var(--lb-bg-light)\n );--lb-card-pewter-border: color-mix(\n in srgb,\n var(--lb-tag-pewter) 36%,\n var(--lb-border-main)\n );--lb-card-pewter-glow: color-mix(\n in srgb,\n var(--lb-tag-pewter) 26%,\n transparent\n )}.light{--lb-primary-main: #36707f;--lb-primary-light: #5d99a8;--lb-primary-dark: #274e58;--lb-primary-contrast-text: #ffffff;--lb-secondary-main: #b15e3a;--lb-secondary-light: #c8855f;--lb-secondary-dark: #854227;--lb-secondary-contrast-text: #ffffff;--lb-error-main: #9e3b52;--lb-error-light: #b9697a;--lb-error-dark: #6f2737;--lb-error-contrast-text: #ffffff;--lb-warning-main: #e0892a;--lb-warning-light: #eaa658;--lb-warning-dark: #a8631a;--lb-warning-contrast-text: #2a1c06;--lb-info-main: #2f6f9e;--lb-info-light: #5e93bb;--lb-info-dark: #21506f;--lb-info-contrast-text: #ffffff;--lb-success-main: #3a785c;--lb-success-light: #6aae89;--lb-success-dark: #25503c;--lb-success-contrast-text: #ffffff;--lb-text-primary: #2a2622;--lb-text-secondary: rgba(42, 38, 34, 0.74);--lb-text-muted: rgba(42, 38, 34, 0.68);--lb-text-disabled: rgba(42, 38, 34, 0.4);--lb-bg-default: var(--lb-color-grey-100);--lb-bg-paper: color-mix(\n in srgb,\n var(--lb-color-grey-100) 50%,\n var(--lb-color-grey-50)\n );--lb-bg-light: #fffdf8;--lb-divider: rgba(67, 126, 142, 0.18);--lb-border-main: rgba(67, 126, 142, 0.22);--lb-border-dark: rgba(67, 126, 142, 0.34);--lb-border-transparent: rgba(67, 126, 142, 0);--lb-action-active: rgba(42, 38, 34, 0.54);--lb-action-hover: rgba(54, 112, 127, 0.06);--lb-action-selected: rgba(54, 112, 127, 0.12);--lb-action-disabled: rgba(42, 38, 34, 0.26);--lb-action-disabled-bg: rgba(42, 38, 34, 0.12);--lb-action-focus: rgba(54, 112, 127, 0.16);--lb-focus-ring: #36707f;--lb-focus-glow: rgba(54, 112, 127, 0.24);--lb-focus-shadow:\n 0 0 0 2px var(--lb-bg-paper), 0 0 0 4px #36707f,\n 0 0 0 7px rgba(54, 112, 127, 0.24);--lb-focus-outline: 2px solid #36707f;--lb-focus-outline-offset: 2px;--lb-shadow-xs: 0 1px 2px rgba(42, 38, 34, 0.06);--lb-shadow-sm:\n 0 1px 2px rgba(42, 38, 34, 0.06), 0 2px 6px rgba(42, 38, 34, 0.06);--lb-shadow-md:\n 0 2px 6px rgba(42, 38, 34, 0.06), 0 8px 16px rgba(42, 38, 34, 0.08);--lb-shadow-lg:\n 0 6px 16px rgba(42, 38, 34, 0.08), 0 16px 32px rgba(42, 38, 34, 0.1);--lb-shadow-xl:\n 0 12px 28px rgba(42, 38, 34, 0.1), 0 28px 56px rgba(42, 38, 34, 0.14);--lb-glass-bg: color-mix(in srgb, var(--lb-bg-paper) 72%, transparent);--lb-glass-bg-subtle: color-mix(in srgb, var(--lb-bg-paper) 42%, transparent);--lb-glass-border: rgba(67, 126, 142, 0.22);--lb-scrim: rgba(42, 38, 34, 0.2);--lb-scrollbar-size: 8px;--lb-scrollbar-size-thin: 5px;--lb-scrollbar-radius: 9999px;--lb-scrollbar-track: transparent;--lb-scrollbar-rail: var(--lb-action-hover);--lb-scrollbar-thumb-border: 3px solid var(--lb-bg-default);--lb-scrollbar-fade-duration: 0.28s;--lb-scrollbar-thumb-solid: color-mix(\n in srgb,\n var(--lb-primary-main) 26%,\n transparent\n );--lb-scrollbar-thumb-solid-hover: color-mix(\n in srgb,\n var(--lb-primary-main) 52%,\n transparent\n );--lb-scrollbar-thumb-solid-active: var(--lb-primary-main);--lb-scrollbar-thumb-gradient: linear-gradient(\n 180deg,\n color-mix(in srgb, var(--lb-soft-primary-bg) 88%, var(--lb-primary-light)) 0%,\n color-mix(in srgb, var(--lb-soft-primary-bg-active) 82%, var(--lb-primary-main)) 100%\n );--lb-scrollbar-thumb-gradient-hover: linear-gradient(\n 180deg,\n var(--lb-primary-light) 0%,\n var(--lb-primary-main) 100%\n );--lb-scrollbar-thumb-gradient-active: linear-gradient(\n 180deg,\n var(--lb-primary-main) 0%,\n var(--lb-primary-dark) 100%\n );--lb-scrollbar-thumb-shadow:\n 0 1px 2px rgba(42, 38, 34, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.28);--lb-scrollbar-thumb-shadow-hover:\n 0 2px 6px rgba(42, 38, 34, 0.14), 0 0 10px var(--lb-focus-glow),\n inset 0 1px 0 rgba(255, 255, 255, 0.34);--lb-soft-primary-text: #274e58;--lb-soft-primary-bg: #dcecef;--lb-soft-primary-bg-hover: #bcd9e0;--lb-soft-primary-bg-active: #9cc6d1;--lb-soft-secondary-text: #854227;--lb-soft-secondary-bg: #f4ddd0;--lb-soft-secondary-bg-hover: #e7bda4;--lb-soft-secondary-bg-active: #dba47f;--lb-soft-error-text: #6f2737;--lb-soft-error-bg: #f3d4da;--lb-soft-error-bg-hover: #e8aeb8;--lb-soft-error-bg-active: #df97a4;--lb-soft-warning-text: #a8631a;--lb-soft-warning-bg: #f9e2bf;--lb-soft-warning-bg-hover: #f4cd8f;--lb-soft-warning-bg-active: #efb162;--lb-soft-info-text: #21506f;--lb-soft-info-bg: #d4e7f2;--lb-soft-info-bg-hover: #b3d3e6;--lb-soft-info-bg-active: #9cc3df;--lb-soft-success-text: #25503c;--lb-soft-success-bg: #d3ece0;--lb-soft-success-bg-hover: #aedcc4;--lb-soft-success-bg-active: #8fcdab}.dark{--lb-primary-main: #7eb3c1;--lb-primary-light: #a3c9d2;--lb-primary-dark: #5d99a8;--lb-primary-contrast-text: #0f242b;--lb-secondary-main: #d09372;--lb-secondary-light: #e2b095;--lb-secondary-dark: #a86f4f;--lb-secondary-contrast-text: #2b160c;--lb-error-main: #db8090;--lb-error-light: #e8a6b1;--lb-error-dark: #b3596b;--lb-error-contrast-text: #2b1015;--lb-warning-main: #e89a3e;--lb-warning-light: #f2bd78;--lb-warning-dark: #c17a22;--lb-warning-contrast-text: #2a1c06;--lb-info-main: #7bb0d4;--lb-info-light: #a6cce5;--lb-info-dark: #5891bb;--lb-info-contrast-text: #0e1f2b;--lb-success-main: #74bd97;--lb-success-light: #9ed5b6;--lb-success-dark: #4c9670;--lb-success-contrast-text: #0f2419;--lb-text-primary: #f5f5f4;--lb-text-secondary: rgba(245, 245, 244, 0.78);--lb-text-muted: rgba(245, 245, 244, 0.64);--lb-text-disabled: rgba(245, 245, 244, 0.42);--lb-bg-default: #181818;--lb-bg-paper: #202020;--lb-bg-light: #262626;--lb-divider: rgba(126, 179, 193, 0.14);--lb-border-main: rgba(126, 179, 193, 0.18);--lb-border-dark: rgba(126, 179, 193, 0.3);--lb-border-transparent: rgba(126, 179, 193, 0);--lb-action-active: rgba(245, 245, 244, 0.56);--lb-action-hover: rgba(126, 179, 193, 0.08);--lb-action-selected: rgba(126, 179, 193, 0.16);--lb-action-disabled: rgba(245, 245, 244, 0.3);--lb-action-disabled-bg: rgba(245, 245, 244, 0.12);--lb-action-focus: rgba(126, 179, 193, 0.24);--lb-focus-ring: #7eb3c1;--lb-focus-glow: rgba(126, 179, 193, 0.34);--lb-focus-shadow:\n 0 0 0 2px #202020, 0 0 0 4px #7eb3c1, 0 0 0 7px rgba(126, 179, 193, 0.34);--lb-focus-outline: 2px solid #7eb3c1;--lb-focus-outline-offset: 2px;--lb-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.22);--lb-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.22), 0 2px 4px rgba(0, 0, 0, 0.18);--lb-shadow-md: 0 2px 5px rgba(0, 0, 0, 0.22), 0 6px 12px rgba(0, 0, 0, 0.24);--lb-shadow-lg:\n 0 4px 10px rgba(0, 0, 0, 0.26), 0 12px 24px rgba(0, 0, 0, 0.3);--lb-shadow-xl:\n 0 8px 16px rgba(0, 0, 0, 0.28), 0 18px 36px rgba(0, 0, 0, 0.34);--lb-glass-bg: rgba(32, 32, 32, 0.62);--lb-glass-bg-subtle: rgba(32, 32, 32, 0.38);--lb-glass-border: rgba(126, 179, 193, 0.18);--lb-scrim: rgba(0, 0, 0, 0.45);--lb-scrollbar-size: 8px;--lb-scrollbar-size-thin: 5px;--lb-scrollbar-radius: 9999px;--lb-scrollbar-track: transparent;--lb-scrollbar-rail: var(--lb-action-hover);--lb-scrollbar-thumb-border: 3px solid var(--lb-bg-default);--lb-scrollbar-fade-duration: 0.28s;--lb-scrollbar-thumb-solid: color-mix(\n in srgb,\n var(--lb-primary-main) 30%,\n transparent\n );--lb-scrollbar-thumb-solid-hover: color-mix(\n in srgb,\n var(--lb-primary-main) 56%,\n transparent\n );--lb-scrollbar-thumb-solid-active: var(--lb-primary-main);--lb-scrollbar-thumb-gradient: linear-gradient(\n 180deg,\n color-mix(in srgb, var(--lb-soft-primary-bg) 92%, var(--lb-primary-light)) 0%,\n color-mix(in srgb, var(--lb-soft-primary-bg-hover) 88%, var(--lb-primary-main)) 100%\n );--lb-scrollbar-thumb-gradient-hover: linear-gradient(\n 180deg,\n var(--lb-primary-light) 0%,\n var(--lb-primary-main) 100%\n );--lb-scrollbar-thumb-gradient-active: linear-gradient(\n 180deg,\n var(--lb-primary-main) 0%,\n var(--lb-primary-dark) 100%\n );--lb-scrollbar-thumb-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.08);--lb-scrollbar-thumb-shadow-hover:\n 0 2px 8px rgba(0, 0, 0, 0.36), 0 0 12px var(--lb-focus-glow),\n inset 0 1px 0 rgba(255, 255, 255, 0.12);--lb-soft-primary-text: #a3c9d2;--lb-soft-primary-bg: rgba(126, 179, 193, 0.16);--lb-soft-primary-bg-hover: rgba(126, 179, 193, 0.26);--lb-soft-primary-bg-active: rgba(126, 179, 193, 0.32);--lb-soft-secondary-text: #e2b095;--lb-soft-secondary-bg: rgba(208, 147, 114, 0.16);--lb-soft-secondary-bg-hover: rgba(208, 147, 114, 0.26);--lb-soft-secondary-bg-active: rgba(208, 147, 114, 0.32);--lb-soft-error-text: #e8a6b1;--lb-soft-error-bg: rgba(219, 128, 144, 0.16);--lb-soft-error-bg-hover: rgba(219, 128, 144, 0.26);--lb-soft-error-bg-active: rgba(219, 128, 144, 0.32);--lb-soft-warning-text: #f2bd78;--lb-soft-warning-bg: rgba(232, 154, 62, 0.16);--lb-soft-warning-bg-hover: rgba(232, 154, 62, 0.26);--lb-soft-warning-bg-active: rgba(232, 154, 62, 0.32);--lb-soft-info-text: #a6cce5;--lb-soft-info-bg: rgba(123, 176, 212, 0.16);--lb-soft-info-bg-hover: rgba(123, 176, 212, 0.26);--lb-soft-info-bg-active: rgba(123, 176, 212, 0.32);--lb-soft-success-text: #9ed5b6;--lb-soft-success-bg: rgba(116, 189, 151, 0.16);--lb-soft-success-bg-hover: rgba(116, 189, 151, 0.26);--lb-soft-success-bg-active: rgba(116, 189, 151, 0.32)}"},{"filePath":"styles/docs-theme.css","content":"@font-face{font-family:\"The Future\";src:url(\"https://labelbox.com/static/fonts/The-future/the-future-light.woff2\") format(\"woff2\");font-weight:300;font-display:swap}@font-face{font-family:\"The Future\";src:url(\"https://labelbox.com/static/fonts/The-future/the-future-regular.woff2\") format(\"woff2\");font-weight:400;font-display:swap}@font-face{font-family:\"The Future\";src:url(\"https://labelbox.com/static/fonts/The-future/the-future-medium.woff2\") format(\"woff2\");font-weight:500 700;font-display:swap}@font-face{font-family:\"IBM Plex Mono\";src:url(\"https://labelbox.com/static/fonts/IBM-Plex-Mono/woff2/IBMPlexMono-Regular.woff2\") format(\"woff2\");font-weight:400;font-display:swap}@font-face{font-family:\"IBM Plex Mono\";src:url(\"https://labelbox.com/static/fonts/IBM-Plex-Mono/woff2/IBMPlexMono-Medium.woff2\") format(\"woff2\");font-weight:500;font-display:swap}@font-face{font-family:\"IBM Plex Mono\";src:url(\"https://labelbox.com/static/fonts/IBM-Plex-Mono/woff2/IBMPlexMono-SemiBold.woff2\") format(\"woff2\");font-weight:600 700;font-display:swap}html:root{--gray-50: 250 248 245;--gray-100: 241 237 230;--gray-200: 229 223 213;--gray-300: 212 204 191;--gray-400: 176 168 155;--gray-500: 132 124 112;--gray-600: 95 87 77;--gray-700: 70 64 58;--gray-800: 43 39 36;--gray-900: 26 23 20;--gray-950: 17 15 13;--lb-font-mono: \"IBM Plex Mono\", \"JetBrains Mono\", ui-monospace, SFMono-Regular, Menlo, monospace;--font-family-mono-custom: var(--lb-font-mono);--lb-panel: var(--lb-bg-light);--lb-code-bg: var(--lb-color-grey-900);--lb-code-border: color-mix(in srgb, var(--lb-primary-main) 22%, transparent);color-scheme:light}html.dark:root{--lb-panel: var(--lb-bg-paper);--lb-code-bg: var(--lb-bg-default);color-scheme:dark}html:root{--mint-background: var(--lb-code-bg);--mint-color-background: var(--lb-code-bg);--mint-color-text: var(--lb-color-grey-100);--mint-token-keyword: var(--lb-color-primary-300);--mint-token-string: var(--lb-color-success-300);--mint-token-string-expression: var(--lb-tag-mint);--mint-token-constant: var(--lb-color-warning-300);--mint-token-function: var(--lb-color-secondary-300);--mint-token-parameter: var(--lb-tag-lavender);--mint-token-comment: var(--lb-color-grey-500);--mint-token-punctuation: var(--lb-color-grey-400);--mint-token-link: var(--lb-color-primary-300);--mint-ansi-black: var(--lb-color-grey-800);--mint-ansi-red: var(--lb-color-error-300);--mint-ansi-green: var(--lb-color-success-300);--mint-ansi-yellow: var(--lb-color-warning-300);--mint-ansi-blue: var(--lb-color-info-300);--mint-ansi-magenta: var(--lb-tag-fuchsia);--mint-ansi-cyan: var(--lb-color-primary-300);--mint-ansi-white: var(--lb-color-grey-100);--mint-ansi-bright-black: var(--lb-color-grey-600);--mint-ansi-bright-red: var(--lb-color-error-200);--mint-ansi-bright-green: var(--lb-color-success-200);--mint-ansi-bright-yellow: var(--lb-color-warning-200);--mint-ansi-bright-blue: var(--lb-color-info-200);--mint-ansi-bright-magenta: var(--lb-tag-lavender);--mint-ansi-bright-cyan: var(--lb-color-primary-200);--mint-ansi-bright-white: var(--lb-color-grey-50)}html,body{background-color:var(--lb-panel)}::selection{background:var(--lb-soft-primary-bg-active);color:var(--lb-text-primary)}:focus-visible{outline:var(--lb-focus-outline);outline-offset:var(--lb-focus-outline-offset)}*{scrollbar-width:thin;scrollbar-color:var(--lb-scrollbar-thumb-solid) transparent}html #sidebar-content{border-color:var(--lb-divider)}html #navbar>.border-b{border-color:var(--lb-divider)}html #navbar>.bg-background-light{background:var(--lb-panel)}html img:is([src$=\"recursion-mark.svg\"],[src$=\"labelbox-mark.svg\"])[class]{object-position:-9999px 0;background-color:var(--lb-text-primary);-webkit-mask:center / contain no-repeat;mask:center / contain no-repeat}html img[src$=\"recursion-mark.svg\"][class]{-webkit-mask-image:url(\"/images/recursion-mark.svg\");mask-image:url(\"/images/recursion-mark.svg\")}html img[src$=\"labelbox-mark.svg\"][class]{-webkit-mask-image:url(\"/images/labelbox-mark.svg\");mask-image:url(\"/images/labelbox-mark.svg\")}html #navbar .nav-dropdown-products-selector-trigger{gap:0.55rem;height:2.125rem;padding:0 0.75rem 0 0.4rem;border:1px solid var(--lb-border-main);border-radius:9999px;background:var(--lb-glass-bg);color:var(--lb-text-primary);font-weight:500;transition:border-color var(--lb-duration-fast) var(--lb-ease), background-color var(--lb-duration-fast) var(--lb-ease)}html #navbar .nav-dropdown-products-selector-trigger:hover,html #navbar .nav-dropdown-products-selector-trigger[aria-expanded=\"true\"]{border-color:var(--lb-border-dark);background:var(--lb-soft-primary-bg)!important}html #navbar .nav-dropdown-products-selector-trigger>svg:first-child{box-sizing:content-box;width:0.875rem;height:0.875rem;padding:0.3rem;border-radius:9999px;background:var(--lb-primary-main);color:var(--lb-primary-contrast-text)}html .nav-dropdown-products-selector-content{border:1px solid var(--lb-border-main);border-radius:1rem;background:var(--lb-glass-bg);box-shadow:var(--lb-shadow-lg);backdrop-filter:var(--lb-blur-panel);-webkit-backdrop-filter:var(--lb-blur-panel)}html .nav-dropdown-products-selector-item{border-radius:0.75rem}html .nav-dropdown-products-selector-item:hover,html .nav-dropdown-products-selector-item[data-active]{background:var(--lb-action-hover)}html .nav-dropdown-products-selector-item-icon{color:var(--lb-primary-main)}html .nav-dropdown-products-selector-item-title{color:var(--lb-text-primary);font-weight:600}html .nav-dropdown-products-selector-item-description{color:var(--lb-text-muted)}html #navbar .navbar-link a,html #navbar a.navbar-link{color:var(--lb-text-secondary)}html #navbar .navbar-link a:hover,html #navbar a.navbar-link:hover{color:var(--lb-text-primary)}html #topbar-cta-button a,html a#topbar-cta-button{border-radius:var(--lb-radius);background:var(--lb-primary-main);color:var(--lb-primary-contrast-text);box-shadow:var(--lb-shadow-xs), inset 0 1px 0 color-mix(in srgb, var(--lb-color-grey-50) 16%, transparent);transition:background-color var(--lb-duration-fast) var(--lb-ease)}html #topbar-cta-button a:hover,html a#topbar-cta-button:hover{background:var(--lb-primary-dark)}html #topbar-cta-button a>span.absolute{display:none}html #topbar-cta-button :is(span,svg){color:var(--lb-primary-contrast-text)}html .nav-tabs-item{color:var(--lb-text-secondary)}html .nav-tabs-item:hover,html .nav-tabs-item[data-active]{color:var(--lb-text-primary)}html #navbar div:has(>#search-bar-entry){gap:0.5rem}html :is(#search-bar-entry,#assistant-entry){height:2.25rem;border:1px solid var(--lb-border-main);border-radius:9999px;background:var(--lb-bg-paper);color:var(--lb-text-muted);box-shadow:none;filter:none;transition:border-color var(--lb-duration-fast) var(--lb-ease),\n background-color var(--lb-duration-fast) var(--lb-ease)}html :is(#search-bar-entry,#assistant-entry):hover{border-color:var(--lb-border-dark);background:var(--lb-bg-paper);filter:none}html #assistant-entry>span:not(:last-child){color:var(--lb-text-secondary)}html :is(#search-bar-entry>span,#assistant-entry>span:last-child){padding:0.05rem 0.4rem;border:1px solid var(--lb-divider);border-radius:0.375rem;color:var(--lb-text-muted);font-family:var(--lb-font-mono);font-weight:500}html .sidebar-group-header{font-family:var(--lb-font-mono);font-size:0.6875rem;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--lb-text-muted)}html #sidebar-content li>a,html #sidebar-content li>button{border-radius:0.625rem;color:var(--lb-text-secondary);transition:background-color var(--lb-duration-fast) var(--lb-ease), color var(--lb-duration-fast) var(--lb-ease)}html #sidebar-content li>a:hover,html #sidebar-content li>button:hover{background:var(--lb-action-hover);color:var(--lb-text-primary)}html #sidebar-content li[data-active-nav-item]>a{position:relative;background:var(--lb-soft-primary-bg);color:var(--lb-soft-primary-text);text-shadow:none;font-weight:500}html #sidebar-content li[data-active-nav-item]>a::before{content:\"\";position:absolute;left:0.3rem;top:50%;width:3px;height:1rem;border-radius:9999px;background:var(--lb-primary-main);transform:translateY(-50%)}html .eyebrow{display:none}html #page-title{font-family:var(--lb-font-display);font-weight:400;font-size:clamp(1.875rem, 1.5rem + 0.9vw, 2.25rem);line-height:1.1;letter-spacing:-0.02em;color:var(--lb-text-primary)}html .mdx-content{--tw-prose-body: var(--lb-text-secondary);--tw-prose-headings: var(--lb-text-primary);--tw-prose-bold: var(--lb-text-primary);--tw-prose-links: var(--lb-primary-main);--tw-prose-counters: var(--lb-text-muted);--tw-prose-bullets: var(--lb-color-primary-400);--tw-prose-hr: var(--lb-divider);--tw-prose-quotes: var(--lb-text-primary);--tw-prose-quote-borders: var(--lb-primary-main);--tw-prose-th-borders: var(--lb-border-main);--tw-prose-td-borders: var(--lb-divider);--tw-prose-invert-body: var(--lb-text-secondary);--tw-prose-invert-headings: var(--lb-text-primary);--tw-prose-invert-bold: var(--lb-text-primary);--tw-prose-invert-links: var(--lb-primary-main);--tw-prose-invert-bullets: var(--lb-color-primary-400);color:var(--lb-text-secondary)}html .mdx-content :is(h2,h3,h4){font-family:var(--lb-font-display);font-weight:400;color:var(--lb-text-primary);letter-spacing:-0.012em}html .mdx-content>h2{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--lb-divider);font-size:1.625rem;line-height:1.2}html .mdx-content>h2:first-child{margin-top:0;padding-top:0;border-top:0}html .mdx-content>h3{font-size:1.25rem}html .mdx-content a:not(.card,[class*=\"not-prose\"],.hub *){color:var(--lb-primary-main);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--lb-primary-main) 35%, transparent);text-decoration-thickness:1px;text-underline-offset:3px;border-bottom:0;font-weight:500;transition:text-decoration-color var(--lb-duration-fast) var(--lb-ease)}html .mdx-content a:not(.card,[class*=\"not-prose\"],.hub *):hover{text-decoration-color:currentColor}html .mdx-content :not(pre)>code{padding:0.12em 0.4em;border:1px solid var(--lb-divider);border-radius:0.375rem;background:color-mix(in srgb, var(--lb-primary-main) 6%, var(--lb-panel));color:var(--lb-text-primary);font-family:var(--lb-font-mono);font-size:0.85em;font-weight:500}html .mdx-content :not(pre)>code::before,html .mdx-content :not(pre)>code::after{content:none}html .mdx-content table{border-collapse:separate;border-spacing:0;font-size:0.875rem}html .mdx-content thead th{background:var(--lb-bg-paper);color:var(--lb-text-primary);font-weight:600;border-bottom:1px solid var(--lb-border-main)}html .mdx-content tbody td{border-bottom:1px solid var(--lb-divider)}html .mdx-content tbody tr:hover td{background:var(--lb-action-hover)}html .mdx-content :is(thead th,tbody td){padding:0.625rem 0.875rem}html .code-block,html .code-group{border:1px solid var(--lb-code-border);border-radius:0.875rem;background:var(--lb-code-bg);box-shadow:var(--lb-shadow-md), inset 0 1px 0 color-mix(in srgb, var(--lb-color-grey-50) 5%, transparent);overflow:hidden}html .code-group .code-block{border:0;box-shadow:none}html .code-block [data-component-part=\"code-block-root\"],html .code-block pre{background-color:var(--lb-code-bg)!important}html :is(.code-block,.code-group) :is(pre,code,.line){font-family:var(--lb-font-mono)}html :is(.code-block,.code-group) :is(.whitespace-pre,pre,code,.line){white-space:pre-wrap;overflow-wrap:anywhere}html :is(.code-block,.code-group) pre>code{width:auto!important}html #content-side-layout :is(.whitespace-pre,pre,code,.line){white-space:pre;overflow-wrap:normal}html #content-side-layout pre>code{width:max-content!important}html .code-block-copy-button button{background:transparent!important;color:var(--lb-color-grey-400)}html .code-block-copy-button button:hover{color:var(--lb-color-grey-50)}html .callout{--callout-bg: var(--lb-soft-primary-bg);--callout-accent: var(--lb-primary-main);border:1px solid color-mix(in srgb, var(--callout-accent) 22%, transparent);border-radius:0.875rem;background:color-mix(in srgb, var(--callout-bg) 70%, var(--lb-panel));box-shadow:inset 3px 0 0 var(--callout-accent)}html .callout [data-component-part=\"callout-icon\"]{color:var(--callout-accent)}html .callout [data-component-part=\"callout-icon\"] svg{fill:currentColor;color:currentColor}html .callout [data-component-part=\"callout-content\"]{color:var(--lb-text-primary)}html .callout[data-callout-type=\"info\"]{--callout-bg: var(--lb-soft-info-bg);--callout-accent: var(--lb-info-main)}html .callout[data-callout-type=\"tip\"],html .callout[data-callout-type=\"check\"]{--callout-bg: var(--lb-soft-success-bg);--callout-accent: var(--lb-success-main)}html .callout[data-callout-type=\"warning\"]{--callout-bg: var(--lb-soft-warning-bg);--callout-accent: var(--lb-warning-main)}html .callout[data-callout-type=\"danger\"]{--callout-bg: var(--lb-soft-error-bg);--callout-accent: var(--lb-error-main)}html .card{border:1px solid var(--lb-border-main);border-radius:1rem;background:var(--lb-bg-light);box-shadow:var(--lb-shadow-xs);transition:transform var(--lb-duration-base) var(--lb-ease),\n box-shadow var(--lb-duration-base) var(--lb-ease),\n border-color var(--lb-duration-base) var(--lb-ease)}html .card:hover{transform:translateY(-2px);border-color:var(--lb-border-dark)!important;box-shadow:var(--lb-shadow-md), 0 0 0 4px var(--lb-card-teal-glow)}html .card [data-component-part=\"card-icon\"]{box-sizing:content-box;width:1.125rem;height:1.125rem;padding:0.5rem;border-radius:0.625rem;background:var(--lb-soft-primary-bg);color:var(--lb-soft-primary-text);fill:var(--lb-soft-primary-text)}html .card [data-component-part=\"card-icon\"]>svg{width:1.125rem;height:1.125rem;background-color:var(--lb-soft-primary-text)!important}html .card [data-component-part=\"card-title\"]{font-family:var(--lb-font-display);font-weight:500;letter-spacing:-0.005em;color:var(--lb-text-primary)}html .card [data-component-part=\"card-content\"]{color:var(--lb-text-muted);font-size:0.9375rem}html .step [data-component-part=\"step-indicator\"]{background:var(--lb-soft-primary-bg);color:var(--lb-soft-primary-text);box-shadow:0 0 0 4px var(--lb-panel), 0 0 0 5px var(--lb-border-main);font-family:var(--lb-font-mono)}html .step [data-component-part=\"step-line\"]{background:linear-gradient(var(--lb-border-dark), var(--lb-divider))}html .tabs [data-component-part=\"tabs-list\"]{border-color:var(--lb-divider)}html .tabs [data-component-part=\"tab-button\"]{color:var(--lb-text-muted)}html .tabs [data-component-part=\"tab-button\"][data-active=\"true\"]{color:var(--lb-primary-main);border-color:var(--lb-primary-main)}html .accordion,html .accordion-group{border-color:var(--lb-border-main);border-radius:0.875rem;background:var(--lb-bg-light)}html .mermaid svg{--lb-diagram-edge: color-mix(in srgb, var(--lb-primary-main) 55%, var(--lb-color-grey-400));font-family:var(--lb-font-sans)!important}html .mermaid svg :where(.node rect,.node polygon,.node circle,.node path,rect.basic,rect.actor,.cluster rect){fill:var(--lb-bg-light)!important;stroke:var(--lb-border-dark)!important;stroke-width:1px!important;rx:8px;ry:8px}html .mermaid svg .statediagram-state rect.basic{stroke:var(--lb-primary-main)!important}html .mermaid svg :is(.nodeLabel,.node .label,.node text,text.actor,.actor tspan,.cluster-label,.cluster text){color:var(--lb-text-primary)!important;fill:var(--lb-text-primary)!important;font-size:14px!important;font-weight:500!important}html .mermaid svg :is(.flowchart-link,path.transition,.edgePath path,.messageLine0,.messageLine1,line.actor-line){stroke:var(--lb-diagram-edge)!important;stroke-width:1.5px!important}html .mermaid svg line.actor-line{stroke-dasharray:3 4;stroke-width:1px!important}html .mermaid svg :is(marker path,.arrowheadPath){fill:var(--lb-diagram-edge)!important;stroke:var(--lb-diagram-edge)!important}html .mermaid svg :is(.edgeLabel,.edgeLabel p,.edgeLabel span,.labelBkg,text.messageText){background-color:var(--lb-bg-light)!important;color:var(--lb-text-secondary)!important;fill:var(--lb-text-secondary)!important;font-size:12px!important;font-weight:400!important}html .mermaid svg .edgeLabel rect{fill:var(--lb-bg-light)!important;opacity:1!important}html .mermaid svg circle.state-start,html .mermaid svg[aria-roledescription=\"stateDiagram\"] .node .outer-path>g>path{fill:var(--lb-primary-main)!important;stroke:var(--lb-primary-main)!important}html .mermaid svg[aria-roledescription=\"stateDiagram\"] .node .outer-path>path{fill:var(--lb-bg-light)!important;stroke:var(--lb-primary-main)!important}html .toc-item>a{color:var(--lb-text-muted);border-color:var(--lb-divider)}html .toc-item>a:hover{color:var(--lb-text-primary)}html .toc-item[data-active-deepest]>a{color:var(--lb-primary-main);border-color:var(--lb-primary-main)}html #pagination a{border:1px solid var(--lb-border-main);border-radius:1rem;background:var(--lb-bg-light);transition:border-color var(--lb-duration-fast) var(--lb-ease), box-shadow var(--lb-duration-fast) var(--lb-ease)}html #pagination a:hover{border-color:var(--lb-border-dark);box-shadow:var(--lb-shadow-sm)}html #footer{border-color:var(--lb-divider)}html .method-pill,html .method-nav-pill{font-family:var(--lb-font-mono);letter-spacing:0.02em}html .method-pill[class*=\"bg-green\"],html .method-nav-pill>span[class*=\"bg-green\"]{background-color:var(--lb-soft-success-bg);color:var(--lb-soft-success-text)}html .method-pill[class*=\"bg-blue\"],html .method-nav-pill>span[class*=\"bg-blue\"]{background-color:var(--lb-soft-info-bg);color:var(--lb-soft-info-text)}html .method-pill[class*=\"bg-yellow\"],html .method-pill[class*=\"bg-orange\"],html .method-nav-pill>span[class*=\"bg-yellow\"],html .method-nav-pill>span[class*=\"bg-orange\"]{background-color:var(--lb-soft-warning-bg);color:var(--lb-soft-warning-text)}html .method-pill[class*=\"bg-red\"],html .method-nav-pill>span[class*=\"bg-red\"],html [class*=\"bg-red-100/50\"][class*=\"text-red-600\"]{background-color:var(--lb-soft-error-bg);color:var(--lb-soft-error-text)}html .method-nav-pill>span[class*=\"3064E3\"]{background-color:var(--lb-primary-main);color:var(--lb-primary-contrast-text)}html .tryit-button{border-radius:10px;background-color:var(--lb-primary-main);color:var(--lb-primary-contrast-text);transition:background-color var(--lb-duration-fast) var(--lb-ease)}html .tryit-button:hover{opacity:1;background-color:var(--lb-primary-dark)}@media (prefers-reduced-motion: reduce){html .card,html .card:hover{transform:none;transition:none}}"},{"filePath":"styles/home.css","content":".hub{--hub-container: 92rem;--hub-gutter: calc(var(--spacing, 0.25rem) * 4);position:relative;color:var(--lb-text-primary);font-family:var(--lb-font-sans);overflow-x:clip}@media (min-width: 1024px){.hub{--hub-gutter: calc(var(--spacing, 0.25rem) * 9)}}html:has(.hub:not(.hub--embedded)),html:has(.hub:not(.hub--embedded)) body{background-color:var(--lb-bg-default)}html:has(.hub:not(.hub--embedded)) #navbar>.bg-background-light{background:color-mix(in srgb, var(--lb-bg-default) 82%, transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}html:has(.hub:not(.hub--embedded)) #navbar div:has(>.nav-tabs){display:none}.hub .hub-icon{display:block;flex:none}.hub-wrap{box-sizing:border-box;width:100%;max-width:var(--hub-container);margin:0 auto;padding:0 var(--hub-gutter)}.hub-hero{padding:clamp(48px, 6vw, 96px) 0 clamp(8px, 2vw, 24px)}.hub-hero__grid{display:grid;grid-template-columns:minmax(0, 460px) minmax(0, 1fr);gap:48px;align-items:center}.hub .hub-display{margin:0;font-family:var(--lb-font-display);font-size:clamp(2.4rem, 1.1rem + 3.2vw, 3.25rem);font-weight:400;line-height:1.04;letter-spacing:-0.032em;color:var(--lb-text-primary)}.hub-display__accent{display:block;color:var(--lb-text-muted)}.hub .hub-lede{max-width:36rem;margin:22px 0 0;font-size:clamp(1.02rem, 0.98rem + 0.2vw, 1.125rem);line-height:1.6;color:var(--lb-text-secondary)}.hub-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}.hub .hub-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border:1px solid transparent;border-radius:10px;font-size:14.5px;font-weight:500;transition:background-color var(--lb-duration-fast) var(--lb-ease),\n border-color var(--lb-duration-fast) var(--lb-ease)}.hub .hub-btn .hub-icon{transition:transform var(--lb-duration-fast) var(--lb-ease)}.hub .hub-btn:hover .hub-icon{transform:translateX(2px)}.hub .hub-btn--primary{background:var(--lb-primary-main);color:var(--lb-primary-contrast-text)}.hub .hub-btn--primary:hover{background:var(--lb-primary-dark)}.hub .hub-btn--ghost{border-color:var(--lb-border-main);color:var(--lb-text-primary)}.hub .hub-btn--ghost:hover{border-color:var(--lb-border-dark);background:var(--lb-action-hover)}.hub-hero__copy{position:relative;z-index:20}.hub-hero__setup{display:flex;margin-top:14px}.hub-agents{position:relative;display:inline-flex;flex-direction:column;align-items:flex-start}.hub-agents__trigger{display:inline-flex;align-items:center;gap:10px;margin-left:-12px;padding:6px 12px;border:0;border-radius:10px;background:transparent;color:var(--lb-text-secondary);font:inherit;font-size:15px;line-height:24px;cursor:pointer;transition:background-color var(--lb-duration-fast) var(--lb-ease),\n color var(--lb-duration-fast) var(--lb-ease)}.hub-agents__trigger:hover,.hub-agents__trigger[aria-expanded=\"true\"]{background:var(--lb-action-hover);color:var(--lb-text-primary)}.hub-agents__marks{display:inline-flex;align-items:center;gap:6px;color:var(--lb-text-muted)}.hub-agents__chevron{display:inline-flex;transition:transform var(--lb-duration-base) var(--lb-ease)}.hub-agents__chevron.is-open{transform:rotate(180deg)}.hub-agents__panel{position:absolute;top:calc(100% + 8px);left:-12px;z-index:30;width:min(40rem, calc(100vw - 2rem));padding:12px;border:1px solid var(--lb-border-main);border-radius:16px;background:var(--lb-bg-paper);box-shadow:var(--lb-shadow-lg);animation:hub-rise var(--lb-duration-base) var(--lb-ease) both}.hub-agents__tabs{display:flex;gap:4px}.hub-agents__tab{padding:6px 12px;border:0;border-radius:10px;background:transparent;color:var(--lb-text-secondary);font:inherit;font-size:14px;line-height:20px;cursor:pointer;transition:background-color var(--lb-duration-fast) var(--lb-ease),\n color var(--lb-duration-fast) var(--lb-ease)}.hub-agents__tab:hover{background:var(--lb-action-hover);color:var(--lb-text-primary)}.hub-agents__tab.is-active{background:var(--lb-action-selected);color:var(--lb-text-primary)}.hub-agents__code{position:relative;margin-top:12px;overflow:hidden;border:1px solid var(--lb-border-main);border-radius:10px;background:var(--lb-bg-default)}.hub .hub-agents__pre{max-height:16rem;margin:0;padding:16px 48px 32px 16px;overflow:auto;background:transparent;color:var(--lb-text-primary);font-family:var(--lb-font-mono);font-size:12.5px;line-height:20px;white-space:pre-wrap;overflow-wrap:anywhere}.hub-agents__fade{position:absolute;right:0;bottom:0;left:0;height:40px;background:linear-gradient(to top, var(--lb-bg-default), transparent);pointer-events:none}.hub-agents__copy{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:10px;background:var(--lb-bg-default);color:var(--lb-text-secondary);cursor:pointer;transition:background-color var(--lb-duration-fast) var(--lb-ease),\n color var(--lb-duration-fast) var(--lb-ease)}.hub-agents__copy:hover{background:var(--lb-action-hover);color:var(--lb-text-primary)}.hub .hub-agents__hint{margin:10px 0 0;padding:0 4px;color:var(--lb-text-muted);font-size:14px;line-height:20px}.hub-agents__guide{margin-left:6px;color:var(--lb-primary-main);font-weight:500;text-decoration:none}.hub-agents__guide:hover{text-decoration:underline}@keyframes hub-rise{from{opacity:0;transform:translateY(6px)}}.hub-hero__stage{min-width:0;padding:6px;border:1px solid var(--lb-divider);border-radius:18px;background:var(--lb-bg-paper)}.hub-console{--hub-console-canvas: var(--lb-bg-default);--hub-console-surface: var(--lb-bg-light);position:relative;width:100%;overflow:hidden;border-radius:12px;background:var(--hub-console-canvas);color:var(--lb-text-primary);font-family:var(--lb-font-sans);user-select:none}.dark .hub-console{--hub-console-surface: var(--lb-bg-paper)}.hub-console .hue-violet{--hue: var(--lb-tag-violet)}.hub-console .hue-teal{--hue: var(--lb-tag-teal)}.hub-console .hue-terracotta{--hue: var(--lb-tag-terracotta)}.hub-console .hue-sky{--hue: var(--lb-info-main)}.hub-console .hue-green{--hue: var(--lb-success-main)}.hub-console .hue-amber{--hue: var(--lb-warning-main)}.hub-console .hue-crimson{--hue: var(--lb-error-main)}.hub-console .hue-slate{--hue: var(--lb-text-muted)}.hc-stage{position:absolute;top:0;left:0;display:grid;grid-template-columns:188px minmax(0, 1fr);transform-origin:0 0;font-size:12.5px;line-height:1.35}.hc-nav{display:flex;flex-direction:column;min-height:0;padding:12px 10px;border-right:1px solid var(--lb-divider);color:var(--lb-text-secondary)}.hc-brand{display:flex;align-items:center;gap:10px;padding:2px 6px 14px;color:var(--lb-text-muted)}.hc-brand__mark{color:var(--lb-text-primary)}.hc-brand__text{display:flex;flex:1;flex-direction:column;min-width:0}.hc-brand__text b{font-size:13px;font-weight:600;color:var(--lb-text-primary)}.hc-brand__text small{font-size:10.5px;color:var(--lb-text-muted)}.hc-nav__list,.hc-nav__foot{display:flex;flex-direction:column;gap:2px}.hc-nav__foot{margin-top:auto;padding-top:10px;border-top:1px solid var(--lb-divider)}.hc-nav__item{display:flex;align-items:center;gap:10px;height:30px;padding:0 8px;border-radius:7px;font-size:13px;white-space:nowrap}.hc-nav__item>span{flex:1}.hc-nav__item.is-sub{margin-left:12px}.hc-nav__item.is-active{background:var(--lb-action-selected);color:var(--lb-text-primary)}.hc-nav__item--small{height:26px;font-size:11.5px;color:var(--lb-text-muted)}.hc-main{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0;padding:10px 14px 14px}.hc-header{display:flex;flex:none;align-items:center;gap:10px;height:40px}.hc-sqbtn{display:grid;flex:none;place-items:center;width:26px;height:26px;border:1px solid var(--lb-border-main);border-radius:7px;color:var(--lb-text-secondary)}.hc-sqbtn--sm{width:20px;height:20px;border-radius:5px}.hc-sqbtn--on{border-color:var(--lb-primary-main);color:var(--lb-primary-main)}.hc-title{font-size:14px;font-weight:600;white-space:nowrap}.hc-state{display:inline-flex;align-items:center;gap:6px;color:var(--hue);font-size:12.5px;font-weight:500;white-space:nowrap}.hc-dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--hue, currentColor)}.hc-dot.is-live{animation:hc-pulse 1.2s ease-in-out infinite}.hc-id{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--lb-text-muted);font-family:var(--lb-font-mono);font-size:11.5px}.hc-metrics{display:flex;gap:22px;margin-left:auto}.hc-metric{display:flex;flex-direction:column;gap:1px;white-space:nowrap}.hc-metric small{color:var(--lb-text-muted);font-size:9.5px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase}.hc-metric b{font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}.hc-more{color:var(--lb-text-muted)}.hc-btn{display:inline-flex;flex:none;align-items:center;justify-content:center;height:30px;padding:0 12px;border:1px solid var(--lb-border-main);border-radius:8px;background:var(--hub-console-surface);font-size:12.5px;font-weight:600;white-space:nowrap}.hc-toolbar{display:flex;flex:none;align-items:center;gap:8px;height:28px}.hc-find{display:inline-flex;align-items:center;gap:8px;width:176px;height:26px;padding:0 12px;border:1px solid var(--lb-border-main);border-radius:999px;color:var(--lb-text-muted);font-size:12px}.hc-spacer{flex:1}.hc-select{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 8px 0 10px;border:1px solid var(--lb-border-main);border-radius:7px;color:var(--lb-text-secondary);font-size:12px}.hc-zoom{display:inline-flex;gap:10px;padding:0 6px;color:var(--lb-text-secondary);font-size:11.5px;font-variant-numeric:tabular-nums}.hc-zoom i{font-style:normal;color:var(--lb-text-muted)}.hc-card{border:1px solid var(--lb-border-main);border-radius:8px;background:var(--hub-console-surface)}.hc-strip{position:relative;display:flex;flex:none;flex-direction:column;gap:6px;padding:28px 14px 18px}.hc-lane{position:relative;height:18px;border:1px solid var(--lb-divider);border-radius:999px;background:var(--lb-bg-default)}.hc-mark{position:absolute;top:3px;bottom:3px;width:3px;margin-left:-1px;border-radius:2px;background:var(--hue)}.hc-mark.is-span{margin-left:0;border-radius:3px;background:color-mix(in srgb, var(--hue) 72%, transparent)}.hc-lane__pill{position:absolute;z-index:1;top:50%;margin-left:2px;padding:1px 8px;transform:translateY(-50%);border:1px solid color-mix(in srgb, var(--hue) 55%, transparent);border-radius:999px;background:color-mix(in srgb, var(--hue) 30%, var(--hub-console-surface));color:var(--lb-text-primary);font-size:10.5px;font-weight:600;white-space:nowrap}.hc-lane__pill.is-idle{opacity:0.35}.hc-lane__end{position:absolute;top:1px;bottom:1px;width:10px;margin-left:-10px;border:1.5px solid var(--lb-text-muted);border-radius:5px}.hc-playhead{position:absolute;z-index:2;top:10px;bottom:12px;width:1px;background:var(--lb-primary-main)}.hc-playhead__time{position:absolute;top:-4px;left:50%;padding:1px 6px;transform:translateX(-50%);border:1px solid var(--lb-border-main);border-radius:4px;background:var(--lb-bg-light);font-family:var(--lb-font-mono);font-size:10px;white-space:nowrap}.hc-body{display:grid;flex:1;grid-template-columns:minmax(0, 1fr) 272px;gap:12px;min-height:0}.hc-left{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0}.hc-outcome{display:flex;flex:none;align-items:center;gap:10px;height:36px;padding:0 12px;white-space:nowrap}.hc-outcome b{font-weight:600}.hc-objective{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--lb-text-secondary)}.hc-details{color:var(--lb-text-secondary);font-size:12px;font-weight:600}.hc-transcript{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}.hc-feed{display:flex;flex:1;flex-direction:column;justify-content:flex-end;gap:6px;min-height:0;padding:10px 12px;overflow:hidden;mask-image:linear-gradient(to bottom, transparent, black 64px)}.hc-row{flex:none;animation:hc-in 420ms var(--lb-ease) both}.hc-tool{display:flex;align-items:center;gap:8px;min-width:0;height:30px;padding:0 10px;border:1px solid var(--lb-divider);border-radius:6px;color:var(--lb-text-muted);white-space:nowrap}.hc-tool b{color:var(--lb-text-primary);font-family:var(--lb-font-mono);font-size:12px;font-weight:600}.hc-arg{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--lb-text-secondary);font-family:var(--lb-font-mono);font-size:11.5px}.hc-ms{color:var(--lb-text-muted);font-family:var(--lb-font-mono);font-size:11px}.hc-thread{padding:1px 7px;border-radius:999px;background:color-mix(in srgb, var(--hue) 30%, var(--hub-console-surface));color:var(--lb-text-primary);font-size:10.5px;font-weight:600}.hc-chip{padding:2px 7px;border-radius:4px;background:var(--lb-action-selected);color:var(--lb-text-secondary);font-size:10.5px;font-weight:600}.hc-msg{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--lb-divider);border-radius:6px;line-height:1.45}.hc-msg>span{flex:1}.hc-msg>svg{color:var(--lb-text-muted)}.hc-msg.is-user{flex-direction:column;align-items:flex-start;gap:2px;border-color:color-mix(in srgb, var(--lb-info-main) 35%, transparent);background:color-mix(in srgb, var(--lb-info-main) 8%, transparent)}.hc-msg small{color:var(--lb-info-main);font-size:10.5px;font-weight:600}.hc-statusline{display:flex;align-items:center;justify-content:center;gap:6px;height:22px;color:var(--lb-text-secondary);font-size:11px;font-weight:500}.hc-composer{flex:none;padding:10px 12px 12px;border-top:1px solid var(--lb-divider)}.hc-input{height:44px;padding:9px 11px;border:1px solid var(--lb-border-main);border-radius:6px;background:var(--lb-bg-default);color:var(--lb-text-muted)}.hc-composer__foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;color:var(--lb-text-muted);font-size:11px}.hc-send{padding:5px 14px;border-radius:6px;background:color-mix(in srgb, var(--lb-primary-main) 30%, var(--hub-console-surface));color:var(--lb-text-secondary);font-size:12px;font-weight:600}.hc-rail{display:flex;flex-direction:column;min-height:0;overflow:hidden}.hc-tabs{display:flex;flex:none;gap:14px;padding:0 12px;border-bottom:1px solid var(--lb-divider)}.hc-tabs span{margin-bottom:-1px;padding:9px 0 8px;border-bottom:2px solid transparent;color:var(--lb-text-muted);font-size:12px;font-weight:500}.hc-tabs .is-active{border-bottom-color:var(--lb-primary-main);color:var(--lb-primary-main)}.hc-sect{flex:none;padding:10px 12px 12px;border-bottom:1px solid var(--lb-divider)}.hc-sect--last{border-bottom:0}.hc-sect__title{margin-bottom:6px;font-size:12.5px;font-weight:600;color:var(--lb-text-primary)}.hub-console .hc-note{margin:0 0 6px;color:var(--lb-text-secondary);font-size:12px;line-height:1.4}.hc-kv{display:grid;grid-template-columns:104px minmax(0, 1fr);gap:8px;padding:3px 0;font-size:12px}.hc-kv span{color:var(--lb-text-secondary)}.hc-kv b{font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.hc-kv--title{grid-template-columns:minmax(0, 1fr) auto}.hc-kv--title .hc-sect__title{margin:0;color:var(--lb-text-primary)}.hc-spark{display:block;width:100%;height:44px;margin-top:6px}.hc-spark__area{fill:color-mix(in srgb, var(--lb-primary-main) 18%, transparent)}.hc-spark__line{fill:none;stroke:var(--lb-primary-main);stroke-width:1.5;vector-effect:non-scaling-stroke}.hc-stage.is-compact{grid-template-columns:minmax(0, 1fr)}.hc-stage.is-compact .hc-nav,.hc-stage.is-compact .hc-metric--model,.hc-stage:is(.is-medium,.is-compact) .hc-rail,.hc-stage:is(.is-medium,.is-compact) .hc-id,.hc-stage:is(.is-medium,.is-compact) .hc-sqbtn--sm,.hc-stage:is(.is-medium,.is-compact) .hc-more{display:none}.hc-stage:is(.is-medium,.is-compact) .hc-body{grid-template-columns:minmax(0, 1fr)}.hc-stage:is(.is-medium,.is-compact) .hc-sqbtn--on{border-color:var(--lb-border-main);color:var(--lb-text-secondary)}@keyframes hc-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes hc-pulse{50%{opacity:0.35}}.hub-section{padding:clamp(56px, 7vw, 104px) 0 0}.hub-section__head{max-width:40rem;margin-bottom:clamp(24px, 3vw, 36px)}.hub .hub-h2{margin:0;font-family:var(--lb-font-display);font-size:clamp(1.75rem, 1.25rem + 1.3vw, 2.4rem);font-weight:400;line-height:1.1;letter-spacing:-0.022em;color:var(--lb-text-primary);text-wrap:balance}.hub .hub-h2--spaced{margin:clamp(40px, 5vw, 64px) 0 20px;font-size:clamp(1.4rem, 1.15rem + 0.7vw, 1.75rem)}.hub .hub-section__desc{max-width:36rem;margin:12px 0 0;font-size:1.0625rem;line-height:1.6;color:var(--lb-text-secondary)}.hub-paths{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:1px;overflow:hidden;border:1px solid var(--lb-divider);border-radius:14px;background:var(--lb-divider)}.hub .hub-path{display:flex;flex-direction:column;min-height:208px;padding:24px;background:var(--lb-bg-light);color:var(--lb-text-primary);transition:background-color var(--lb-duration-fast) var(--lb-ease)}.hub .hub-path:hover{background:color-mix(in srgb, var(--lb-action-hover) 60%, var(--lb-bg-light))}.hub-path__icon{color:var(--lb-text-secondary)}.hub-path__title{margin-top:28px;font-size:15.5px;font-weight:600;letter-spacing:-0.005em}.hub-path__desc{flex:1;margin-top:6px;font-size:14px;line-height:1.55;color:var(--lb-text-secondary)}.hub-path__cta{display:inline-flex;align-items:center;gap:6px;margin-top:20px;font-size:13.5px;font-weight:500;color:var(--lb-primary-main)}.hub-path__cta .hub-icon{transition:transform var(--lb-duration-fast) var(--lb-ease)}.hub .hub-path:hover .hub-path__cta .hub-icon{transform:translateX(3px)}.hub-split{display:grid;grid-template-columns:minmax(0, 0.82fr) minmax(0, 1.18fr);gap:clamp(28px, 5vw, 72px);align-items:center}.hub-links{display:flex;flex-wrap:wrap;gap:22px;margin-top:26px}.hub .hub-link{display:inline-flex;align-items:center;gap:6px;color:var(--lb-primary-main);font-size:14.5px;font-weight:500}.hub .hub-link .hub-icon{transition:transform var(--lb-duration-fast) var(--lb-ease)}.hub .hub-link:hover .hub-icon{transform:translateX(3px)}html .hub-split__code .code-group{margin:0;box-shadow:none}.hub-caps{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));column-gap:32px}.hub .hub-cap{display:flex;gap:12px;padding:18px 0 20px;border-top:1px solid var(--lb-divider);color:var(--lb-text-primary)}.hub-cap__icon{margin-top:2px;color:var(--lb-text-muted);transition:color var(--lb-duration-fast) var(--lb-ease)}.hub .hub-cap:hover .hub-cap__icon,.hub .hub-cap:hover .hub-cap__title{color:var(--lb-primary-main)}.hub-cap__title,.hub-band__title{display:flex;align-items:center;gap:6px;font-size:14.5px;font-weight:600;transition:color var(--lb-duration-fast) var(--lb-ease)}.hub-cap__text,.hub-band__text{display:block;margin-top:3px;font-size:13.5px;line-height:1.45;color:var(--lb-text-secondary)}.hub-band{display:grid;grid-template-columns:minmax(0, 0.9fr) minmax(0, 1.1fr);gap:clamp(28px, 5vw, 72px);padding:clamp(28px, 4vw, 52px);border:1px solid var(--lb-border-main);border-radius:18px;background:var(--lb-panel);color:var(--lb-text-primary)}.hub-band__copy{align-self:center}.hub-band__links{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));column-gap:28px}.hub .hub-band__link{display:block;padding:16px 0 18px;border-top:1px solid var(--lb-divider);color:var(--lb-text-primary)}.hub-band__title .hub-icon{color:var(--lb-text-muted);transition:transform var(--lb-duration-fast) var(--lb-ease)}.hub .hub-band__link:hover .hub-band__title{color:var(--lb-primary-main)}.hub .hub-band__link:hover .hub-band__title .hub-icon{transform:translateX(2px);color:var(--lb-primary-main)}.hub-foot{margin-top:clamp(64px, 8vw, 112px);padding:28px 0 44px;border-top:1px solid var(--lb-divider)}.hub-foot__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.hub-foot__brand{display:inline-flex;align-items:center;gap:8px;color:var(--lb-text-primary);font-size:14px;font-weight:600}.hub-foot__links{display:flex;flex-wrap:wrap;gap:8px 22px}.hub .hub-foot__links a{font-size:14px;color:var(--lb-text-secondary);transition:color var(--lb-duration-fast) var(--lb-ease)}.hub .hub-foot__links a:hover{color:var(--lb-text-primary)}.hub--embedded{margin-top:8px}.hub--embedded .hub-paths{grid-template-columns:repeat(3, minmax(0, 1fr))}.hub--embedded .hub-path{min-height:196px;background:var(--lb-panel)}.hub--embedded .hub-split{margin-top:clamp(40px, 5vw, 64px);padding:clamp(24px, 3vw, 36px);border:1px solid var(--lb-divider);border-radius:14px}.hub--embedded .hub-caps{grid-template-columns:repeat(3, minmax(0, 1fr))}@media (max-width: 1180px){.hub-hero__grid{grid-template-columns:minmax(0, 1fr);gap:clamp(40px, 6vw, 56px)}.hub-hero__copy{max-width:40rem}}@media (max-width: 1100px){.hub-paths{grid-template-columns:repeat(2, minmax(0, 1fr))}.hub-caps{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media (max-width: 1023px){.hub-split,.hub-band{grid-template-columns:minmax(0, 1fr)}}@media (max-width: 640px){.hub-paths,.hub--embedded .hub-paths,.hub-band__links{grid-template-columns:minmax(0, 1fr)}.hub-caps,.hub--embedded .hub-caps{grid-template-columns:repeat(2, minmax(0, 1fr))}.hub .hub-path,.hub--embedded .hub-path{min-height:0}.hub-path__title{margin-top:18px}.hub-hero__stage{padding:4px;border-radius:14px}}@media (prefers-reduced-motion: reduce){.hc-row,.hc-dot.is-live,.hub-agents__panel{animation:none}}"}],"page":{"pagePath":"api-reference/automations/create-a-paused-canonical-automation","slug":"/api-reference/automations/create-a-paused-canonical-automation","pageMetadata":{"title":"Create a paused canonical automation","description":"Creates a complete automation aggregate in the paused state after validating the pinned agent version, environment, and every trigger source.","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automations","href":"/api-reference/automations/create-a-paused-canonical-automation","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Creates a complete automation aggregate in the paused state after validating the pinned agent version, environment, and every trigger source.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":{"theme":"css-variables"},"config":{},"pageMetadata":{"title":"Create a paused canonical automation","description":"Creates a complete automation aggregate in the paused state after validating the pinned agent version, environment, and every trigger source.","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automations","href":"/api-reference/automations/create-a-paused-canonical-automation","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/labelbox-1db23ff4/9ed4bd14b1b0eec8/navbar.js"],"openApiReferenceData":{"operation":{"tags":["Automations"],"summary":"Create a paused canonical automation","description":"Creates a complete automation aggregate in the paused state after validating the pinned agent version, environment, and every trigger source.","operationId":"managedAgentsCreateAutomation","parameters":["3756d0fb-c0ea-4a80-9402-6ff9915c1ade","7a409910-4063-4e73-a303-a726cb3f0887","2858f6b2-77b1-4719-9fff-4112a08129e1"],"requestBody":"9c27349d-c12e-4cb0-96c5-3329e221e460","responses":{"201":"5e695ab9-c369-425c-8232-412089ebc2bd","400":"6726da74-00a5-4a73-add0-626a72e16b9b","401":"96550f15-5726-4c86-a1f8-b44a61b5453b","403":"91de840b-5888-46bf-ada1-15be5ea3b77a","404":"ccdef9ad-915b-40c1-abb8-d60a96141d6d","409":"08fbcc92-3758-41d1-a586-c5511e36a699","413":"ff2c517d-f7ea-4e2d-bd63-ebe7c0f08f5c","415":"19e921a4-e04c-494c-aa27-a63f0130a000","422":"af449c44-0d35-4134-a1b8-0a9ed90e21bb","429":"a20855f7-e1c3-4dcf-a754-b12fdd1cfba6","500":"6007a566-51ce-48b4-8fe0-fd7ebb1b66f8","502":"66ce0021-21db-4d11-b1de-2a120c72f716","503":"75258a44-3047-4e1e-84aa-b376bf6bfff1","504":"2e5f5569-ff7a-4b49-bf83-b4eb390a8e81"},"x-recursion-idempotency":{"strategy":"key-required"},"method":"post","type":"path","servers":["7c47fadb-74d3-46c1-81cb-247cda0c8e43"],"security":["2a60486f-e7c6-4c00-b6c9-cb98594a324d"],"path":"/managed-agents/v1/automations","baseUrlOptions":["https://api.recursion.labelbox.com"],"title":"Create a paused canonical automation","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"3756d0fb-c0ea-4a80-9402-6ff9915c1ade":{"description":"Replay-protection key in an organization-wide namespace shared by keyed mutations. It must contain 1 to 256 visible ASCII characters and be sent as exactly one header value. Request identity is the exact HTTP method, escaped path, raw query, and raw body bytes. For the legacy automation-run route only, the historical fingerprint ignores top-level JSON formatting and object-key order and removes the retired top-level idempotency_key field. The same request replays the original successful response; any different request returns 409 idempotency_conflict, and an active matching request returns 409 idempotency_in_progress. Completed receipts are retained for approximately 24 hours, pending claims may be reclaimed after approximately 1 hour, and no deduplication is guaranteed after expiry.","in":"header","name":"Idempotency-Key","required":true,"schema":{"description":"Replay-protection key in an organization-wide namespace shared by keyed mutations. It must contain 1 to 256 visible ASCII characters and be sent as exactly one header value. Request identity is the exact HTTP method, escaped path, raw query, and raw body bytes. For the legacy automation-run route only, the historical fingerprint ignores top-level JSON formatting and object-key order and removes the retired top-level idempotency_key field. The same request replays the original successful response; any different request returns 409 idempotency_conflict, and an active matching request returns 409 idempotency_in_progress. Completed receipts are retained for approximately 24 hours, pending claims may be reclaimed after approximately 1 hour, and no deduplication is guaranteed after expiry.","maxLength":256,"minLength":1,"pattern":"^[!-~]+$","type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"7a409910-4063-4e73-a303-a726cb3f0887":{"name":"x-tenant-id","in":"header","required":false,"description":"Optional tenant consistency check. When present, it must name the tenant bound to the API key, including when x-organization-id is `default`.","schema":{"type":"string","minLength":1,"isRequired":false,"description":"Optional tenant consistency check. When present, it must name the tenant bound to the API key, including when x-organization-id is `default`.","uniqueKey":"","typeLabel":"string"}},"2858f6b2-77b1-4719-9fff-4112a08129e1":{"name":"x-organization-id","in":"header","required":false,"description":"Organization in which to act. Required for a tenant-scoped API key. Optional for an organization-scoped key, where it must name that same organization. The value may be an organization id or `default`.","schema":{"type":"string","minLength":1,"isRequired":false,"description":"Organization in which to act. Required for a tenant-scoped API key. Optional for an organization-scoped key, where it must name that same organization. The value may be an organization id or `default`.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Writable shape for creating a canonical automation.","properties":{"agentId":{"description":"Managed agent selected by this automation.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"agentId","typeLabel":"string\u003cuuid>"},"agentVersionId":{"description":"Immutable agent version pinned for all admitted runs.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"agentVersionId","typeLabel":"string\u003cuuid>"},"displayName":{"description":"Human-readable automation name.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"displayName","typeLabel":"string"},"environmentId":{"description":"Execution environment selected for admitted sessions.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"environmentId","typeLabel":"string\u003cuuid>"},"initialPrompt":{"additionalProperties":false,"description":"Prompt definition frozen onto admitted runs.","properties":{"text":{"description":"Initial instruction supplied to every admitted run.","maxLength":65536,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"initialPrompt.text","typeLabel":"string"},"type":{"description":"Literal prompt text with no interpolation.","enum":["literal"],"type":"string","isRequired":true,"uniqueKey":"initialPrompt.type","typeLabel":"enum\u003cstring>"}},"required":["type","text"],"type":"object","isRequired":true,"uniqueKey":"initialPrompt","typeLabel":"object"},"triggers":{"description":"Complete trigger set for this automation aggregate.","items":{"oneOf":[{"type":"object","description":"Closed schedule-trigger configuration.","required":["triggerId","type","schedule","enabled"],"properties":{"enabled":{"description":"Whether this trigger may admit runs while the automation is active.","type":"boolean","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.enabled","typeLabel":"boolean"},"schedule":{"additionalProperties":false,"description":"Schedule timing and overlap policy.","properties":{"cron":{"description":"Five-field POSIX cron expression.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.cron","typeLabel":"string"},"timezone":{"description":"IANA timezone used to interpret the cron expression.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.timezone","typeLabel":"string"},"catchupWindowSeconds":{"oneOf":[{"default":900,"description":"Maximum age of a missed occurrence eligible for catch-up. Defaults to 900.","maximum":31622400,"minimum":10,"type":"null","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.catchupWindowSeconds.oneOf.0","typeLabel":"null"},{"default":900,"description":"Maximum age of a missed occurrence eligible for catch-up. Defaults to 900.","maximum":31622400,"minimum":10,"type":"integer","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.catchupWindowSeconds.oneOf.1","typeLabel":"integer"}],"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.catchupWindowSeconds","typeLabel":"null | integer"},"endAt":{"oneOf":[{"description":"Optional inclusive schedule end.","format":"date-time","type":"null","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.endAt.oneOf.0","typeLabel":"null"},{"description":"Optional inclusive schedule end.","format":"date-time","type":"string","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.endAt.oneOf.1","typeLabel":"string\u003cdate-time>"}],"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.endAt","typeLabel":"null | string\u003cdate-time>"},"jitterSeconds":{"oneOf":[{"default":10,"description":"Maximum deterministic occurrence jitter in seconds. Defaults to 10; zero disables jitter.","maximum":540,"minimum":0,"type":"null","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.jitterSeconds.oneOf.0","typeLabel":"null"},{"default":10,"description":"Maximum deterministic occurrence jitter in seconds. Defaults to 10; zero disables jitter.","maximum":540,"minimum":0,"type":"integer","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.jitterSeconds.oneOf.1","typeLabel":"integer"}],"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.jitterSeconds","typeLabel":"null | integer"},"overlapPolicy":{"default":"skip","description":"Behavior when an earlier occurrence is still running. Defaults to skip.","enum":["skip","buffer_one","buffer_all","allow_all","cancel_other"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.overlapPolicy","typeLabel":"enum\u003cstring>"},"startAt":{"oneOf":[{"description":"Optional inclusive schedule start.","format":"date-time","type":"null","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.startAt.oneOf.0","typeLabel":"null"},{"description":"Optional inclusive schedule start.","format":"date-time","type":"string","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.startAt.oneOf.1","typeLabel":"string\u003cdate-time>"}],"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.startAt","typeLabel":"null | string\u003cdate-time>"}},"required":["cron","timezone"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule","typeLabel":"object"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"Schedule trigger discriminant.","enum":["schedule"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"Closed Slack Events API trigger configuration.","required":["triggerId","type","eventSourceId","events","routing","botEvents","enabled"],"example":{"botEvents":{"mode":"ignore"},"enabled":true,"eventSourceId":"22222222-2222-4222-8222-222222222222","events":["message"],"routing":{"channelIds":[],"workspaceIds":[]},"triggerId":"11111111-1111-4111-8111-111111111111","type":"slack"},"properties":{"events":{"type":"array","items":{"enum":["message","app_mention","block_actions"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.events.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Channel event types that may match this trigger; an empty list is allowed when dmEnabled is true for DM-only access or enabled is false: message, app_mention, and block_actions (a click on a button with an action_id in a message the app posted; the click arrives in the clicked message's thread with the button's action_id, value, and label). Only newly posted messages match; edits and deletions never start runs.","maxItems":3,"minItems":1,"uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.events","typeLabel":"enum\u003cstring>[]"},"botEvents":{"additionalProperties":false,"description":"Explicit external-bot policy.","properties":{"mode":{"description":"Whether events authored by a provably different Slack app may match.","enum":["ignore","allow_external"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.botEvents.mode","typeLabel":"enum\u003cstring>"}},"required":["mode"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.botEvents","typeLabel":"object"},"enabled":{"description":"Whether this trigger may admit runs while the automation is active.","type":"boolean","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.enabled","typeLabel":"boolean"},"eventSourceId":{"description":"Compatible Slack Events API source.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.eventSourceId","typeLabel":"string\u003cuuid>"},"routing":{"additionalProperties":false,"description":"Workspace and channel constraints.","properties":{"channelIds":{"description":"Slack channel ids accepted by this trigger; an empty list accepts every channel.","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.routing.channelIds.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.routing.channelIds","typeLabel":"string[]"},"workspaceIds":{"description":"Slack workspace ids accepted by this trigger; an empty list accepts every workspace received by the source.","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.routing.workspaceIds.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.routing.workspaceIds","typeLabel":"string[]"}},"required":["workspaceIds","channelIds"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.routing","typeLabel":"object"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"Slack trigger discriminant.","enum":["slack"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"allowSharedChannels":{"default":false,"description":"Explicitly allow events from Slack Connect channels shared with other organizations. Defaults to false.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.1.allowSharedChannels","typeLabel":"boolean"},"continuation":{"default":"new_session","description":"When resume_thread, a later matching post in the same Slack thread is delivered to the thread's existing session instead of starting a new one. Defaults to new_session. Every Slack trigger of one automation must use the same value.","enum":["new_session","resume_thread"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.continuation","typeLabel":"enum\u003cstring>"},"dmEnabled":{"default":false,"description":"Offer this automation in the Slack DM picker. Only permitted callers may select it; channel routing and mention requirements do not apply to direct messages. Defaults to false.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.1.dmEnabled","typeLabel":"boolean"},"filters":{"additionalProperties":false,"description":"Optional conditions on the message. Omit to match every routed event.","properties":{"classifier":{"additionalProperties":false,"description":"AI filter: after the conditions above pass, a decision model answers one question about the message, and the answer decides whether the agent wakes. A message that mentions the agent always wakes it. Each evaluation is billed as a classifier call.","examples":[{"answers":[{"description":"A problem, a question, or a request for action.","value":"active_issue"},{"description":"A status update or FYI with no ask.","value":"informational"}],"mode":"preview","question":"Does this message report a problem or ask for help?","rule":{"conditions":[{"answer":"active_issue","atLeastPercent":80}],"when":"wake"},"send":"text_and_images"}],"properties":{"answers":{"description":"The answers the model chooses between.","items":{"additionalProperties":false,"description":"One answer an AI filter may choose.","properties":{"description":{"description":"What this answer means, as the model reads it.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.answers.items.[INDEX].description","typeLabel":"string"},"value":{"description":"Stable code for this answer, recorded on the run.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.answers.items.[INDEX].value","typeLabel":"string"}},"required":["value","description"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.answers.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":2,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.answers","typeLabel":"object[]"},"mode":{"description":"preview evaluates every message and records what the filter would have done, but always wakes the agent; on applies the rule, waking the agent or skipping the message.","enum":["preview","on"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.mode","typeLabel":"enum\u003cstring>"},"question":{"description":"The question the model answers about each message.","maxLength":1000,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.question","typeLabel":"string"},"rule":{"additionalProperties":false,"description":"When the filter wakes the agent or skips the message.","properties":{"conditions":{"description":"The conditions, any one of which is enough. Each names a different answer.","items":{"additionalProperties":false,"description":"One condition of an AI filter's rule.","properties":{"answer":{"description":"The answer value the condition looks at.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.rule.conditions.items.[INDEX].answer","typeLabel":"string"},"atLeastPercent":{"description":"Holds when the model gives the answer at least this probability, in whole percent from 5 to 95.","maximum":95,"minimum":5,"type":"integer","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.rule.conditions.items.[INDEX].atLeastPercent","typeLabel":"integer"}},"required":["answer","atLeastPercent"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.rule.conditions.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":1,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.rule.conditions","typeLabel":"object[]"},"when":{"description":"What the filter does when any condition holds. wake wakes the agent and skips the message otherwise, so a message no condition is sure about is skipped. skip skips the message and wakes the agent otherwise, so such a message wakes the agent.","enum":["wake","skip"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.rule.when","typeLabel":"enum\u003cstring>"}},"required":["when","conditions"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.rule","typeLabel":"object"},"send":{"description":"What the model sees: the message text with its PNG and JPEG attachments, or the text alone.","enum":["text_and_images","text"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.send","typeLabel":"enum\u003cstring>"}},"required":["mode","question","answers","rule","send"],"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier","typeLabel":"object"},"fromUserIds":{"description":"Authors whose messages may match, as listed by the connection's member catalog: a person's user id (U or W) or an app's bot id (B). Empty accepts anyone. A listed bot id lets that app's messages match even when botEvents.mode is ignore.","items":{"maxLength":256,"minLength":1,"pattern":"^[UWB][A-Z0-9]{2,63}$","type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.fromUserIds.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.fromUserIds","typeLabel":"string[]"},"ignoreThreadReplies":{"description":"Reject replies inside a thread; only top-level messages match.","type":"boolean","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.ignoreThreadReplies","typeLabel":"boolean"},"textContains":{"description":"The message must contain at least one of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.textContains.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.textContains","typeLabel":"string[]"},"textExcludes":{"description":"The message must contain none of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.textExcludes.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.textExcludes","typeLabel":"string[]"},"textMatches":{"description":"An RE2 regular expression the message must match, ignoring case.","maxLength":256,"type":"string","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.textMatches","typeLabel":"string"}},"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters","typeLabel":"object"},"firstResponse":{"default":"none","description":"When platform, the platform posts an acknowledgement, a reaction and a live status line in the thread while the agent works. Defaults to none. Every Slack trigger of one automation must use the same value.","enum":["none","platform"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.firstResponse","typeLabel":"enum\u003cstring>"},"memberDirectMessage":{"additionalProperties":false,"description":"Opt in to one member-authorized DM from a customer-owned Slack event source. Requires only message events, empty routing, ignored bots, resume_thread, no filters and no platform first response. A separate granted member credential is required to read or reply. Messages in this conversation resume one session; omission grants no member inbox access.","properties":{"channelId":{"description":"One existing private one-to-one conversation. Other conversations never match.","pattern":"^D[A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.memberDirectMessage.channelId","typeLabel":"string"},"fromUserId":{"description":"The other member permitted to invoke the agent in this conversation.","pattern":"^[UW][A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.memberDirectMessage.fromUserId","typeLabel":"string"},"memberUserId":{"description":"Member whose user authorization receives the DM and sends the reply.","pattern":"^[UW][A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.memberDirectMessage.memberUserId","typeLabel":"string"},"workspaceId":{"description":"Exact Slack workspace containing the member and conversation.","pattern":"^T[A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.memberDirectMessage.workspaceId","typeLabel":"string"}},"required":["workspaceId","memberUserId","channelId","fromUserId"],"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.1.memberDirectMessage","typeLabel":"object"},"mentionUserGroupId":{"description":"Only match a message that mentions this Slack user group by ID. Requires events to contain only message; a user-group mention does not emit app_mention.","pattern":"^S[A-Z0-9]{2,63}$","type":"string","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.1.mentionUserGroupId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","description":"Closed Slack Events API trigger configuration.","required":["triggerId","type","eventSourceId","events","routing","botEvents","enabled","dmEnabled"],"example":{"botEvents":{"mode":"ignore"},"enabled":true,"eventSourceId":"22222222-2222-4222-8222-222222222222","events":["message"],"routing":{"channelIds":[],"workspaceIds":[]},"triggerId":"11111111-1111-4111-8111-111111111111","type":"slack"},"properties":{"dmEnabled":{"type":"boolean","description":"Offer this automation in the Slack DM picker. Only permitted callers may select it; channel routing and mention requirements do not apply to direct messages. Defaults to false.","default":false,"enum":[true],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.dmEnabled","typeLabel":"enum\u003cboolean>"},"botEvents":{"additionalProperties":false,"description":"Explicit external-bot policy.","properties":{"mode":{"description":"Whether events authored by a provably different Slack app may match.","enum":["ignore","allow_external"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.botEvents.mode","typeLabel":"enum\u003cstring>"}},"required":["mode"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.botEvents","typeLabel":"object"},"enabled":{"description":"Whether this trigger may admit runs while the automation is active.","type":"boolean","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.enabled","typeLabel":"boolean"},"eventSourceId":{"description":"Compatible Slack Events API source.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.eventSourceId","typeLabel":"string\u003cuuid>"},"events":{"description":"Channel event types that may match this trigger; an empty list is allowed when dmEnabled is true for DM-only access or enabled is false: message, app_mention, and block_actions (a click on a button with an action_id in a message the app posted; the click arrives in the clicked message's thread with the button's action_id, value, and label). Only newly posted messages match; edits and deletions never start runs.","items":{"enum":["message","app_mention","block_actions"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.events.items.[INDEX]","typeLabel":"enum\u003cstring>"},"maxItems":3,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.events","typeLabel":"enum\u003cstring>[]"},"routing":{"additionalProperties":false,"description":"Workspace and channel constraints.","properties":{"channelIds":{"description":"Slack channel ids accepted by this trigger; an empty list accepts every channel.","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.routing.channelIds.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.routing.channelIds","typeLabel":"string[]"},"workspaceIds":{"description":"Slack workspace ids accepted by this trigger; an empty list accepts every workspace received by the source.","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.routing.workspaceIds.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.routing.workspaceIds","typeLabel":"string[]"}},"required":["workspaceIds","channelIds"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.routing","typeLabel":"object"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"Slack trigger discriminant.","enum":["slack"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"},"allowSharedChannels":{"default":false,"description":"Explicitly allow events from Slack Connect channels shared with other organizations. Defaults to false.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.2.allowSharedChannels","typeLabel":"boolean"},"continuation":{"default":"new_session","description":"When resume_thread, a later matching post in the same Slack thread is delivered to the thread's existing session instead of starting a new one. Defaults to new_session. Every Slack trigger of one automation must use the same value.","enum":["new_session","resume_thread"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.continuation","typeLabel":"enum\u003cstring>"},"filters":{"additionalProperties":false,"description":"Optional conditions on the message. Omit to match every routed event.","properties":{"classifier":{"additionalProperties":false,"description":"AI filter: after the conditions above pass, a decision model answers one question about the message, and the answer decides whether the agent wakes. A message that mentions the agent always wakes it. Each evaluation is billed as a classifier call.","examples":[{"answers":[{"description":"A problem, a question, or a request for action.","value":"active_issue"},{"description":"A status update or FYI with no ask.","value":"informational"}],"mode":"preview","question":"Does this message report a problem or ask for help?","rule":{"conditions":[{"answer":"active_issue","atLeastPercent":80}],"when":"wake"},"send":"text_and_images"}],"properties":{"answers":{"description":"The answers the model chooses between.","items":{"additionalProperties":false,"description":"One answer an AI filter may choose.","properties":{"description":{"description":"What this answer means, as the model reads it.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.answers.items.[INDEX].description","typeLabel":"string"},"value":{"description":"Stable code for this answer, recorded on the run.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.answers.items.[INDEX].value","typeLabel":"string"}},"required":["value","description"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.answers.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":2,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.answers","typeLabel":"object[]"},"mode":{"description":"preview evaluates every message and records what the filter would have done, but always wakes the agent; on applies the rule, waking the agent or skipping the message.","enum":["preview","on"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.mode","typeLabel":"enum\u003cstring>"},"question":{"description":"The question the model answers about each message.","maxLength":1000,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.question","typeLabel":"string"},"rule":{"additionalProperties":false,"description":"When the filter wakes the agent or skips the message.","properties":{"conditions":{"description":"The conditions, any one of which is enough. Each names a different answer.","items":{"additionalProperties":false,"description":"One condition of an AI filter's rule.","properties":{"answer":{"description":"The answer value the condition looks at.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.rule.conditions.items.[INDEX].answer","typeLabel":"string"},"atLeastPercent":{"description":"Holds when the model gives the answer at least this probability, in whole percent from 5 to 95.","maximum":95,"minimum":5,"type":"integer","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.rule.conditions.items.[INDEX].atLeastPercent","typeLabel":"integer"}},"required":["answer","atLeastPercent"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.rule.conditions.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":1,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.rule.conditions","typeLabel":"object[]"},"when":{"description":"What the filter does when any condition holds. wake wakes the agent and skips the message otherwise, so a message no condition is sure about is skipped. skip skips the message and wakes the agent otherwise, so such a message wakes the agent.","enum":["wake","skip"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.rule.when","typeLabel":"enum\u003cstring>"}},"required":["when","conditions"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.rule","typeLabel":"object"},"send":{"description":"What the model sees: the message text with its PNG and JPEG attachments, or the text alone.","enum":["text_and_images","text"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.send","typeLabel":"enum\u003cstring>"}},"required":["mode","question","answers","rule","send"],"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier","typeLabel":"object"},"fromUserIds":{"description":"Authors whose messages may match, as listed by the connection's member catalog: a person's user id (U or W) or an app's bot id (B). Empty accepts anyone. A listed bot id lets that app's messages match even when botEvents.mode is ignore.","items":{"maxLength":256,"minLength":1,"pattern":"^[UWB][A-Z0-9]{2,63}$","type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.fromUserIds.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.fromUserIds","typeLabel":"string[]"},"ignoreThreadReplies":{"description":"Reject replies inside a thread; only top-level messages match.","type":"boolean","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.ignoreThreadReplies","typeLabel":"boolean"},"textContains":{"description":"The message must contain at least one of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.textContains.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.textContains","typeLabel":"string[]"},"textExcludes":{"description":"The message must contain none of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.textExcludes.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.textExcludes","typeLabel":"string[]"},"textMatches":{"description":"An RE2 regular expression the message must match, ignoring case.","maxLength":256,"type":"string","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.textMatches","typeLabel":"string"}},"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters","typeLabel":"object"},"firstResponse":{"default":"none","description":"When platform, the platform posts an acknowledgement, a reaction and a live status line in the thread while the agent works. Defaults to none. Every Slack trigger of one automation must use the same value.","enum":["none","platform"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.firstResponse","typeLabel":"enum\u003cstring>"},"memberDirectMessage":{"additionalProperties":false,"description":"Opt in to one member-authorized DM from a customer-owned Slack event source. Requires only message events, empty routing, ignored bots, resume_thread, no filters and no platform first response. A separate granted member credential is required to read or reply. Messages in this conversation resume one session; omission grants no member inbox access.","properties":{"channelId":{"description":"One existing private one-to-one conversation. Other conversations never match.","pattern":"^D[A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.memberDirectMessage.channelId","typeLabel":"string"},"fromUserId":{"description":"The other member permitted to invoke the agent in this conversation.","pattern":"^[UW][A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.memberDirectMessage.fromUserId","typeLabel":"string"},"memberUserId":{"description":"Member whose user authorization receives the DM and sends the reply.","pattern":"^[UW][A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.memberDirectMessage.memberUserId","typeLabel":"string"},"workspaceId":{"description":"Exact Slack workspace containing the member and conversation.","pattern":"^T[A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.memberDirectMessage.workspaceId","typeLabel":"string"}},"required":["workspaceId","memberUserId","channelId","fromUserId"],"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.2.memberDirectMessage","typeLabel":"object"},"mentionUserGroupId":{"description":"Only match a message that mentions this Slack user group by ID. Requires events to contain only message; a user-group mention does not emit app_mention.","pattern":"^S[A-Z0-9]{2,63}$","type":"string","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.2.mentionUserGroupId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","description":"Closed Slack Events API trigger configuration.","required":["triggerId","type","eventSourceId","events","routing","botEvents","enabled"],"example":{"botEvents":{"mode":"ignore"},"enabled":true,"eventSourceId":"22222222-2222-4222-8222-222222222222","events":["message"],"routing":{"channelIds":[],"workspaceIds":[]},"triggerId":"11111111-1111-4111-8111-111111111111","type":"slack"},"properties":{"enabled":{"type":"boolean","description":"Whether this trigger may admit runs while the automation is active.","enum":[false],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.enabled","typeLabel":"enum\u003cboolean>"},"botEvents":{"additionalProperties":false,"description":"Explicit external-bot policy.","properties":{"mode":{"description":"Whether events authored by a provably different Slack app may match.","enum":["ignore","allow_external"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.botEvents.mode","typeLabel":"enum\u003cstring>"}},"required":["mode"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.botEvents","typeLabel":"object"},"eventSourceId":{"description":"Compatible Slack Events API source.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.eventSourceId","typeLabel":"string\u003cuuid>"},"events":{"description":"Channel event types that may match this trigger; an empty list is allowed when dmEnabled is true for DM-only access or enabled is false: message, app_mention, and block_actions (a click on a button with an action_id in a message the app posted; the click arrives in the clicked message's thread with the button's action_id, value, and label). Only newly posted messages match; edits and deletions never start runs.","items":{"enum":["message","app_mention","block_actions"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.events.items.[INDEX]","typeLabel":"enum\u003cstring>"},"maxItems":3,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.events","typeLabel":"enum\u003cstring>[]"},"routing":{"additionalProperties":false,"description":"Workspace and channel constraints.","properties":{"channelIds":{"description":"Slack channel ids accepted by this trigger; an empty list accepts every channel.","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.routing.channelIds.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.routing.channelIds","typeLabel":"string[]"},"workspaceIds":{"description":"Slack workspace ids accepted by this trigger; an empty list accepts every workspace received by the source.","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.routing.workspaceIds.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.routing.workspaceIds","typeLabel":"string[]"}},"required":["workspaceIds","channelIds"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.routing","typeLabel":"object"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"Slack trigger discriminant.","enum":["slack"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.type","typeLabel":"enum\u003cstring>"},"allowSharedChannels":{"default":false,"description":"Explicitly allow events from Slack Connect channels shared with other organizations. Defaults to false.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.3.allowSharedChannels","typeLabel":"boolean"},"continuation":{"default":"new_session","description":"When resume_thread, a later matching post in the same Slack thread is delivered to the thread's existing session instead of starting a new one. Defaults to new_session. Every Slack trigger of one automation must use the same value.","enum":["new_session","resume_thread"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.continuation","typeLabel":"enum\u003cstring>"},"dmEnabled":{"default":false,"description":"Offer this automation in the Slack DM picker. Only permitted callers may select it; channel routing and mention requirements do not apply to direct messages. Defaults to false.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.3.dmEnabled","typeLabel":"boolean"},"filters":{"additionalProperties":false,"description":"Optional conditions on the message. Omit to match every routed event.","properties":{"classifier":{"additionalProperties":false,"description":"AI filter: after the conditions above pass, a decision model answers one question about the message, and the answer decides whether the agent wakes. A message that mentions the agent always wakes it. Each evaluation is billed as a classifier call.","examples":[{"answers":[{"description":"A problem, a question, or a request for action.","value":"active_issue"},{"description":"A status update or FYI with no ask.","value":"informational"}],"mode":"preview","question":"Does this message report a problem or ask for help?","rule":{"conditions":[{"answer":"active_issue","atLeastPercent":80}],"when":"wake"},"send":"text_and_images"}],"properties":{"answers":{"description":"The answers the model chooses between.","items":{"additionalProperties":false,"description":"One answer an AI filter may choose.","properties":{"description":{"description":"What this answer means, as the model reads it.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.answers.items.[INDEX].description","typeLabel":"string"},"value":{"description":"Stable code for this answer, recorded on the run.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.answers.items.[INDEX].value","typeLabel":"string"}},"required":["value","description"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.answers.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":2,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.answers","typeLabel":"object[]"},"mode":{"description":"preview evaluates every message and records what the filter would have done, but always wakes the agent; on applies the rule, waking the agent or skipping the message.","enum":["preview","on"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.mode","typeLabel":"enum\u003cstring>"},"question":{"description":"The question the model answers about each message.","maxLength":1000,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.question","typeLabel":"string"},"rule":{"additionalProperties":false,"description":"When the filter wakes the agent or skips the message.","properties":{"conditions":{"description":"The conditions, any one of which is enough. Each names a different answer.","items":{"additionalProperties":false,"description":"One condition of an AI filter's rule.","properties":{"answer":{"description":"The answer value the condition looks at.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.rule.conditions.items.[INDEX].answer","typeLabel":"string"},"atLeastPercent":{"description":"Holds when the model gives the answer at least this probability, in whole percent from 5 to 95.","maximum":95,"minimum":5,"type":"integer","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.rule.conditions.items.[INDEX].atLeastPercent","typeLabel":"integer"}},"required":["answer","atLeastPercent"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.rule.conditions.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":1,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.rule.conditions","typeLabel":"object[]"},"when":{"description":"What the filter does when any condition holds. wake wakes the agent and skips the message otherwise, so a message no condition is sure about is skipped. skip skips the message and wakes the agent otherwise, so such a message wakes the agent.","enum":["wake","skip"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.rule.when","typeLabel":"enum\u003cstring>"}},"required":["when","conditions"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.rule","typeLabel":"object"},"send":{"description":"What the model sees: the message text with its PNG and JPEG attachments, or the text alone.","enum":["text_and_images","text"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.send","typeLabel":"enum\u003cstring>"}},"required":["mode","question","answers","rule","send"],"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier","typeLabel":"object"},"fromUserIds":{"description":"Authors whose messages may match, as listed by the connection's member catalog: a person's user id (U or W) or an app's bot id (B). Empty accepts anyone. A listed bot id lets that app's messages match even when botEvents.mode is ignore.","items":{"maxLength":256,"minLength":1,"pattern":"^[UWB][A-Z0-9]{2,63}$","type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.fromUserIds.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.fromUserIds","typeLabel":"string[]"},"ignoreThreadReplies":{"description":"Reject replies inside a thread; only top-level messages match.","type":"boolean","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.ignoreThreadReplies","typeLabel":"boolean"},"textContains":{"description":"The message must contain at least one of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.textContains.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.textContains","typeLabel":"string[]"},"textExcludes":{"description":"The message must contain none of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.textExcludes.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.textExcludes","typeLabel":"string[]"},"textMatches":{"description":"An RE2 regular expression the message must match, ignoring case.","maxLength":256,"type":"string","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.textMatches","typeLabel":"string"}},"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters","typeLabel":"object"},"firstResponse":{"default":"none","description":"When platform, the platform posts an acknowledgement, a reaction and a live status line in the thread while the agent works. Defaults to none. Every Slack trigger of one automation must use the same value.","enum":["none","platform"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.firstResponse","typeLabel":"enum\u003cstring>"},"memberDirectMessage":{"additionalProperties":false,"description":"Opt in to one member-authorized DM from a customer-owned Slack event source. Requires only message events, empty routing, ignored bots, resume_thread, no filters and no platform first response. A separate granted member credential is required to read or reply. Messages in this conversation resume one session; omission grants no member inbox access.","properties":{"channelId":{"description":"One existing private one-to-one conversation. Other conversations never match.","pattern":"^D[A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.memberDirectMessage.channelId","typeLabel":"string"},"fromUserId":{"description":"The other member permitted to invoke the agent in this conversation.","pattern":"^[UW][A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.memberDirectMessage.fromUserId","typeLabel":"string"},"memberUserId":{"description":"Member whose user authorization receives the DM and sends the reply.","pattern":"^[UW][A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.memberDirectMessage.memberUserId","typeLabel":"string"},"workspaceId":{"description":"Exact Slack workspace containing the member and conversation.","pattern":"^T[A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.memberDirectMessage.workspaceId","typeLabel":"string"}},"required":["workspaceId","memberUserId","channelId","fromUserId"],"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.3.memberDirectMessage","typeLabel":"object"},"mentionUserGroupId":{"description":"Only match a message that mentions this Slack user group by ID. Requires events to contain only message; a user-group mention does not emit app_mention.","pattern":"^S[A-Z0-9]{2,63}$","type":"string","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.3.mentionUserGroupId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","description":"Closed GitHub webhook trigger configuration.","required":["triggerId","type","eventSourceId","events","enabled"],"properties":{"enabled":{"description":"Whether this trigger may admit runs while the automation is active.","type":"boolean","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.enabled","typeLabel":"boolean"},"eventSourceId":{"description":"Compatible GitHub webhook source.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.eventSourceId","typeLabel":"string\u003cuuid>"},"events":{"description":"GitHub webhook event names that may match this trigger.","items":{"enum":["pull_request","pull_request_review","issue_comment","issues","workflow_run","push"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.events.items.[INDEX]","typeLabel":"enum\u003cstring>"},"maxItems":32,"minItems":1,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.events","typeLabel":"enum\u003cstring>[]"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"GitHub trigger discriminant.","enum":["github"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.type","typeLabel":"enum\u003cstring>"},"filters":{"additionalProperties":false,"description":"Optional conditions on the delivery body. Omit to match on event name alone.","properties":{"actions":{"description":"GitHub delivery action values that may match, such as opened, labeled, submitted, or completed. Empty accepts every action.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.actions.items.[INDEX]","typeLabel":"string"},"maxItems":16,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.actions","typeLabel":"string[]"},"addedLabels":{"description":"For labeled deliveries: the added label must be one of these.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.addedLabels.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.addedLabels","typeLabel":"string[]"},"baseBranches":{"description":"Pull request base branch globs. An asterisk matches any characters, including slashes; a question mark matches one character.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.baseBranches.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.baseBranches","typeLabel":"string[]"},"branches":{"description":"Branch globs for the pushed branch, the workflow run head branch, or the pull request head branch, with the same syntax as baseBranches.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.branches.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.branches","typeLabel":"string[]"},"commentOn":{"description":"For issue_comment deliveries: whether the comment is on a pull request or on an issue.","enum":["pull_request","issue"],"type":"string","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.commentOn","typeLabel":"enum\u003cstring>"},"conclusions":{"description":"For completed workflow runs: conclusions such as failure, success, or cancelled. Empty accepts any conclusion.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.conclusions.items.[INDEX]","typeLabel":"string"},"maxItems":8,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.conclusions","typeLabel":"string[]"},"excludeDrafts":{"description":"Reject draft pull requests.","type":"boolean","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.excludeDrafts","typeLabel":"boolean"},"ignoreBots":{"description":"Reject deliveries whose sender is a GitHub bot account.","type":"boolean","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.ignoreBots","typeLabel":"boolean"},"labelsAny":{"description":"Match only when the pull request or issue carries at least one of these labels.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.labelsAny.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.labelsAny","typeLabel":"string[]"},"labelsNone":{"description":"Reject when the pull request or issue carries any of these labels.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.labelsNone.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.labelsNone","typeLabel":"string[]"},"merged":{"description":"For closed pull requests: true matches merged, false matches closed without merging.","type":"boolean","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.merged","typeLabel":"boolean"},"repositories":{"description":"Repository full names (owner/name), compared case-insensitively. Empty accepts every repository.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.repositories.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.repositories","typeLabel":"string[]"},"reviewStates":{"description":"For submitted reviews: approved, changes_requested, or commented. Empty accepts any review.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.reviewStates.items.[INDEX]","typeLabel":"string"},"maxItems":3,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.reviewStates","typeLabel":"string[]"},"senders":{"description":"GitHub logins of the account that caused the delivery. Empty accepts anyone.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.senders.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.senders","typeLabel":"string[]"},"textContains":{"description":"The comment or review body, or else the pull request or issue title and body, must contain at least one of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.textContains.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.textContains","typeLabel":"string[]"},"textExcludes":{"description":"The comment or review body, or else the pull request or issue title and body, must contain none of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.textExcludes.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.textExcludes","typeLabel":"string[]"},"textMatches":{"description":"An RE2 regular expression the comment or review body, or else the pull request or issue title and body, must match, ignoring case.","maxLength":256,"type":"string","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.textMatches","typeLabel":"string"}},"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","description":"Closed custom-webhook trigger configuration.","required":["triggerId","type","eventSourceId","enabled"],"properties":{"enabled":{"description":"Whether this trigger may admit runs while the automation is active.","type":"boolean","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.enabled","typeLabel":"boolean"},"eventSourceId":{"description":"Compatible custom webhook source.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.eventSourceId","typeLabel":"string\u003cuuid>"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"Custom-webhook trigger discriminant.","enum":["webhook"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.type","typeLabel":"enum\u003cstring>"},"filters":{"additionalProperties":false,"description":"Optional body and event-type conditions. Omit to match every delivery from the source.","minProperties":1,"properties":{"eventTypes":{"description":"Event types that may match, compared exactly with the event type the sender named on the delivery (webhook when it named none). Each is at most 256 UTF-8 bytes, the limit ingress applies to the event type header.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.eventTypes.items.[INDEX]","typeLabel":"string"},"maxItems":20,"minItems":1,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.eventTypes","typeLabel":"string[]"},"fieldAbsent":{"description":"Body paths that must be absent.","items":{"additionalProperties":false,"description":"One presence condition on a custom webhook body. A key whose value is null is present.","properties":{"path":{"description":"Dot-separated path into the JSON body, such as data.level. Decimal segments index arrays.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldAbsent.items.[INDEX].path","typeLabel":"string"}},"required":["path"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldAbsent.items.[INDEX]","typeLabel":"object"},"maxItems":20,"minItems":1,"type":"array","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldAbsent","typeLabel":"object[]"},"fieldEquals":{"description":"Body values that must equal the given scalar.","items":{"additionalProperties":false,"description":"One equality condition on a custom webhook body.","properties":{"path":{"description":"Dot-separated path into the JSON body, such as data.level. Decimal segments index arrays.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldEquals.items.[INDEX].path","typeLabel":"string"},"value":{"description":"Expected scalar written as JSON text without quotes: a string as-is, a number, true, false, or null.","maxLength":1024,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldEquals.items.[INDEX].value","typeLabel":"string"}},"required":["path","value"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldEquals.items.[INDEX]","typeLabel":"object"},"maxItems":20,"minItems":1,"type":"array","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldEquals","typeLabel":"object[]"},"fieldExists":{"description":"Body paths that must be present.","items":{"additionalProperties":false,"description":"One presence condition on a custom webhook body. A key whose value is null is present.","properties":{"path":{"description":"Dot-separated path into the JSON body, such as data.level. Decimal segments index arrays.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldExists.items.[INDEX].path","typeLabel":"string"}},"required":["path"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldExists.items.[INDEX]","typeLabel":"object"},"maxItems":20,"minItems":1,"type":"array","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldExists","typeLabel":"object[]"},"fieldIn":{"description":"Body values that must equal one of the given scalars.","items":{"additionalProperties":false,"description":"One membership condition on a custom webhook body.","properties":{"path":{"description":"Dot-separated path into the JSON body, such as data.level. Decimal segments index arrays.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldIn.items.[INDEX].path","typeLabel":"string"},"values":{"description":"Accepted scalars, each written as JSON text without quotes like fieldEquals values. The body value must equal one of them.","items":{"maxLength":1024,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldIn.items.[INDEX].values.items.[INDEX]","typeLabel":"string"},"maxItems":20,"minItems":1,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldIn.items.[INDEX].values","typeLabel":"string[]"}},"required":["path","values"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldIn.items.[INDEX]","typeLabel":"object"},"maxItems":20,"minItems":1,"type":"array","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldIn","typeLabel":"object[]"}},"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","description":"Closed managed IMAP email trigger configuration.","required":["triggerId","type","eventSourceId","enabled"],"properties":{"enabled":{"description":"Whether this trigger may admit runs while the automation is active.","type":"boolean","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.enabled","typeLabel":"boolean"},"eventSourceId":{"description":"Organization-owned IMAP source monitored by RMA.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.eventSourceId","typeLabel":"string\u003cuuid>"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"New email in a managed IMAP mailbox.","enum":["imap"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.type","typeLabel":"enum\u003cstring>"},"filters":{"additionalProperties":false,"description":"Optional equality conditions on the email event body. Omit to match every new email.","properties":{"fieldEquals":{"description":"Conditions that must all hold.","items":{"additionalProperties":false,"description":"One equality condition on a custom webhook body.","properties":{"path":{"description":"Dot-separated path into the JSON body, such as data.level. Decimal segments index arrays.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.filters.fieldEquals.items.[INDEX].path","typeLabel":"string"},"value":{"description":"Expected scalar written as JSON text without quotes: a string as-is, a number, true, false, or null.","maxLength":1024,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.filters.fieldEquals.items.[INDEX].value","typeLabel":"string"}},"required":["path","value"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.6.filters.fieldEquals.items.[INDEX]","typeLabel":"object"},"maxItems":20,"minItems":1,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.filters.fieldEquals","typeLabel":"object[]"}},"required":["fieldEquals"],"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"triggers.items.[INDEX].oneOf.6.filters","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.6","typeLabel":"object"}],"uniqueKey":"triggers.items.[INDEX]","typeLabel":"object"},"maxItems":20,"type":"array","isRequired":true,"uniqueKey":"triggers","typeLabel":"object[]"},"metadata":{"additionalProperties":{"type":"string","uniqueKey":"metadata.additionalProperties","typeLabel":"string"},"description":"Caller-owned string labels stored with the automation and returned on reads, such as a marker naming the system that manages it. Never copied to runs or sessions. At most 32 entries; keys use letters, digits, '_', '.', and '-' up to 64 characters; values are 1-512 characters without control characters. Omit for none.","maxProperties":32,"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"metadata","typeLabel":"object"},"runDefaults":{"additionalProperties":false,"description":"Run defaults frozen onto admitted runs.","properties":{"credentialRefs":{"description":"Exact credential selection within vaultIds. Requires explicit vaultIds. Omit to grant all items in the selected vaults.","items":{"additionalProperties":false,"description":"An exact credential grant within a selected vault.","properties":{"credentialId":{"description":"Credential to grant to the session.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.credentialRefs.items.[INDEX].credentialId","typeLabel":"string"},"vaultId":{"description":"Selected vault containing the credential.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.credentialRefs.items.[INDEX].vaultId","typeLabel":"string"}},"required":["vaultId","credentialId"],"type":"object","uniqueKey":"runDefaults.credentialRefs.items.[INDEX]","typeLabel":"object"},"maxItems":500,"type":"array","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"runDefaults.credentialRefs","typeLabel":"object[]"},"metadata":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"runDefaults.metadata.oneOf.0.additionalProperties","typeLabel":"string"},"description":"String metadata copied to every admitted session. Omit or send null for none.","type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"runDefaults.metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"runDefaults.metadata.oneOf.1.additionalProperties","typeLabel":"string"},"description":"String metadata copied to every admitted session. Omit or send null for none.","type":"null","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"runDefaults.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"runDefaults.metadata","typeLabel":"object | null"},"outcome":{"additionalProperties":false,"description":"Pass/fail definition graded for every session this automation starts. Omit to inherit the pinned agent version's default rubric; the session runs ungraded when it has none.","properties":{"description":{"description":"The objective the evaluator measures each session against. At most 65536 UTF-8 bytes.","maxLength":65536,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.outcome.description","typeLabel":"string"},"rubric":{"description":"Inline markdown rubric the evaluator grades each session against, with independently checkable criteria. At most 256 KiB.","maxLength":262144,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.outcome.rubric","typeLabel":"string"},"evaluatorAgentId":{"description":"Agent that evaluates each session. Omit to use the pinned agent version's default evaluator, else the agent's managed grader.","format":"uuid","type":"string","x-recursion-omission":{"source":"pinned agent version's default evaluator","strategy":"derive"},"uniqueKey":"runDefaults.outcome.evaluatorAgentId","typeLabel":"string\u003cuuid>"},"maxIterations":{"default":5,"description":"Maximum grading passes per session. Omit for five; an automation outcome is always bounded.","minimum":1,"type":"integer","maximum":9007199254740991,"uniqueKey":"runDefaults.outcome.maxIterations","typeLabel":"integer"}},"required":["description","rubric"],"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"runDefaults.outcome","typeLabel":"object"},"output":{"additionalProperties":false,"description":"Where each run's agent saves its structured JSON result, which the run's result reads back. Omit to take the result from a JSON value in the agent's final message instead.","properties":{"path":{"description":"Path of the result file relative to the session's outputs directory, such as result.json. Each run's agent is told to save its final result there as a single JSON value. A plain relative path with no . or .. segments, at most 1024 bytes.","maxLength":1024,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.output.path","typeLabel":"string"}},"required":["path"],"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"runDefaults.output","typeLabel":"object"},"resources":{"description":"Files resolved and mounted when each session starts.","items":{"additionalProperties":false,"description":"A file from this organization, mounted at an explicit path for each automation session.","properties":{"fileId":{"description":"File to attach from this organization.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.resources.items.[INDEX].fileId","typeLabel":"string"},"mountPath":{"description":"Absolute mount path beneath the session files directory.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.resources.items.[INDEX].mountPath","typeLabel":"string"}},"required":["fileId","mountPath"],"type":"object","uniqueKey":"runDefaults.resources.items.[INDEX]","typeLabel":"object"},"maxItems":500,"type":"array","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"runDefaults.resources","typeLabel":"object[]"},"vaultIds":{"description":"Vaults available to each session. Omit to inherit the pinned agent defaults; an empty list grants no vault access.","items":{"type":"string","uniqueKey":"runDefaults.vaultIds.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"x-recursion-omission":{"strategy":"absent"},"uniqueKey":"runDefaults.vaultIds","typeLabel":"string[]"}},"type":"object","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"runDefaults","typeLabel":"object"}},"required":["displayName","agentId","agentVersionId","environmentId","initialPrompt","triggers"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"agentId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","agentVersionId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","displayName":"\u003cstring>","environmentId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","initialPrompt":{"text":"\u003cstring>","type":"literal"},"triggers":[{"enabled":true,"schedule":{"cron":"\u003cstring>","timezone":"\u003cstring>","catchupWindowSeconds":900,"endAt":"2023-11-07T05:31:56Z","jitterSeconds":10,"overlapPolicy":"skip","startAt":"2023-11-07T05:31:56Z"},"triggerId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"schedule"}],"metadata":{},"runDefaults":{"credentialRefs":[{"credentialId":"\u003cstring>","vaultId":"\u003cstring>"}],"metadata":{},"resources":[{"fileId":"\u003cstring>","mountPath":"\u003cstring>"}],"vaultIds":["\u003cstring>"]}}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"5e695ab9-c369-425c-8232-412089ebc2bd":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Full round-trippable canonical automation aggregate.","properties":{"agentId":{"description":"Managed agent selected by this automation.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"agentId","typeLabel":"string\u003cuuid>"},"agentVersionId":{"description":"Immutable agent version pinned for all admitted runs.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"agentVersionId","typeLabel":"string\u003cuuid>"},"automationId":{"description":"Stable canonical automation identifier.","format":"uuid","readOnly":true,"type":"string","isRequired":true,"uniqueKey":"automationId","typeLabel":"string\u003cuuid>"},"createdAt":{"description":"Time the automation was created.","format":"date-time","readOnly":true,"type":"string","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string\u003cdate-time>"},"displayName":{"description":"Human-readable automation name.","type":"string","isRequired":true,"uniqueKey":"displayName","typeLabel":"string"},"environmentId":{"description":"Execution environment selected for admitted sessions.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"environmentId","typeLabel":"string\u003cuuid>"},"initialPrompt":{"additionalProperties":false,"description":"Prompt definition frozen onto admitted runs.","properties":{"text":{"description":"Initial instruction supplied to every admitted run.","maxLength":65536,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"initialPrompt.text","typeLabel":"string"},"type":{"description":"Literal prompt text with no interpolation.","enum":["literal"],"type":"string","isRequired":true,"uniqueKey":"initialPrompt.type","typeLabel":"enum\u003cstring>"}},"required":["type","text"],"type":"object","isRequired":true,"uniqueKey":"initialPrompt","typeLabel":"object"},"revision":{"description":"Monotonic aggregate revision represented by the response ETag.","format":"int64","minimum":1,"readOnly":true,"type":"integer","maximum":9007199254740991,"isRequired":true,"uniqueKey":"revision","typeLabel":"integer\u003cint64>"},"runDefaults":{"additionalProperties":false,"description":"Run defaults frozen onto admitted runs.","properties":{"metadata":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"runDefaults.metadata.oneOf.0.additionalProperties","typeLabel":"string"},"description":"String metadata copied to every admitted session.","type":"object","isRequired":true,"uniqueKey":"runDefaults.metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"runDefaults.metadata.oneOf.1.additionalProperties","typeLabel":"string"},"description":"String metadata copied to every admitted session.","type":"null","isRequired":true,"uniqueKey":"runDefaults.metadata.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"runDefaults.metadata","typeLabel":"object | null"},"credentialRefs":{"description":"Exact credential selection within vaultIds. Requires explicit vaultIds. Omit to grant all items in the selected vaults.","items":{"additionalProperties":false,"description":"An exact credential grant within a selected vault.","properties":{"credentialId":{"description":"Credential to grant to the session.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.credentialRefs.items.[INDEX].credentialId","typeLabel":"string"},"vaultId":{"description":"Selected vault containing the credential.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.credentialRefs.items.[INDEX].vaultId","typeLabel":"string"}},"required":["vaultId","credentialId"],"type":"object","uniqueKey":"runDefaults.credentialRefs.items.[INDEX]","typeLabel":"object"},"maxItems":500,"type":"array","uniqueKey":"runDefaults.credentialRefs","typeLabel":"object[]"},"outcome":{"additionalProperties":false,"description":"Pass/fail definition graded for every session this automation starts. Omit to inherit the pinned agent version's default rubric; the session runs ungraded when it has none.","properties":{"description":{"description":"The objective the evaluator measures each session against. At most 65536 UTF-8 bytes.","maxLength":65536,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.outcome.description","typeLabel":"string"},"rubric":{"description":"Inline markdown rubric the evaluator grades each session against, with independently checkable criteria. At most 256 KiB.","maxLength":262144,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.outcome.rubric","typeLabel":"string"},"evaluatorAgentId":{"description":"Agent that evaluates each session. Omit to use the pinned agent version's default evaluator, else the agent's managed grader.","format":"uuid","type":"string","uniqueKey":"runDefaults.outcome.evaluatorAgentId","typeLabel":"string\u003cuuid>"},"maxIterations":{"default":5,"description":"Maximum grading passes per session. Omit for five; an automation outcome is always bounded.","minimum":1,"type":"integer","maximum":9007199254740991,"uniqueKey":"runDefaults.outcome.maxIterations","typeLabel":"integer"}},"required":["description","rubric"],"type":"object","uniqueKey":"runDefaults.outcome","typeLabel":"object"},"output":{"additionalProperties":false,"description":"Where each run's agent saves its structured JSON result, which the run's result reads back. Omit to take the result from a JSON value in the agent's final message instead.","properties":{"path":{"description":"Path of the result file relative to the session's outputs directory, such as result.json. Each run's agent is told to save its final result there as a single JSON value. A plain relative path with no . or .. segments, at most 1024 bytes.","maxLength":1024,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.output.path","typeLabel":"string"}},"required":["path"],"type":"object","uniqueKey":"runDefaults.output","typeLabel":"object"},"resources":{"description":"Files resolved and mounted when each session starts.","items":{"additionalProperties":false,"description":"A file from this organization, mounted at an explicit path for each automation session.","properties":{"fileId":{"description":"File to attach from this organization.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.resources.items.[INDEX].fileId","typeLabel":"string"},"mountPath":{"description":"Absolute mount path beneath the session files directory.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"runDefaults.resources.items.[INDEX].mountPath","typeLabel":"string"}},"required":["fileId","mountPath"],"type":"object","uniqueKey":"runDefaults.resources.items.[INDEX]","typeLabel":"object"},"maxItems":500,"type":"array","uniqueKey":"runDefaults.resources","typeLabel":"object[]"},"vaultIds":{"description":"Vaults available to each session. Omit to inherit the pinned agent defaults; an empty list grants no vault access.","items":{"type":"string","uniqueKey":"runDefaults.vaultIds.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"uniqueKey":"runDefaults.vaultIds","typeLabel":"string[]"}},"required":["metadata"],"type":"object","isRequired":true,"uniqueKey":"runDefaults","typeLabel":"object"},"status":{"description":"Lifecycle state. New automations start paused.","enum":["paused","active"],"readOnly":true,"type":"string","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"triggers":{"description":"Complete ordered trigger set.","items":{"oneOf":[{"type":"object","description":"Closed schedule-trigger configuration.","required":["triggerId","type","schedule","enabled"],"properties":{"enabled":{"description":"Whether this trigger may admit runs while the automation is active.","type":"boolean","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.enabled","typeLabel":"boolean"},"schedule":{"additionalProperties":false,"description":"Schedule timing and overlap policy.","properties":{"cron":{"description":"Five-field POSIX cron expression.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.cron","typeLabel":"string"},"timezone":{"description":"IANA timezone used to interpret the cron expression.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.timezone","typeLabel":"string"},"catchupWindowSeconds":{"oneOf":[{"default":900,"description":"Maximum age of a missed occurrence eligible for catch-up. Defaults to 900.","maximum":31622400,"minimum":10,"type":"null","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.catchupWindowSeconds.oneOf.0","typeLabel":"null"},{"default":900,"description":"Maximum age of a missed occurrence eligible for catch-up. Defaults to 900.","maximum":31622400,"minimum":10,"type":"integer","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.catchupWindowSeconds.oneOf.1","typeLabel":"integer"}],"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.catchupWindowSeconds","typeLabel":"null | integer"},"endAt":{"oneOf":[{"description":"Optional inclusive schedule end.","format":"date-time","type":"null","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.endAt.oneOf.0","typeLabel":"null"},{"description":"Optional inclusive schedule end.","format":"date-time","type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.endAt.oneOf.1","typeLabel":"string\u003cdate-time>"}],"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.endAt","typeLabel":"null | string\u003cdate-time>"},"jitterSeconds":{"oneOf":[{"default":10,"description":"Maximum deterministic occurrence jitter in seconds. Defaults to 10; zero disables jitter.","maximum":540,"minimum":0,"type":"null","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.jitterSeconds.oneOf.0","typeLabel":"null"},{"default":10,"description":"Maximum deterministic occurrence jitter in seconds. Defaults to 10; zero disables jitter.","maximum":540,"minimum":0,"type":"integer","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.jitterSeconds.oneOf.1","typeLabel":"integer"}],"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.jitterSeconds","typeLabel":"null | integer"},"overlapPolicy":{"default":"skip","description":"Behavior when an earlier occurrence is still running. Defaults to skip.","enum":["skip","buffer_one","buffer_all","allow_all","cancel_other"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.overlapPolicy","typeLabel":"enum\u003cstring>"},"startAt":{"oneOf":[{"description":"Optional inclusive schedule start.","format":"date-time","type":"null","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.startAt.oneOf.0","typeLabel":"null"},{"description":"Optional inclusive schedule start.","format":"date-time","type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.startAt.oneOf.1","typeLabel":"string\u003cdate-time>"}],"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule.startAt","typeLabel":"null | string\u003cdate-time>"}},"required":["cron","timezone"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.schedule","typeLabel":"object"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"Schedule trigger discriminant.","enum":["schedule"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"Closed Slack Events API trigger configuration.","required":["triggerId","type","eventSourceId","events","routing","botEvents","enabled"],"example":{"botEvents":{"mode":"ignore"},"enabled":true,"eventSourceId":"22222222-2222-4222-8222-222222222222","events":["message"],"routing":{"channelIds":[],"workspaceIds":[]},"triggerId":"11111111-1111-4111-8111-111111111111","type":"slack"},"properties":{"events":{"type":"array","items":{"enum":["message","app_mention","block_actions"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.events.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Channel event types that may match this trigger; an empty list is allowed when dmEnabled is true for DM-only access or enabled is false: message, app_mention, and block_actions (a click on a button with an action_id in a message the app posted; the click arrives in the clicked message's thread with the button's action_id, value, and label). Only newly posted messages match; edits and deletions never start runs.","maxItems":3,"minItems":1,"uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.events","typeLabel":"enum\u003cstring>[]"},"botEvents":{"additionalProperties":false,"description":"Explicit external-bot policy.","properties":{"mode":{"description":"Whether events authored by a provably different Slack app may match.","enum":["ignore","allow_external"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.botEvents.mode","typeLabel":"enum\u003cstring>"}},"required":["mode"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.botEvents","typeLabel":"object"},"enabled":{"description":"Whether this trigger may admit runs while the automation is active.","type":"boolean","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.enabled","typeLabel":"boolean"},"eventSourceId":{"description":"Compatible Slack Events API source.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.eventSourceId","typeLabel":"string\u003cuuid>"},"routing":{"additionalProperties":false,"description":"Workspace and channel constraints.","properties":{"channelIds":{"description":"Slack channel ids accepted by this trigger; an empty list accepts every channel.","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.routing.channelIds.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.routing.channelIds","typeLabel":"string[]"},"workspaceIds":{"description":"Slack workspace ids accepted by this trigger; an empty list accepts every workspace received by the source.","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.routing.workspaceIds.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.routing.workspaceIds","typeLabel":"string[]"}},"required":["workspaceIds","channelIds"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.routing","typeLabel":"object"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"Slack trigger discriminant.","enum":["slack"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"allowSharedChannels":{"default":false,"description":"Explicitly allow events from Slack Connect channels shared with other organizations. Defaults to false.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.1.allowSharedChannels","typeLabel":"boolean"},"continuation":{"default":"new_session","description":"When resume_thread, a later matching post in the same Slack thread is delivered to the thread's existing session instead of starting a new one. Defaults to new_session. Every Slack trigger of one automation must use the same value.","enum":["new_session","resume_thread"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.continuation","typeLabel":"enum\u003cstring>"},"dmEnabled":{"default":false,"description":"Offer this automation in the Slack DM picker. Only permitted callers may select it; channel routing and mention requirements do not apply to direct messages. Defaults to false.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.1.dmEnabled","typeLabel":"boolean"},"filters":{"additionalProperties":false,"description":"Optional conditions on the message. Omit to match every routed event.","properties":{"classifier":{"additionalProperties":false,"description":"AI filter: after the conditions above pass, a decision model answers one question about the message, and the answer decides whether the agent wakes. A message that mentions the agent always wakes it. Each evaluation is billed as a classifier call.","examples":[{"answers":[{"description":"A problem, a question, or a request for action.","value":"active_issue"},{"description":"A status update or FYI with no ask.","value":"informational"}],"mode":"preview","question":"Does this message report a problem or ask for help?","rule":{"conditions":[{"answer":"active_issue","atLeastPercent":80}],"when":"wake"},"send":"text_and_images"}],"properties":{"answers":{"description":"The answers the model chooses between.","items":{"additionalProperties":false,"description":"One answer an AI filter may choose.","properties":{"description":{"description":"What this answer means, as the model reads it.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.answers.items.[INDEX].description","typeLabel":"string"},"value":{"description":"Stable code for this answer, recorded on the run.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.answers.items.[INDEX].value","typeLabel":"string"}},"required":["value","description"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.answers.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":2,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.answers","typeLabel":"object[]"},"mode":{"description":"preview evaluates every message and records what the filter would have done, but always wakes the agent; on applies the rule, waking the agent or skipping the message.","enum":["preview","on"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.mode","typeLabel":"enum\u003cstring>"},"question":{"description":"The question the model answers about each message.","maxLength":1000,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.question","typeLabel":"string"},"rule":{"additionalProperties":false,"description":"When the filter wakes the agent or skips the message.","properties":{"conditions":{"description":"The conditions, any one of which is enough. Each names a different answer.","items":{"additionalProperties":false,"description":"One condition of an AI filter's rule.","properties":{"answer":{"description":"The answer value the condition looks at.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.rule.conditions.items.[INDEX].answer","typeLabel":"string"},"atLeastPercent":{"description":"Holds when the model gives the answer at least this probability, in whole percent from 5 to 95.","maximum":95,"minimum":5,"type":"integer","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.rule.conditions.items.[INDEX].atLeastPercent","typeLabel":"integer"}},"required":["answer","atLeastPercent"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.rule.conditions.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":1,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.rule.conditions","typeLabel":"object[]"},"when":{"description":"What the filter does when any condition holds. wake wakes the agent and skips the message otherwise, so a message no condition is sure about is skipped. skip skips the message and wakes the agent otherwise, so such a message wakes the agent.","enum":["wake","skip"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.rule.when","typeLabel":"enum\u003cstring>"}},"required":["when","conditions"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.rule","typeLabel":"object"},"send":{"description":"What the model sees: the message text with its PNG and JPEG attachments, or the text alone.","enum":["text_and_images","text"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier.send","typeLabel":"enum\u003cstring>"}},"required":["mode","question","answers","rule","send"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.classifier","typeLabel":"object"},"fromUserIds":{"description":"Authors whose messages may match, as listed by the connection's member catalog: a person's user id (U or W) or an app's bot id (B). Empty accepts anyone. A listed bot id lets that app's messages match even when botEvents.mode is ignore.","items":{"maxLength":256,"minLength":1,"pattern":"^[UWB][A-Z0-9]{2,63}$","type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.fromUserIds.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.fromUserIds","typeLabel":"string[]"},"ignoreThreadReplies":{"description":"Reject replies inside a thread; only top-level messages match.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.ignoreThreadReplies","typeLabel":"boolean"},"textContains":{"description":"The message must contain at least one of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.textContains.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.textContains","typeLabel":"string[]"},"textExcludes":{"description":"The message must contain none of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.textExcludes.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.textExcludes","typeLabel":"string[]"},"textMatches":{"description":"An RE2 regular expression the message must match, ignoring case.","maxLength":256,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters.textMatches","typeLabel":"string"}},"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.1.filters","typeLabel":"object"},"firstResponse":{"default":"none","description":"When platform, the platform posts an acknowledgement, a reaction and a live status line in the thread while the agent works. Defaults to none. Every Slack trigger of one automation must use the same value.","enum":["none","platform"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.firstResponse","typeLabel":"enum\u003cstring>"},"memberDirectMessage":{"additionalProperties":false,"description":"Opt in to one member-authorized DM from a customer-owned Slack event source. Requires only message events, empty routing, ignored bots, resume_thread, no filters and no platform first response. A separate granted member credential is required to read or reply. Messages in this conversation resume one session; omission grants no member inbox access.","properties":{"channelId":{"description":"One existing private one-to-one conversation. Other conversations never match.","pattern":"^D[A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.memberDirectMessage.channelId","typeLabel":"string"},"fromUserId":{"description":"The other member permitted to invoke the agent in this conversation.","pattern":"^[UW][A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.memberDirectMessage.fromUserId","typeLabel":"string"},"memberUserId":{"description":"Member whose user authorization receives the DM and sends the reply.","pattern":"^[UW][A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.memberDirectMessage.memberUserId","typeLabel":"string"},"workspaceId":{"description":"Exact Slack workspace containing the member and conversation.","pattern":"^T[A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.1.memberDirectMessage.workspaceId","typeLabel":"string"}},"required":["workspaceId","memberUserId","channelId","fromUserId"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.1.memberDirectMessage","typeLabel":"object"},"mentionUserGroupId":{"description":"Only match a message that mentions this Slack user group by ID. Requires events to contain only message; a user-group mention does not emit app_mention.","pattern":"^S[A-Z0-9]{2,63}$","type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.1.mentionUserGroupId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","description":"Closed Slack Events API trigger configuration.","required":["triggerId","type","eventSourceId","events","routing","botEvents","enabled","dmEnabled"],"example":{"botEvents":{"mode":"ignore"},"enabled":true,"eventSourceId":"22222222-2222-4222-8222-222222222222","events":["message"],"routing":{"channelIds":[],"workspaceIds":[]},"triggerId":"11111111-1111-4111-8111-111111111111","type":"slack"},"properties":{"dmEnabled":{"type":"boolean","description":"Offer this automation in the Slack DM picker. Only permitted callers may select it; channel routing and mention requirements do not apply to direct messages. Defaults to false.","default":false,"enum":[true],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.dmEnabled","typeLabel":"enum\u003cboolean>"},"botEvents":{"additionalProperties":false,"description":"Explicit external-bot policy.","properties":{"mode":{"description":"Whether events authored by a provably different Slack app may match.","enum":["ignore","allow_external"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.botEvents.mode","typeLabel":"enum\u003cstring>"}},"required":["mode"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.botEvents","typeLabel":"object"},"enabled":{"description":"Whether this trigger may admit runs while the automation is active.","type":"boolean","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.enabled","typeLabel":"boolean"},"eventSourceId":{"description":"Compatible Slack Events API source.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.eventSourceId","typeLabel":"string\u003cuuid>"},"events":{"description":"Channel event types that may match this trigger; an empty list is allowed when dmEnabled is true for DM-only access or enabled is false: message, app_mention, and block_actions (a click on a button with an action_id in a message the app posted; the click arrives in the clicked message's thread with the button's action_id, value, and label). Only newly posted messages match; edits and deletions never start runs.","items":{"enum":["message","app_mention","block_actions"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.events.items.[INDEX]","typeLabel":"enum\u003cstring>"},"maxItems":3,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.events","typeLabel":"enum\u003cstring>[]"},"routing":{"additionalProperties":false,"description":"Workspace and channel constraints.","properties":{"channelIds":{"description":"Slack channel ids accepted by this trigger; an empty list accepts every channel.","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.routing.channelIds.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.routing.channelIds","typeLabel":"string[]"},"workspaceIds":{"description":"Slack workspace ids accepted by this trigger; an empty list accepts every workspace received by the source.","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.routing.workspaceIds.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.routing.workspaceIds","typeLabel":"string[]"}},"required":["workspaceIds","channelIds"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.routing","typeLabel":"object"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"Slack trigger discriminant.","enum":["slack"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"},"allowSharedChannels":{"default":false,"description":"Explicitly allow events from Slack Connect channels shared with other organizations. Defaults to false.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.2.allowSharedChannels","typeLabel":"boolean"},"continuation":{"default":"new_session","description":"When resume_thread, a later matching post in the same Slack thread is delivered to the thread's existing session instead of starting a new one. Defaults to new_session. Every Slack trigger of one automation must use the same value.","enum":["new_session","resume_thread"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.continuation","typeLabel":"enum\u003cstring>"},"filters":{"additionalProperties":false,"description":"Optional conditions on the message. Omit to match every routed event.","properties":{"classifier":{"additionalProperties":false,"description":"AI filter: after the conditions above pass, a decision model answers one question about the message, and the answer decides whether the agent wakes. A message that mentions the agent always wakes it. Each evaluation is billed as a classifier call.","examples":[{"answers":[{"description":"A problem, a question, or a request for action.","value":"active_issue"},{"description":"A status update or FYI with no ask.","value":"informational"}],"mode":"preview","question":"Does this message report a problem or ask for help?","rule":{"conditions":[{"answer":"active_issue","atLeastPercent":80}],"when":"wake"},"send":"text_and_images"}],"properties":{"answers":{"description":"The answers the model chooses between.","items":{"additionalProperties":false,"description":"One answer an AI filter may choose.","properties":{"description":{"description":"What this answer means, as the model reads it.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.answers.items.[INDEX].description","typeLabel":"string"},"value":{"description":"Stable code for this answer, recorded on the run.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.answers.items.[INDEX].value","typeLabel":"string"}},"required":["value","description"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.answers.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":2,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.answers","typeLabel":"object[]"},"mode":{"description":"preview evaluates every message and records what the filter would have done, but always wakes the agent; on applies the rule, waking the agent or skipping the message.","enum":["preview","on"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.mode","typeLabel":"enum\u003cstring>"},"question":{"description":"The question the model answers about each message.","maxLength":1000,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.question","typeLabel":"string"},"rule":{"additionalProperties":false,"description":"When the filter wakes the agent or skips the message.","properties":{"conditions":{"description":"The conditions, any one of which is enough. Each names a different answer.","items":{"additionalProperties":false,"description":"One condition of an AI filter's rule.","properties":{"answer":{"description":"The answer value the condition looks at.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.rule.conditions.items.[INDEX].answer","typeLabel":"string"},"atLeastPercent":{"description":"Holds when the model gives the answer at least this probability, in whole percent from 5 to 95.","maximum":95,"minimum":5,"type":"integer","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.rule.conditions.items.[INDEX].atLeastPercent","typeLabel":"integer"}},"required":["answer","atLeastPercent"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.rule.conditions.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":1,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.rule.conditions","typeLabel":"object[]"},"when":{"description":"What the filter does when any condition holds. wake wakes the agent and skips the message otherwise, so a message no condition is sure about is skipped. skip skips the message and wakes the agent otherwise, so such a message wakes the agent.","enum":["wake","skip"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.rule.when","typeLabel":"enum\u003cstring>"}},"required":["when","conditions"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.rule","typeLabel":"object"},"send":{"description":"What the model sees: the message text with its PNG and JPEG attachments, or the text alone.","enum":["text_and_images","text"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier.send","typeLabel":"enum\u003cstring>"}},"required":["mode","question","answers","rule","send"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.classifier","typeLabel":"object"},"fromUserIds":{"description":"Authors whose messages may match, as listed by the connection's member catalog: a person's user id (U or W) or an app's bot id (B). Empty accepts anyone. A listed bot id lets that app's messages match even when botEvents.mode is ignore.","items":{"maxLength":256,"minLength":1,"pattern":"^[UWB][A-Z0-9]{2,63}$","type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.fromUserIds.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.fromUserIds","typeLabel":"string[]"},"ignoreThreadReplies":{"description":"Reject replies inside a thread; only top-level messages match.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.ignoreThreadReplies","typeLabel":"boolean"},"textContains":{"description":"The message must contain at least one of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.textContains.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.textContains","typeLabel":"string[]"},"textExcludes":{"description":"The message must contain none of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.textExcludes.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.textExcludes","typeLabel":"string[]"},"textMatches":{"description":"An RE2 regular expression the message must match, ignoring case.","maxLength":256,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters.textMatches","typeLabel":"string"}},"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.2.filters","typeLabel":"object"},"firstResponse":{"default":"none","description":"When platform, the platform posts an acknowledgement, a reaction and a live status line in the thread while the agent works. Defaults to none. Every Slack trigger of one automation must use the same value.","enum":["none","platform"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.firstResponse","typeLabel":"enum\u003cstring>"},"memberDirectMessage":{"additionalProperties":false,"description":"Opt in to one member-authorized DM from a customer-owned Slack event source. Requires only message events, empty routing, ignored bots, resume_thread, no filters and no platform first response. A separate granted member credential is required to read or reply. Messages in this conversation resume one session; omission grants no member inbox access.","properties":{"channelId":{"description":"One existing private one-to-one conversation. Other conversations never match.","pattern":"^D[A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.memberDirectMessage.channelId","typeLabel":"string"},"fromUserId":{"description":"The other member permitted to invoke the agent in this conversation.","pattern":"^[UW][A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.memberDirectMessage.fromUserId","typeLabel":"string"},"memberUserId":{"description":"Member whose user authorization receives the DM and sends the reply.","pattern":"^[UW][A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.memberDirectMessage.memberUserId","typeLabel":"string"},"workspaceId":{"description":"Exact Slack workspace containing the member and conversation.","pattern":"^T[A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.2.memberDirectMessage.workspaceId","typeLabel":"string"}},"required":["workspaceId","memberUserId","channelId","fromUserId"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.2.memberDirectMessage","typeLabel":"object"},"mentionUserGroupId":{"description":"Only match a message that mentions this Slack user group by ID. Requires events to contain only message; a user-group mention does not emit app_mention.","pattern":"^S[A-Z0-9]{2,63}$","type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.2.mentionUserGroupId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","description":"Closed Slack Events API trigger configuration.","required":["triggerId","type","eventSourceId","events","routing","botEvents","enabled"],"example":{"botEvents":{"mode":"ignore"},"enabled":true,"eventSourceId":"22222222-2222-4222-8222-222222222222","events":["message"],"routing":{"channelIds":[],"workspaceIds":[]},"triggerId":"11111111-1111-4111-8111-111111111111","type":"slack"},"properties":{"enabled":{"type":"boolean","description":"Whether this trigger may admit runs while the automation is active.","enum":[false],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.enabled","typeLabel":"enum\u003cboolean>"},"botEvents":{"additionalProperties":false,"description":"Explicit external-bot policy.","properties":{"mode":{"description":"Whether events authored by a provably different Slack app may match.","enum":["ignore","allow_external"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.botEvents.mode","typeLabel":"enum\u003cstring>"}},"required":["mode"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.botEvents","typeLabel":"object"},"eventSourceId":{"description":"Compatible Slack Events API source.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.eventSourceId","typeLabel":"string\u003cuuid>"},"events":{"description":"Channel event types that may match this trigger; an empty list is allowed when dmEnabled is true for DM-only access or enabled is false: message, app_mention, and block_actions (a click on a button with an action_id in a message the app posted; the click arrives in the clicked message's thread with the button's action_id, value, and label). Only newly posted messages match; edits and deletions never start runs.","items":{"enum":["message","app_mention","block_actions"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.events.items.[INDEX]","typeLabel":"enum\u003cstring>"},"maxItems":3,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.events","typeLabel":"enum\u003cstring>[]"},"routing":{"additionalProperties":false,"description":"Workspace and channel constraints.","properties":{"channelIds":{"description":"Slack channel ids accepted by this trigger; an empty list accepts every channel.","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.routing.channelIds.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.routing.channelIds","typeLabel":"string[]"},"workspaceIds":{"description":"Slack workspace ids accepted by this trigger; an empty list accepts every workspace received by the source.","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.routing.workspaceIds.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.routing.workspaceIds","typeLabel":"string[]"}},"required":["workspaceIds","channelIds"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.routing","typeLabel":"object"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"Slack trigger discriminant.","enum":["slack"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.type","typeLabel":"enum\u003cstring>"},"allowSharedChannels":{"default":false,"description":"Explicitly allow events from Slack Connect channels shared with other organizations. Defaults to false.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.3.allowSharedChannels","typeLabel":"boolean"},"continuation":{"default":"new_session","description":"When resume_thread, a later matching post in the same Slack thread is delivered to the thread's existing session instead of starting a new one. Defaults to new_session. Every Slack trigger of one automation must use the same value.","enum":["new_session","resume_thread"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.continuation","typeLabel":"enum\u003cstring>"},"dmEnabled":{"default":false,"description":"Offer this automation in the Slack DM picker. Only permitted callers may select it; channel routing and mention requirements do not apply to direct messages. Defaults to false.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.3.dmEnabled","typeLabel":"boolean"},"filters":{"additionalProperties":false,"description":"Optional conditions on the message. Omit to match every routed event.","properties":{"classifier":{"additionalProperties":false,"description":"AI filter: after the conditions above pass, a decision model answers one question about the message, and the answer decides whether the agent wakes. A message that mentions the agent always wakes it. Each evaluation is billed as a classifier call.","examples":[{"answers":[{"description":"A problem, a question, or a request for action.","value":"active_issue"},{"description":"A status update or FYI with no ask.","value":"informational"}],"mode":"preview","question":"Does this message report a problem or ask for help?","rule":{"conditions":[{"answer":"active_issue","atLeastPercent":80}],"when":"wake"},"send":"text_and_images"}],"properties":{"answers":{"description":"The answers the model chooses between.","items":{"additionalProperties":false,"description":"One answer an AI filter may choose.","properties":{"description":{"description":"What this answer means, as the model reads it.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.answers.items.[INDEX].description","typeLabel":"string"},"value":{"description":"Stable code for this answer, recorded on the run.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.answers.items.[INDEX].value","typeLabel":"string"}},"required":["value","description"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.answers.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":2,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.answers","typeLabel":"object[]"},"mode":{"description":"preview evaluates every message and records what the filter would have done, but always wakes the agent; on applies the rule, waking the agent or skipping the message.","enum":["preview","on"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.mode","typeLabel":"enum\u003cstring>"},"question":{"description":"The question the model answers about each message.","maxLength":1000,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.question","typeLabel":"string"},"rule":{"additionalProperties":false,"description":"When the filter wakes the agent or skips the message.","properties":{"conditions":{"description":"The conditions, any one of which is enough. Each names a different answer.","items":{"additionalProperties":false,"description":"One condition of an AI filter's rule.","properties":{"answer":{"description":"The answer value the condition looks at.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.rule.conditions.items.[INDEX].answer","typeLabel":"string"},"atLeastPercent":{"description":"Holds when the model gives the answer at least this probability, in whole percent from 5 to 95.","maximum":95,"minimum":5,"type":"integer","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.rule.conditions.items.[INDEX].atLeastPercent","typeLabel":"integer"}},"required":["answer","atLeastPercent"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.rule.conditions.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":1,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.rule.conditions","typeLabel":"object[]"},"when":{"description":"What the filter does when any condition holds. wake wakes the agent and skips the message otherwise, so a message no condition is sure about is skipped. skip skips the message and wakes the agent otherwise, so such a message wakes the agent.","enum":["wake","skip"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.rule.when","typeLabel":"enum\u003cstring>"}},"required":["when","conditions"],"type":"object","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.rule","typeLabel":"object"},"send":{"description":"What the model sees: the message text with its PNG and JPEG attachments, or the text alone.","enum":["text_and_images","text"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier.send","typeLabel":"enum\u003cstring>"}},"required":["mode","question","answers","rule","send"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.classifier","typeLabel":"object"},"fromUserIds":{"description":"Authors whose messages may match, as listed by the connection's member catalog: a person's user id (U or W) or an app's bot id (B). Empty accepts anyone. A listed bot id lets that app's messages match even when botEvents.mode is ignore.","items":{"maxLength":256,"minLength":1,"pattern":"^[UWB][A-Z0-9]{2,63}$","type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.fromUserIds.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.fromUserIds","typeLabel":"string[]"},"ignoreThreadReplies":{"description":"Reject replies inside a thread; only top-level messages match.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.ignoreThreadReplies","typeLabel":"boolean"},"textContains":{"description":"The message must contain at least one of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.textContains.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.textContains","typeLabel":"string[]"},"textExcludes":{"description":"The message must contain none of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.textExcludes.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.textExcludes","typeLabel":"string[]"},"textMatches":{"description":"An RE2 regular expression the message must match, ignoring case.","maxLength":256,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters.textMatches","typeLabel":"string"}},"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.3.filters","typeLabel":"object"},"firstResponse":{"default":"none","description":"When platform, the platform posts an acknowledgement, a reaction and a live status line in the thread while the agent works. Defaults to none. Every Slack trigger of one automation must use the same value.","enum":["none","platform"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.firstResponse","typeLabel":"enum\u003cstring>"},"memberDirectMessage":{"additionalProperties":false,"description":"Opt in to one member-authorized DM from a customer-owned Slack event source. Requires only message events, empty routing, ignored bots, resume_thread, no filters and no platform first response. A separate granted member credential is required to read or reply. Messages in this conversation resume one session; omission grants no member inbox access.","properties":{"channelId":{"description":"One existing private one-to-one conversation. Other conversations never match.","pattern":"^D[A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.memberDirectMessage.channelId","typeLabel":"string"},"fromUserId":{"description":"The other member permitted to invoke the agent in this conversation.","pattern":"^[UW][A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.memberDirectMessage.fromUserId","typeLabel":"string"},"memberUserId":{"description":"Member whose user authorization receives the DM and sends the reply.","pattern":"^[UW][A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.memberDirectMessage.memberUserId","typeLabel":"string"},"workspaceId":{"description":"Exact Slack workspace containing the member and conversation.","pattern":"^T[A-Z0-9]{2,63}$","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.3.memberDirectMessage.workspaceId","typeLabel":"string"}},"required":["workspaceId","memberUserId","channelId","fromUserId"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.3.memberDirectMessage","typeLabel":"object"},"mentionUserGroupId":{"description":"Only match a message that mentions this Slack user group by ID. Requires events to contain only message; a user-group mention does not emit app_mention.","pattern":"^S[A-Z0-9]{2,63}$","type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.3.mentionUserGroupId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","description":"Closed GitHub webhook trigger configuration.","required":["triggerId","type","eventSourceId","events","enabled"],"properties":{"enabled":{"description":"Whether this trigger may admit runs while the automation is active.","type":"boolean","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.enabled","typeLabel":"boolean"},"eventSourceId":{"description":"Compatible GitHub webhook source.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.eventSourceId","typeLabel":"string\u003cuuid>"},"events":{"description":"GitHub webhook event names that may match this trigger.","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.events.items.[INDEX]","typeLabel":"string"},"maxItems":32,"minItems":1,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.events","typeLabel":"string[]"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"GitHub trigger discriminant.","enum":["github"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.type","typeLabel":"enum\u003cstring>"},"filters":{"additionalProperties":false,"description":"Optional conditions on the delivery body. Omit to match on event name alone.","properties":{"actions":{"description":"GitHub delivery action values that may match, such as opened, labeled, submitted, or completed. Empty accepts every action.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.actions.items.[INDEX]","typeLabel":"string"},"maxItems":16,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.actions","typeLabel":"string[]"},"addedLabels":{"description":"For labeled deliveries: the added label must be one of these.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.addedLabels.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.addedLabels","typeLabel":"string[]"},"baseBranches":{"description":"Pull request base branch globs. An asterisk matches any characters, including slashes; a question mark matches one character.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.baseBranches.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.baseBranches","typeLabel":"string[]"},"branches":{"description":"Branch globs for the pushed branch, the workflow run head branch, or the pull request head branch, with the same syntax as baseBranches.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.branches.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.branches","typeLabel":"string[]"},"commentOn":{"description":"For issue_comment deliveries: whether the comment is on a pull request or on an issue.","enum":["pull_request","issue"],"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.commentOn","typeLabel":"enum\u003cstring>"},"conclusions":{"description":"For completed workflow runs: conclusions such as failure, success, or cancelled. Empty accepts any conclusion.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.conclusions.items.[INDEX]","typeLabel":"string"},"maxItems":8,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.conclusions","typeLabel":"string[]"},"excludeDrafts":{"description":"Reject draft pull requests.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.excludeDrafts","typeLabel":"boolean"},"ignoreBots":{"description":"Reject deliveries whose sender is a GitHub bot account.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.ignoreBots","typeLabel":"boolean"},"labelsAny":{"description":"Match only when the pull request or issue carries at least one of these labels.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.labelsAny.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.labelsAny","typeLabel":"string[]"},"labelsNone":{"description":"Reject when the pull request or issue carries any of these labels.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.labelsNone.items.[INDEX]","typeLabel":"string"},"maxItems":50,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.labelsNone","typeLabel":"string[]"},"merged":{"description":"For closed pull requests: true matches merged, false matches closed without merging.","type":"boolean","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.merged","typeLabel":"boolean"},"repositories":{"description":"Repository full names (owner/name), compared case-insensitively. Empty accepts every repository.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.repositories.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.repositories","typeLabel":"string[]"},"reviewStates":{"description":"For submitted reviews: approved, changes_requested, or commented. Empty accepts any review.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.reviewStates.items.[INDEX]","typeLabel":"string"},"maxItems":3,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.reviewStates","typeLabel":"string[]"},"senders":{"description":"GitHub logins of the account that caused the delivery. Empty accepts anyone.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.senders.items.[INDEX]","typeLabel":"string"},"maxItems":100,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.senders","typeLabel":"string[]"},"textContains":{"description":"The comment or review body, or else the pull request or issue title and body, must contain at least one of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.textContains.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.textContains","typeLabel":"string[]"},"textExcludes":{"description":"The comment or review body, or else the pull request or issue title and body, must contain none of these phrases, ignoring case.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.textExcludes.items.[INDEX]","typeLabel":"string"},"maxItems":20,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.textExcludes","typeLabel":"string[]"},"textMatches":{"description":"An RE2 regular expression the comment or review body, or else the pull request or issue title and body, must match, ignoring case.","maxLength":256,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters.textMatches","typeLabel":"string"}},"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.4.filters","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","description":"Closed custom-webhook trigger configuration.","required":["triggerId","type","eventSourceId","enabled"],"properties":{"enabled":{"description":"Whether this trigger may admit runs while the automation is active.","type":"boolean","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.enabled","typeLabel":"boolean"},"eventSourceId":{"description":"Compatible custom webhook source.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.eventSourceId","typeLabel":"string\u003cuuid>"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"Custom-webhook trigger discriminant.","enum":["webhook"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.type","typeLabel":"enum\u003cstring>"},"filters":{"additionalProperties":false,"description":"Optional body and event-type conditions. Omit to match every delivery from the source.","properties":{"eventTypes":{"description":"Event types that may match, compared exactly with the event type the sender named on the delivery (webhook when it named none). Each is at most 256 UTF-8 bytes, the limit ingress applies to the event type header.","items":{"maxLength":256,"minLength":1,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.eventTypes.items.[INDEX]","typeLabel":"string"},"maxItems":20,"minItems":1,"type":"array","uniqueItems":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.eventTypes","typeLabel":"string[]"},"fieldAbsent":{"description":"Body paths that must be absent.","items":{"additionalProperties":false,"description":"One presence condition on a custom webhook body. A key whose value is null is present.","properties":{"path":{"description":"Dot-separated path into the JSON body, such as data.level. Decimal segments index arrays.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldAbsent.items.[INDEX].path","typeLabel":"string"}},"required":["path"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldAbsent.items.[INDEX]","typeLabel":"object"},"maxItems":20,"minItems":1,"type":"array","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldAbsent","typeLabel":"object[]"},"fieldEquals":{"description":"Body values that must equal the given scalar.","items":{"additionalProperties":false,"description":"One equality condition on a custom webhook body.","properties":{"path":{"description":"Dot-separated path into the JSON body, such as data.level. Decimal segments index arrays.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldEquals.items.[INDEX].path","typeLabel":"string"},"value":{"description":"Expected scalar written as JSON text without quotes: a string as-is, a number, true, false, or null.","maxLength":1024,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldEquals.items.[INDEX].value","typeLabel":"string"}},"required":["path","value"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldEquals.items.[INDEX]","typeLabel":"object"},"maxItems":20,"minItems":1,"type":"array","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldEquals","typeLabel":"object[]"},"fieldExists":{"description":"Body paths that must be present.","items":{"additionalProperties":false,"description":"One presence condition on a custom webhook body. A key whose value is null is present.","properties":{"path":{"description":"Dot-separated path into the JSON body, such as data.level. Decimal segments index arrays.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldExists.items.[INDEX].path","typeLabel":"string"}},"required":["path"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldExists.items.[INDEX]","typeLabel":"object"},"maxItems":20,"minItems":1,"type":"array","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldExists","typeLabel":"object[]"},"fieldIn":{"description":"Body values that must equal one of the given scalars.","items":{"additionalProperties":false,"description":"One membership condition on a custom webhook body.","properties":{"path":{"description":"Dot-separated path into the JSON body, such as data.level. Decimal segments index arrays.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldIn.items.[INDEX].path","typeLabel":"string"},"values":{"description":"Accepted scalars, each written as JSON text without quotes like fieldEquals values. The body value must equal one of them.","items":{"maxLength":1024,"type":"string","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldIn.items.[INDEX].values.items.[INDEX]","typeLabel":"string"},"maxItems":20,"minItems":1,"type":"array","uniqueItems":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldIn.items.[INDEX].values","typeLabel":"string[]"}},"required":["path","values"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldIn.items.[INDEX]","typeLabel":"object"},"maxItems":20,"minItems":1,"type":"array","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters.fieldIn","typeLabel":"object[]"}},"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.5.filters","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","description":"Closed managed IMAP email trigger configuration.","required":["triggerId","type","eventSourceId","enabled"],"properties":{"enabled":{"description":"Whether this trigger may admit runs while the automation is active.","type":"boolean","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.enabled","typeLabel":"boolean"},"eventSourceId":{"description":"Organization-owned IMAP source monitored by RMA.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.eventSourceId","typeLabel":"string\u003cuuid>"},"triggerId":{"description":"Caller-generated stable trigger identifier.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.triggerId","typeLabel":"string\u003cuuid>"},"type":{"description":"New email in a managed IMAP mailbox.","enum":["imap"],"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.type","typeLabel":"enum\u003cstring>"},"filters":{"additionalProperties":false,"description":"Optional equality conditions on the email event body. Omit to match every new email.","properties":{"fieldEquals":{"description":"Conditions that must all hold.","items":{"additionalProperties":false,"description":"One equality condition on a custom webhook body.","properties":{"path":{"description":"Dot-separated path into the JSON body, such as data.level. Decimal segments index arrays.","maxLength":256,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.filters.fieldEquals.items.[INDEX].path","typeLabel":"string"},"value":{"description":"Expected scalar written as JSON text without quotes: a string as-is, a number, true, false, or null.","maxLength":1024,"type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.filters.fieldEquals.items.[INDEX].value","typeLabel":"string"}},"required":["path","value"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.6.filters.fieldEquals.items.[INDEX]","typeLabel":"object"},"maxItems":20,"minItems":1,"type":"array","isRequired":true,"uniqueKey":"triggers.items.[INDEX].oneOf.6.filters.fieldEquals","typeLabel":"object[]"}},"required":["fieldEquals"],"type":"object","uniqueKey":"triggers.items.[INDEX].oneOf.6.filters","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"triggers.items.[INDEX].oneOf.6","typeLabel":"object"}],"uniqueKey":"triggers.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"triggers","typeLabel":"object[]"},"updatedAt":{"description":"Time the aggregate was last changed.","format":"date-time","readOnly":true,"type":"string","isRequired":true,"uniqueKey":"updatedAt","typeLabel":"string\u003cdate-time>"},"metadata":{"additionalProperties":{"type":"string","uniqueKey":"metadata.additionalProperties","typeLabel":"string"},"description":"Caller-owned string labels stored with the automation. Absent when none were set.","type":"object","uniqueKey":"metadata","typeLabel":"object"}},"required":["automationId","displayName","agentId","agentVersionId","environmentId","initialPrompt","runDefaults","triggers","status","revision","createdAt","updatedAt"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"agentId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","agentVersionId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","automationId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","createdAt":"2023-11-07T05:31:56Z","displayName":"\u003cstring>","environmentId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","initialPrompt":{"text":"\u003cstring>","type":"literal"},"revision":4503599627370496,"runDefaults":{"metadata":{},"credentialRefs":[{"credentialId":"\u003cstring>","vaultId":"\u003cstring>"}],"outcome":{"description":"\u003cstring>","rubric":"\u003cstring>","evaluatorAgentId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","maxIterations":5},"output":{"path":"\u003cstring>"},"resources":[{"fileId":"\u003cstring>","mountPath":"\u003cstring>"}],"vaultIds":["\u003cstring>"]},"status":"paused","triggers":[{"enabled":true,"schedule":{"cron":"\u003cstring>","timezone":"\u003cstring>","catchupWindowSeconds":900,"endAt":"2023-11-07T05:31:56Z","jitterSeconds":10,"overlapPolicy":"skip","startAt":"2023-11-07T05:31:56Z"},"triggerId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"schedule"}],"updatedAt":"2023-11-07T05:31:56Z","metadata":{}}}},"exampleType":"generated"}},"description":"Full round-trippable canonical automation aggregate.","headers":{"ETag":{"description":"Strong validator for this resource revision.","schema":{"type":"string"},"style":"simple"},"Idempotency-Replayed":{"description":"True when this response replays an earlier completed request.","schema":{"type":"boolean"},"style":"simple"},"Location":{"description":"Relative URL of the created resource.","schema":{"type":"string"},"style":"simple"},"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"6726da74-00a5-4a73-add0-626a72e16b9b":{"description":"Bad Request.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["invalid_json","invalid_request"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["invalid_json"],"isRequired":true,"uniqueKey":"oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.0.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.0.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.0.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.0.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.0.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.0.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.0.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.0.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.0.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["invalid_json","invalid_request"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["invalid_request"],"isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.1.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.1.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.1.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.1.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.1.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.1.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.1.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.1.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.1.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"invalid_json","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"96550f15-5726-4c86-a1f8-b44a61b5453b":{"description":"Unauthorized.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["unauthorized"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["unauthorized"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"unauthorized","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"91de840b-5888-46bf-ada1-15be5ea3b77a":{"description":"Forbidden.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["forbidden"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["forbidden"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"forbidden","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"ccdef9ad-915b-40c1-abb8-d60a96141d6d":{"description":"Not Found.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["not_found"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["not_found"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"not_found","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"08fbcc92-3758-41d1-a586-c5511e36a699":{"headers":{"Retry-After":{"description":"When present, delay in seconds or an HTTP-date after which the caller may retry; absence supplies no retry advice.","schema":{"type":"string"},"style":"simple"},"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"description":"Conflict.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["automation_trigger_id_in_use","conflict","idempotency_conflict","idempotency_in_progress"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["automation_trigger_id_in_use"],"isRequired":true,"uniqueKey":"oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.0.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.0.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.0.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.0.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.0.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.0.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.0.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.0.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.0.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["automation_trigger_id_in_use","conflict","idempotency_conflict","idempotency_in_progress"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["conflict"],"isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.1.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.1.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.1.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.1.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.1.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.1.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.1.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.1.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.1.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["automation_trigger_id_in_use","conflict","idempotency_conflict","idempotency_in_progress"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["idempotency_conflict"],"isRequired":true,"uniqueKey":"oneOf.2.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.2.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.2.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.2.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.2.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.2.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.2.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.2.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.2.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.2.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.2.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.2","typeLabel":"object"},{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["automation_trigger_id_in_use","conflict","idempotency_conflict","idempotency_in_progress"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["idempotency_in_progress"],"isRequired":true,"uniqueKey":"oneOf.3.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.3.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.3.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.3.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.3.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.3.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.3.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.3.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.3.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.3.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.3.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.3.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.3.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.3.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.3.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.3.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.3.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.3","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"automation_trigger_id_in_use","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"exampleType":"generated"},"ff2c517d-f7ea-4e2d-bd63-ebe7c0f08f5c":{"description":"Payload Too Large.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["payload_too_large"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["payload_too_large"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"payload_too_large","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"19e921a4-e04c-494c-aa27-a63f0130a000":{"description":"Unsupported Media Type.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["unsupported_media_type"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["unsupported_media_type"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"unsupported_media_type","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"af449c44-0d35-4134-a1b8-0a9ed90e21bb":{"description":"Unprocessable Entity.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["automation_event_source_invalid","automation_reference_invalid"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["automation_event_source_invalid"],"isRequired":true,"uniqueKey":"oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.0.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.0.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.0.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.0.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.0.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.0.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.0.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.0.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.0.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["automation_event_source_invalid","automation_reference_invalid"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["automation_reference_invalid"],"isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.1.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.1.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.1.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.1.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.1.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.1.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.1.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.1.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.1.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"automation_event_source_invalid","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"a20855f7-e1c3-4dcf-a754-b12fdd1cfba6":{"headers":{"Retry-After":{"description":"When to retry, as delay seconds or an HTTP date.","schema":{"type":"string"}},"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"description":"Too Many Requests.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["rate_limit_exceeded"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["rate_limit_exceeded"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"rate_limit_exceeded","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"exampleType":"generated"},"6007a566-51ce-48b4-8fe0-fd7ebb1b66f8":{"description":"Internal Server Error.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["internal_error"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["internal_error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"internal_error","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"66ce0021-21db-4d11-b1de-2a120c72f716":{"description":"A dependent service returned an invalid response.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["bad_gateway"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["bad_gateway"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"bad_gateway","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"75258a44-3047-4e1e-84aa-b376bf6bfff1":{"description":"Service Unavailable.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["automations_unconfigured","idempotency_unavailable","managed_agents_unavailable","service_unavailable"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["automations_unconfigured"],"isRequired":true,"uniqueKey":"oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.0.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.0.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.0.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.0.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.0.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.0.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.0.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.0.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.0.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["automations_unconfigured","idempotency_unavailable","managed_agents_unavailable","service_unavailable"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["idempotency_unavailable"],"isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.1.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.1.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.1.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.1.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.1.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.1.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.1.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.1.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.1.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["automations_unconfigured","idempotency_unavailable","managed_agents_unavailable","service_unavailable"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["managed_agents_unavailable"],"isRequired":true,"uniqueKey":"oneOf.2.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.2.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.2.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.2.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.2.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.2.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.2.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.2.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.2.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.2.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.2.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.2","typeLabel":"object"},{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["automations_unconfigured","idempotency_unavailable","managed_agents_unavailable","service_unavailable"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["service_unavailable"],"isRequired":true,"uniqueKey":"oneOf.3.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.3.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.3.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.3.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.3.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.3.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.3.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.3.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.3.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.3.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.3.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.3.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.3.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.3.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.3.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.3.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.3.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.3","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"automations_unconfigured","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"2e5f5569-ff7a-4b49-bf83-b4eb390a8e81":{"headers":{"Retry-After":{"description":"When to retry, as delay seconds or an HTTP date.","schema":{"type":"string"}},"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"description":"A dependent service timed out.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["gateway_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["gateway_timeout"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"gateway_timeout","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"2a60486f-e7c6-4c00-b6c9-cb98594a324d":{"bearerAuth":{"type":"http","scheme":"bearer","description":"A Recursion API key, created in the console under API keys.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"7c47fadb-74d3-46c1-81cb-247cda0c8e43":{"url":"https://api.recursion.labelbox.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"A Recursion API key, created in the console under API keys.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"A Recursion API key, created in the console under API keys.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"recursion/openapi.yaml"},"subdomain":"labelbox-1db23ff4","siteName":"Labelbox","title":"Create a paused canonical automation - Labelbox","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T09:10:00.948Z","originalFileLocation":"api-reference/automations/create-a-paused-canonical-automation.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Creates a complete automation aggregate in the paused state after validating the pinned agent version, environment, and every trigger source.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Labelbox\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a paused canonical automation - Labelbox\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a complete automation aggregate in the paused state after validating the pinned agent version, environment, and every trigger source.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Labelbox\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.labelbox.com/api-reference/automations/create-a-paused-canonical-automation\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://labelbox-1db23ff4.mintlify.site/_mintlify/api/og/v2?division=Automations\u0026amp;title=Create+a+paused+canonical+automation\u0026amp;description=Creates+a+complete+automation+aggregate+in+the+paused+state+after+validating+the+pinned+agent+version%2C+environment%2C+and+every+trigger+source.\u0026amp;theme=f571ec5c82cb5a5bd7bfc07f\u0026amp;signature=03d952612e7d93ad4f967feab72cb04475de99f0e5be75422b64986f3219b904\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create a paused canonical automation - Labelbox\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a complete automation aggregate in the paused state after validating the pinned agent version, environment, and every trigger source.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://labelbox-1db23ff4.mintlify.site/_mintlify/api/og/v2?division=Automations\u0026amp;title=Create+a+paused+canonical+automation\u0026amp;description=Creates+a+complete+automation+aggregate+in+the+paused+state+after+validating+the+pinned+agent+version%2C+environment%2C+and+every+trigger+source.\u0026amp;theme=f571ec5c82cb5a5bd7bfc07f\u0026amp;signature=03d952612e7d93ad4f967feab72cb04475de99f0e5be75422b64986f3219b904\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Labelbox\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#36707F\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.labelbox.com/api-reference/automations/create-a-paused-canonical-automation\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/automations/create-a-paused-canonical-automation.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.labelbox.com/#organization\",\"name\":\"Labelbox\",\"url\":\"https://docs.labelbox.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/labelbox-1db23ff4/badqlfNjN52ySAbU/logo/light.svg?fit=max\u0026auto=format\u0026n=badqlfNjN52ySAbU\u0026q=85\u0026s=2e7592619836dadfb7384597f9e48bec\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.labelbox.com#website\",\"name\":\"Labelbox\",\"url\":\"https://docs.labelbox.com\",\"publisher\":{\"@id\":\"https://docs.labelbox.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.labelbox.com/api-reference/automations/create-a-paused-canonical-automation#webpage\",\"url\":\"https://docs.labelbox.com/api-reference/automations/create-a-paused-canonical-automation\",\"name\":\"Create a paused canonical automation\",\"description\":\"Creates a complete automation aggregate in the paused state after validating the pinned agent version, environment, and every trigger source.\",\"dateModified\":\"2026-11-06T09:10:00.948Z\",\"isPartOf\":{\"@id\":\"https://docs.labelbox.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.labelbox.com/api-reference/automations/create-a-paused-canonical-automation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.labelbox.com/api-reference/automations/create-a-paused-canonical-automation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.labelbox.com/api-reference/environments/list-environments\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automations\",\"item\":\"https://docs.labelbox.com/api-reference/automations/list-canonical-automations\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create a paused canonical automation\",\"item\":\"https://docs.labelbox.com/api-reference/automations/create-a-paused-canonical-automation\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.labelbox.com/api-reference/automations/create-a-paused-canonical-automation#apireference\",\"headline\":\"Create a paused canonical automation\",\"name\":\"Create a paused canonical automation\",\"description\":\"Creates a complete automation aggregate in the paused state after validating the pinned agent version, environment, and every trigger source.\",\"url\":\"https://docs.labelbox.com/api-reference/automations/create-a-paused-canonical-automation\",\"mainEntityOfPage\":{\"@id\":\"https://docs.labelbox.com/api-reference/automations/create-a-paused-canonical-automation#webpage\"},\"dateModified\":\"2026-11-06T09:10:00.948Z\",\"publisher\":{\"@id\":\"https://docs.labelbox.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.labelbox.com#website\"}}]}\u003c/script>","siteName":"Labelbox","nav":{"global":null,"products":[{"product":"Recursion","icon":"https://mintlify.s3.us-west-1.amazonaws.com/labelbox-1db23ff4/images/recursion-mark.svg","description":"Managed agents that work in your apps, learn, and run on schedule","tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/recursion"}]},{"tab":"API reference","groups":[{"group":"API reference","pages":[{"title":"API conventions","href":"/recursion/api"},{"title":"Limits","href":"/recursion/limits"},{"title":"Errors","href":"/recursion/errors"},{"title":"Event types and states","sidebarTitle":"Event types and states","href":"/recursion/reference"},{"title":"Glossary","href":"/recursion/glossary"},{"title":"Security","href":"/recursion/security"},{"title":"Troubleshooting","href":"/recursion/troubleshooting"}]},{"group":"Endpoints","pages":[{"group":"Environments","pages":[{"title":"List environments","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/environments","href":"/api-reference/environments/list-environments"},{"title":"Create environment","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/environments","href":"/api-reference/environments/create-environment"},{"title":"Get environment","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/environments/{environmentId}","href":"/api-reference/environments/get-environment"},{"title":"Soft delete environment","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/environments/{environmentId}","href":"/api-reference/environments/soft-delete-environment"},{"title":"Update environment","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/environments/{environmentId}","href":"/api-reference/environments/update-environment"},{"title":"List setup runs","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/environments/{environmentId}/setup-runs","href":"/api-reference/environments/list-setup-runs"},{"title":"Run and verify the environment's setup script","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/environments/{environmentId}/setup-runs","href":"/api-reference/environments/run-and-verify-the-environments-setup-script"},{"title":"Get a setup run, optionally waiting for it to finish","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/environments/{environmentId}/setup-runs/{setupRunId}","href":"/api-reference/environments/get-a-setup-run-optionally-waiting-for-it-to-finish"},{"title":"Read or tail a setup run's log","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/environments/{environmentId}/setup-runs/{setupRunId}/log","href":"/api-reference/environments/read-or-tail-a-setup-runs-log"},{"title":"Cancel a setup run","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/environments/{environmentId}/setup-runs/{setupRunId}/cancel","href":"/api-reference/environments/cancel-a-setup-run"},{"title":"List environments","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/environments","href":"/api-reference/environments/list-environments-1"},{"title":"Create environment","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/environments","href":"/api-reference/environments/create-environment-1"},{"title":"Get environment","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/environments/{environmentId}","href":"/api-reference/environments/get-environment-1"},{"title":"Soft delete environment","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v2/environments/{environmentId}","href":"/api-reference/environments/soft-delete-environment-1"},{"title":"Update environment","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v2/environments/{environmentId}","href":"/api-reference/environments/update-environment-1"},{"title":"List setup runs","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/environments/{environmentId}/setup-runs","href":"/api-reference/environments/list-setup-runs-1"},{"title":"Run and verify the environment's setup script","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/environments/{environmentId}/setup-runs","href":"/api-reference/environments/run-and-verify-the-environments-setup-script-1"},{"title":"Get a setup run, optionally waiting for it to finish","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/environments/{environmentId}/setup-runs/{setupRunId}","href":"/api-reference/environments/get-a-setup-run-optionally-waiting-for-it-to-finish-1"},{"title":"Read or tail a setup run's log","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/environments/{environmentId}/setup-runs/{setupRunId}/log","href":"/api-reference/environments/read-or-tail-a-setup-runs-log-1"},{"title":"Cancel a setup run","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/environments/{environmentId}/setup-runs/{setupRunId}/cancel","href":"/api-reference/environments/cancel-a-setup-run-1"},{"title":"List portable environment templates","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/environment-templates","href":"/api-reference/environments/list-portable-environment-templates"},{"title":"List portable environment templates","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/environment-templates","href":"/api-reference/environments/list-portable-environment-templates-1"},{"title":"List supported sandbox providers","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sandbox-providers","href":"/api-reference/environments/list-supported-sandbox-providers"},{"title":"List supported sandbox providers","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/sandbox-providers","href":"/api-reference/environments/list-supported-sandbox-providers-1"}]},{"group":"Agents","pages":[{"title":"List agents","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents","href":"/api-reference/agents/list-agents"},{"title":"Create an agent and immutable version","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/agents","href":"/api-reference/agents/create-an-agent-and-immutable-version"},{"title":"Get one agent","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}","href":"/api-reference/agents/get-one-agent"},{"title":"Soft delete agent","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/agents/{agentId}","href":"/api-reference/agents/soft-delete-agent"},{"title":"List agents","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/agents","href":"/api-reference/agents/list-agents-1"},{"title":"Create an agent and immutable version","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/agents","href":"/api-reference/agents/create-an-agent-and-immutable-version-1"},{"title":"Get one agent","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/agents/{agentId}","href":"/api-reference/agents/get-one-agent-1"},{"title":"Soft delete agent","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v2/agents/{agentId}","href":"/api-reference/agents/soft-delete-agent-1"},{"title":"Open the analyst for an agent's sessions","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/agents/{agentId}/analyst","href":"/api-reference/agents/open-the-analyst-for-an-agents-sessions"},{"title":"List an agent's immutable version history","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/versions","href":"/api-reference/agents/list-an-agents-immutable-version-history"},{"title":"Create a new immutable agent version","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/agents/{agentId}/versions","href":"/api-reference/agents/create-a-new-immutable-agent-version"},{"title":"Get one immutable agent version","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/versions/{agentVersionId}","href":"/api-reference/agents/get-one-immutable-agent-version"},{"title":"List an agent's immutable version history","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/agents/{agentId}/versions","href":"/api-reference/agents/list-an-agents-immutable-version-history-1"},{"title":"Create a new immutable agent version","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/agents/{agentId}/versions","href":"/api-reference/agents/create-a-new-immutable-agent-version-1"},{"title":"Get one immutable agent version","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/agents/{agentId}/versions/{agentVersionId}","href":"/api-reference/agents/get-one-immutable-agent-version-1"},{"title":"List static agent templates","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agent-templates","href":"/api-reference/agents/list-static-agent-templates"},{"title":"List static agent templates","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/agent-templates","href":"/api-reference/agents/list-static-agent-templates-1"},{"title":"Search an agent's file history","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/agents/{agentId}/files/search","href":"/api-reference/agents/search-an-agents-file-history"},{"title":"Get one file of an agent's file history","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/files/{fileId}","href":"/api-reference/agents/get-one-file-of-an-agents-file-history"},{"title":"Get what an agent's skills cost the prompt","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/skill-disclosure","href":"/api-reference/agents/get-what-an-agents-skills-cost-the-prompt"},{"title":"Preview importing an agent export file","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/agents/import-preview","href":"/api-reference/agents/preview-importing-an-agent-export-file"},{"title":"Import an agent export file","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/agents/import","href":"/api-reference/agents/import-an-agent-export-file"}]},{"group":"Tags","pages":[{"title":"Replace an agent's complete tag set","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml put /managed-agents/v1/agents/{agentId}/tags","href":"/api-reference/tags/replace-an-agents-complete-tag-set"},{"title":"Apply one tag to an agent","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml put /managed-agents/v1/agents/{agentId}/tags/{tagId}","href":"/api-reference/tags/apply-one-tag-to-an-agent"},{"title":"Remove one tag from an agent","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/agents/{agentId}/tags/{tagId}","href":"/api-reference/tags/remove-one-tag-from-an-agent"},{"title":"List organization tags","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/tags","href":"/api-reference/tags/list-organization-tags"},{"title":"Create an organization tag","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/tags","href":"/api-reference/tags/create-an-organization-tag"},{"title":"Get one organization tag","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/tags/{tagId}","href":"/api-reference/tags/get-one-organization-tag"},{"title":"Soft delete a tag","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/tags/{tagId}","href":"/api-reference/tags/soft-delete-a-tag"},{"title":"Update a tag definition","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/tags/{tagId}","href":"/api-reference/tags/update-a-tag-definition"}]},{"group":"Skills","pages":[{"title":"List skills","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skills","href":"/api-reference/skills/list-skills"},{"title":"Create a skill from a document","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/skills","href":"/api-reference/skills/create-a-skill-from-a-document"},{"title":"Publish a skill from a bundle upload","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/skills/upload","href":"/api-reference/skills/publish-a-skill-from-a-bundle-upload"},{"title":"Preview what a skill set costs the prompt","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/skills/disclosure-preview","href":"/api-reference/skills/preview-what-a-skill-set-costs-the-prompt"},{"title":"Get one skill","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skills/{skillId}","href":"/api-reference/skills/get-one-skill"},{"title":"Soft delete skill","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/skills/{skillId}","href":"/api-reference/skills/soft-delete-skill"},{"title":"Refile a skill into a catalog group","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/skills/{skillId}","href":"/api-reference/skills/refile-a-skill-into-a-catalog-group"},{"title":"List a skill's immutable version history","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skills/{skillId}/versions","href":"/api-reference/skills/list-a-skills-immutable-version-history"},{"title":"Publish a skill version from a document","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/skills/{skillId}/versions","href":"/api-reference/skills/publish-a-skill-version-from-a-document"},{"title":"Publish a skill version from a bundle upload","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/skills/{skillId}/versions/upload","href":"/api-reference/skills/publish-a-skill-version-from-a-bundle-upload"},{"title":"Get one immutable skill version","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skills/{skillId}/versions/{skillVersionId}","href":"/api-reference/skills/get-one-immutable-skill-version"},{"title":"Download a skill version's bundle","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skills/{skillId}/versions/{skillVersionId}/content","href":"/api-reference/skills/download-a-skill-versions-bundle"},{"title":"List skill groups","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skill-groups","href":"/api-reference/skills/list-skill-groups"},{"title":"Create a skill group","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/skill-groups","href":"/api-reference/skills/create-a-skill-group"},{"title":"Get one skill group","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skill-groups/{skillGroupId}","href":"/api-reference/skills/get-one-skill-group"},{"title":"Delete a skill group","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/skill-groups/{skillGroupId}","href":"/api-reference/skills/delete-a-skill-group"},{"title":"Update a skill group","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/skill-groups/{skillGroupId}","href":"/api-reference/skills/update-a-skill-group"},{"title":"List the skills in a group","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skill-groups/{skillGroupId}/skills","href":"/api-reference/skills/list-the-skills-in-a-group"}]},{"group":"Sessions","pages":[{"title":"List sessions","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions","href":"/api-reference/sessions/list-sessions"},{"title":"Start a managed session","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions","href":"/api-reference/sessions/start-a-managed-session"},{"title":"Snapshot every root session created in a window","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/gestalt","href":"/api-reference/sessions/snapshot-every-root-session-created-in-a-window"},{"title":"Stream changes to the sessions gestalt as Server-Sent Events","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/gestalt/stream","href":"/api-reference/sessions/stream-changes-to-the-sessions-gestalt-as-server-sent-events"},{"title":"Roll up token and cost totals for a batch of sessions","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/usage","href":"/api-reference/sessions/roll-up-token-and-cost-totals-for-a-batch-of-sessions"},{"title":"List the caller-defined metadata keys sessions carry","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/metadata-keys","href":"/api-reference/sessions/list-the-caller-defined-metadata-keys-sessions-carry"},{"title":"List the values one caller-defined metadata key takes","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/metadata-values","href":"/api-reference/sessions/list-the-values-one-caller-defined-metadata-key-takes"},{"title":"Get session","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}","href":"/api-reference/sessions/get-session"},{"title":"Soft delete a session subtree (events retained)","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/sessions/{sessionId}","href":"/api-reference/sessions/soft-delete-a-session-subtree-events-retained"},{"title":"Open the session analyst for a session","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/analyst","href":"/api-reference/sessions/open-the-session-analyst-for-a-session"},{"title":"Open the organization assistant","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/assistant","href":"/api-reference/sessions/open-the-organization-assistant"},{"title":"Decide on an assistant interaction","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/interactions/{interactionId}/decide","href":"/api-reference/sessions/decide-on-an-assistant-interaction"},{"title":"Get the team board","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/board","href":"/api-reference/sessions/get-the-team-board"},{"title":"Read sandbox CPU, memory, and GPU usage for a session tree","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/resource-samples","href":"/api-reference/sessions/read-sandbox-cpu-memory-and-gpu-usage-for-a-session-tree"},{"title":"Get root timeline events","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/events","href":"/api-reference/sessions/get-root-timeline-events"},{"title":"Append user/system events to a session","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/events","href":"/api-reference/sessions/append-usersystem-events-to-a-session"},{"title":"Get root session tree and timeline","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/tree","href":"/api-reference/sessions/get-root-session-tree-and-timeline"},{"title":"List session threads","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/threads","href":"/api-reference/sessions/list-session-threads"},{"title":"Get session thread","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/threads/{threadId}","href":"/api-reference/sessions/get-session-thread"},{"title":"Stream session events as Server-Sent Events","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/events/stream","href":"/api-reference/sessions/stream-session-events-as-server-sent-events"},{"title":"Stream one authenticated complete event content document","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/events/{eventId}/content","href":"/api-reference/sessions/stream-one-authenticated-complete-event-content-document"},{"title":"Get one private session image","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/images","href":"/api-reference/sessions/get-one-private-session-image"},{"title":"Hard stop a session immediately","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/cancel","href":"/api-reference/sessions/hard-stop-a-session-immediately"},{"title":"Interrupt a running session","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/interrupt","href":"/api-reference/sessions/interrupt-a-running-session"},{"title":"Interrupt a session and send a replacement instruction","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/interrupt-and-send","href":"/api-reference/sessions/interrupt-a-session-and-send-a-replacement-instruction"},{"title":"List input a session has accepted but not read","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/pending-inputs","href":"/api-reference/sessions/list-input-a-session-has-accepted-but-not-read"},{"title":"List a session's outcomes and grading history","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/outcomes","href":"/api-reference/sessions/list-a-sessions-outcomes-and-grading-history"},{"title":"Define what done looks like for a session","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/outcomes","href":"/api-reference/sessions/define-what-done-looks-like-for-a-session"},{"title":"Get the agent version a session runs","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/agent-version","href":"/api-reference/sessions/get-the-agent-version-a-session-runs"},{"title":"Move a session to another version of its agent","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml put /managed-agents/v1/sessions/{sessionId}/agent-version","href":"/api-reference/sessions/move-a-session-to-another-version-of-its-agent"},{"title":"Move an agent's live sessions to its latest version","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/agents/{agentId}/upgrade-sessions","href":"/api-reference/sessions/move-an-agents-live-sessions-to-its-latest-version"},{"title":"Get an agent's session upgrade","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/session-upgrade","href":"/api-reference/sessions/get-an-agents-session-upgrade"},{"title":"Stop an agent's running session upgrade","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/agents/{agentId}/session-upgrade/cancel","href":"/api-reference/sessions/stop-an-agents-running-session-upgrade"},{"title":"Set a session's budget","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml put /managed-agents/v1/sessions/{sessionId}/budget","href":"/api-reference/sessions/set-a-sessions-budget"},{"title":"Remove a session's budget","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/sessions/{sessionId}/budget","href":"/api-reference/sessions/remove-a-sessions-budget"}]},{"group":"Memory","pages":[{"title":"List memory status for every agent","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agent-memories","href":"/api-reference/memory/list-memory-status-for-every-agent"},{"title":"Get an agent's memory summary","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agent-memories/{agentId}","href":"/api-reference/memory/get-an-agents-memory-summary"},{"title":"Search an agent's current memories","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/memories","href":"/api-reference/memory/search-an-agents-current-memories"},{"title":"Search an agent's current memories","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/agents/{agentId}/memories","href":"/api-reference/memory/search-an-agents-current-memories-1"},{"title":"Get an agent's memory settings","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/memory/settings","href":"/api-reference/memory/get-an-agents-memory-settings"},{"title":"Update an agent's memory settings","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/agents/{agentId}/memory/settings","href":"/api-reference/memory/update-an-agents-memory-settings"},{"title":"List an agent's memory runs","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/memory/runs","href":"/api-reference/memory/list-an-agents-memory-runs"},{"title":"Get one memory job run","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/memory/runs/{runId}","href":"/api-reference/memory/get-one-memory-job-run"},{"title":"Read one memory","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/memory-stores/{memoryStoreId}/memories/{memoryId}","href":"/api-reference/memory/read-one-memory"},{"title":"Delete a memory","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/memory-stores/{memoryStoreId}/memories/{memoryId}","href":"/api-reference/memory/delete-a-memory"},{"title":"List memory versions","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/memory-stores/{memoryStoreId}/memory-versions","href":"/api-reference/memory/list-memory-versions"},{"title":"Get one memory version","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/memory-stores/{memoryStoreId}/memory-versions/{memoryVersionId}","href":"/api-reference/memory/get-one-memory-version"},{"title":"List memory store revisions","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/memory-stores/{memoryStoreId}/revisions","href":"/api-reference/memory/list-memory-store-revisions"}]},{"group":"Evaluations","pages":[{"title":"List immutable evaluation verdicts","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/evaluations","href":"/api-reference/evaluations/list-immutable-evaluation-verdicts"},{"title":"Start one evaluation session per target","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/evaluations","href":"/api-reference/evaluations/start-one-evaluation-session-per-target"},{"title":"List evaluation runs","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/evaluation-runs","href":"/api-reference/evaluations/list-evaluation-runs"}]},{"group":"Vaults","pages":[{"title":"List credential vaults","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/vaults","href":"/api-reference/vaults/list-credential-vaults"},{"title":"Create a credential vault","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/vaults","href":"/api-reference/vaults/create-a-credential-vault"},{"title":"List credential vaults","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/vaults","href":"/api-reference/vaults/list-credential-vaults-1"},{"title":"Get a credential vault","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/vaults/{vaultId}","href":"/api-reference/vaults/get-a-credential-vault"},{"title":"Soft delete a vault and hide its credentials","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/vaults/{vaultId}","href":"/api-reference/vaults/soft-delete-a-vault-and-hide-its-credentials"},{"title":"Rename a vault or replace its metadata","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/vaults/{vaultId}","href":"/api-reference/vaults/rename-a-vault-or-replace-its-metadata"},{"title":"Get a credential vault","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/vaults/{vaultId}","href":"/api-reference/vaults/get-a-credential-vault-1"},{"title":"List a vault's credential references","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/vaults/{vaultId}/credentials","href":"/api-reference/vaults/list-a-vaults-credential-references"},{"title":"Register a credential reference in a vault","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/vaults/{vaultId}/credentials","href":"/api-reference/vaults/register-a-credential-reference-in-a-vault"},{"title":"List a vault's credential references","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/vaults/{vaultId}/credentials","href":"/api-reference/vaults/list-a-vaults-credential-references-1"},{"title":"Get one credential reference","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/vaults/{vaultId}/credentials/{credentialId}","href":"/api-reference/vaults/get-one-credential-reference"},{"title":"Soft delete a credential reference","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/vaults/{vaultId}/credentials/{credentialId}","href":"/api-reference/vaults/soft-delete-a-credential-reference"},{"title":"Rename a credential or rotate its reference","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/vaults/{vaultId}/credentials/{credentialId}","href":"/api-reference/vaults/rename-a-credential-or-rotate-its-reference"},{"title":"Get one credential reference","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/vaults/{vaultId}/credentials/{credentialId}","href":"/api-reference/vaults/get-one-credential-reference-1"},{"title":"Test an MCP server connection and list its tools","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/mcp/probe","href":"/api-reference/vaults/test-an-mcp-server-connection-and-list-its-tools"}]},{"group":"Event Sources","pages":[{"title":"Check IMAP OAuth website sign-in availability","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/imap-oauth/availability","href":"/api-reference/event-sources/check-imap-oauth-website-sign-in-availability"},{"title":"Start website sign-in for an IMAP OAuth credential","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/vaults/{vaultId}/credentials/{credentialId}/imap-oauth/start","href":"/api-reference/event-sources/start-website-sign-in-for-an-imap-oauth-credential"},{"title":"Complete website sign-in for an IMAP OAuth credential","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/imap-oauth/complete","href":"/api-reference/event-sources/complete-website-sign-in-for-an-imap-oauth-credential"},{"title":"List event sources","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/event-sources","href":"/api-reference/event-sources/list-event-sources"},{"title":"Create a paused event source","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/event-sources","href":"/api-reference/event-sources/create-a-paused-event-source"},{"title":"Get an event source","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/event-sources/{eventSourceId}","href":"/api-reference/event-sources/get-an-event-source"},{"title":"Replace an event source configuration","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml put /managed-agents/v1/event-sources/{eventSourceId}","href":"/api-reference/event-sources/replace-an-event-source-configuration"},{"title":"Delete an unused event source","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/event-sources/{eventSourceId}","href":"/api-reference/event-sources/delete-an-unused-event-source"},{"title":"Get volatile event-source status","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/event-sources/{eventSourceId}/status","href":"/api-reference/event-sources/get-volatile-event-source-status"},{"title":"Pause event admission from a source","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/event-sources/{eventSourceId}/pause","href":"/api-reference/event-sources/pause-event-admission-from-a-source"},{"title":"Resume event admission from a source","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/event-sources/{eventSourceId}/resume","href":"/api-reference/event-sources/resume-event-admission-from-a-source"}]},{"group":"Integrations","pages":[{"title":"List the native integrations this deployment supports","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/providers","href":"/api-reference/integrations/list-the-native-integrations-this-deployment-supports"},{"title":"Begin authorizing a third-party account connection","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/integrations/{provider}/install","href":"/api-reference/integrations/begin-authorizing-a-third-party-account-connection"},{"title":"Finish connecting provider accounts after the authorization redirect","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/integrations/install/complete","href":"/api-reference/integrations/finish-connecting-provider-accounts-after-the-authorization-redirect"},{"title":"List connected third-party accounts","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/connections","href":"/api-reference/integrations/list-connected-third-party-accounts"},{"title":"Get one connected account","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/connections/{connectionId}","href":"/api-reference/integrations/get-one-connected-account"},{"title":"Disconnect an account and retire the grants that used it","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/integrations/connections/{connectionId}","href":"/api-reference/integrations/disconnect-an-account-and-retire-the-grants-that-used-it"},{"title":"Check a connection against the provider and try minting a token","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/integrations/connections/{connectionId}/probe","href":"/api-reference/integrations/check-a-connection-against-the-provider-and-try-minting-a-token"},{"title":"List the repositories a connection can reach, for the grant picker","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/connections/{connectionId}/repositories","href":"/api-reference/integrations/list-the-repositories-a-connection-can-reach-for-the-grant-picker"},{"title":"List pull requests for a connected repository","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/connections/{connectionId}/repositories/{repositoryOwner}/{repositoryName}/pull-requests","href":"/api-reference/integrations/list-pull-requests-for-a-connected-repository"},{"title":"Get the connected Slack bot's bounded channel-selection catalog","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/connections/{connectionId}/channel-catalog","href":"/api-reference/integrations/get-the-connected-slack-bots-bounded-channel-selection-catalog"},{"title":"Get the connected Slack workspace's bounded member catalog","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/connections/{connectionId}/member-catalog","href":"/api-reference/integrations/get-the-connected-slack-workspaces-bounded-member-catalog"}]},{"group":"Models","pages":[{"title":"List the models agents can run on","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/models","href":"/api-reference/models/list-the-models-agents-can-run-on"}]},{"group":"Automations","pages":[{"title":"List canonical automations","description":"Returns a bounded page of canonical automation summaries, newest first. Prompt, run defaults, and trigger configuration are available only on member reads.","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/automations","href":"/api-reference/automations/list-canonical-automations"},{"title":"Create a paused canonical automation","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automations","href":"/api-reference/automations/create-a-paused-canonical-automation"},{"title":"Get a canonical automation","description":"Returns the complete round-trippable automation aggregate with a strong revision ETag. If-None-Match may answer 304.","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/automations/{automationId}","href":"/api-reference/automations/get-a-canonical-automation"},{"title":"Replace a canonical automation aggregate","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml put /managed-agents/v1/automations/{automationId}","href":"/api-reference/automations/replace-a-canonical-automation-aggregate"},{"title":"Delete a canonical automation","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/automations/{automationId}","href":"/api-reference/automations/delete-a-canonical-automation"},{"title":"Get automation schedule status","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/automations/{automationId}/status","href":"/api-reference/automations/get-automation-schedule-status"},{"title":"Run a canonical automation manually","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automations/{automationId}/runs","href":"/api-reference/automations/run-a-canonical-automation-manually"},{"title":"Pause canonical automation admission","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automations/{automationId}/pause","href":"/api-reference/automations/pause-canonical-automation-admission"},{"title":"Resume canonical automation admission","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automations/{automationId}/resume","href":"/api-reference/automations/resume-canonical-automation-admission"},{"title":"List canonical automation runs","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/automation-runs","href":"/api-reference/automations/list-canonical-automation-runs"},{"title":"Get one canonical automation run","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/automation-runs/{automationRunId}","href":"/api-reference/automations/get-one-canonical-automation-run"},{"title":"Test an AI filter on a sample message","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automation-classifier-tests","href":"/api-reference/automations/test-an-ai-filter-on-a-sample-message"},{"title":"Get an automation run's result","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/automation-runs/{automationRunId}/result","href":"/api-reference/automations/get-an-automation-runs-result"}]},{"group":"Files","pages":[{"title":"List files","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/files","href":"/api-reference/files/list-files"},{"title":"Upload a file","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/files","href":"/api-reference/files/upload-a-file"},{"title":"Get one file","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/files/{fileId}","href":"/api-reference/files/get-one-file"},{"title":"Download a file's bytes","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/files/{fileId}/content","href":"/api-reference/files/download-a-files-bytes"}]}]}]}]},{"product":"Horizon","icon":"https://mintlify.s3.us-west-1.amazonaws.com/labelbox-1db23ff4/images/labelbox-mark.svg","description":"RL environments, evals, labeling, and the Python SDK","pages":[{"title":"Horizon","href":"/horizon"}]}]},"basePath":"","title":"Create a paused canonical automation - Labelbox","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Myd8dsju.js","utils-C2HkQgW0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-8rSppmTv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B6MjiCFm.js","snippetPresets-DwrSAONL.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-1-a5UQKQ.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C541m7wZ.js","shallow-CWELCZ77.js","getApiPlaygroundDisplay-CTo5Zn03.js","CodeSnippet-D--dzvnl.js","CodeSnippets-DM3cXEDh.js","Page-CxAy5y67.js","getPastedJson-C-VECgcL.js","icon-BPq2-Mg3.js","MethodPill-D9J5cUHd.js","DuplicateIcon-BqHaxUnD.js","createIcon-CIbcZHp9.js","DynamicMarkdown-BKiHAm_d.js","SectionHeading-DstQXt3H.js","axios-vUo_bRtp.js","Markdown-CpxgzsKA.js","clsx-C5EfhVm0.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CJ9Oly2E.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Mk6P3qvh.js"]}